import DataLoader from 'dataloader';
import { AdminContextProvider } from '../../admin-context/providers/admin-context.provider.js';
import { TenantAwareDBClient } from '../../app-providers/tenant-db-client.js';
import type { IDeleteIssuedDocumentParams, IGetAllIssuedDocumentsParams, IGetAllIssuedDocumentsResult, IGetIssuedDocumentsByTypeParams, IInsertIssuedDocumentsParams, IUpdateIssuedDocumentByExternalIdParams, IUpdateIssuedDocumentParams } from '../types.js';
export declare class IssuedDocumentsProvider {
    private db;
    private adminContextProvider;
    constructor(db: TenantAwareDBClient, adminContextProvider: AdminContextProvider);
    private allIssuedDocumentsCache;
    getAllIssuedDocuments(params: IGetAllIssuedDocumentsParams): Promise<IGetAllIssuedDocumentsResult[]>;
    private batchIssuedDocumentsByIds;
    getIssuedDocumentsByIdLoader: DataLoader<string, import("../types.js").IGetIssuedDocumentsByIdsResult | null | undefined, string>;
    private batchIssuedDocumentsByExternalIds;
    getIssuedDocumentsByExternalIdLoader: DataLoader<string, import("../types.js").IGetIssuedDocumentsByExternalIdsResult | null | undefined, string>;
    private batchIssuedDocumentsByClientIds;
    getIssuedDocumentsByClientIdLoader: DataLoader<string, import("../types.js").IGetIssuedDocumentsByClientIdsResult[], string>;
    private batchIssuedDocumentsStatusByChargeIds;
    getIssuedDocumentsStatusByChargeIdLoader: DataLoader<string, import("../types.js").IGetIssuedDocumentsStatusByChargeIdsResult | undefined, string>;
    getIssuedDocumentsByType(params: IGetIssuedDocumentsByTypeParams): Promise<import("../types.js").IGetIssuedDocumentsByTypeResult[]>;
    updateIssuedDocument(params: IUpdateIssuedDocumentParams): Promise<import("../types.js").IUpdateIssuedDocumentResult[]>;
    updateIssuedDocumentByExternalId(params: IUpdateIssuedDocumentByExternalIdParams): Promise<import("../types.js").IUpdateIssuedDocumentByExternalIdResult[]>;
    deleteIssuedDocument(params: IDeleteIssuedDocumentParams): Promise<import("../types.js").IDeleteIssuedDocumentResult[]>;
    insertIssuedDocuments(params: IInsertIssuedDocumentsParams): Promise<import("../types.js").IInsertIssuedDocumentsResult[]>;
    invalidateById(id: string): Promise<void>;
    clearCache(): void;
}
