///
import { BaseAttachment, BaseEntity } from '../../app-data-objects';
import { PaginatedResults, PaginationContext } from '.';
import { Repository, SelectQueryBuilder } from 'typeorm';
export declare abstract class PgDocumentInterface {
protected readonly repository: Repository;
protected readonly attachmentRepository?: Repository;
private generateId;
constructor(repository: Repository, attachmentRepository?: Repository);
protected get defaultPaginationContext(): PaginationContext;
protected get maxPageSize(): number;
storeDocument(entity: TEntity): Promise;
retrieveDocuments(): Promise;
documentExists(id: string): Promise;
getById(id: string): Promise;
deleteById(id: string | string[]): Promise;
patchById(id: string | string[], partialEntity: Partial): Promise;
addAttachment(documentId: string, attachmentName: string, data: Buffer, contentType?: string): Promise;
getAttachment(documentId: string, attachmentName: string): Promise;
retrieveDocumentsPaginated(pagination?: PaginationContext): Promise>;
retrievePaginatedWithQueryBuilder(qb: SelectQueryBuilder, pagination?: PaginationContext): Promise>;
}