import { JSONValue, PaginatedResponse } from '@aws/workbench-core-base';
export interface DatabaseServicePlugin {
    getAssociation(entity: Associable, relationship: Associable): Promise<Associable | undefined>;
    listAssociations(entity: Associable, relationType: string, queryParams?: {
        pageSize?: number;
        paginationToken?: string;
    }): Promise<PaginatedResponse<Associable>>;
    storeAssociations(entity: Associable, relations: Associable[]): Promise<void>;
    removeAssociations(entity: Associable, relations: Associable[]): Promise<void>;
}
export interface Associable {
    type: string;
    id: string;
    data?: Record<string, JSONValue>;
}
export declare class DatabaseService implements DatabaseServicePlugin {
    private readonly _metadataService;
    private readonly _dynamoDbService;
    constructor();
    storeAssociations(entity: Associable, relations: Associable[]): Promise<void>;
    listAssociations(entity: Associable, relationType: string, queryParams?: {
        pageSize?: number;
        paginationToken?: string;
    }): Promise<PaginatedResponse<Associable>>;
    removeAssociations(entity: Associable, relations: Associable[]): Promise<void>;
    getAssociation(entity: Associable, relationship: Associable): Promise<Associable | undefined>;
}
//# sourceMappingURL=databaseService.d.ts.map