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 { IGetAllBankDepositsResult, IGetAllOpenBankDepositsResult, IInsertBankDepositParams, IUpdateBankDepositParams } from '../types.js';
export declare class BankDepositsProvider {
    private db;
    private adminContextProvider;
    constructor(db: TenantAwareDBClient, adminContextProvider: AdminContextProvider);
    private allBankDepositsCache;
    getAllBankDeposits(): Promise<IGetAllBankDepositsResult[]>;
    private allOpenBankDepositsCache;
    getAllOpenBankDeposits(): Promise<IGetAllOpenBankDepositsResult[]>;
    private batchBankDepositsByIds;
    bankDepositByIdLoader: DataLoader<string, import("../types.js").IGetBankDepositsByIdsResult | null, string>;
    insertBankDeposit(params: IInsertBankDepositParams): Promise<import("../types.js").IInsertBankDepositResult>;
    updateBankDeposit(params: IUpdateBankDepositParams): Promise<import("../types.js").IUpdateBankDepositResult>;
    clearCache(): void;
}
