import DataLoader from 'dataloader';
import { AdminContextProvider } from '../../admin-context/providers/admin-context.provider.js';
import { TenantAwareDBClient } from '../../app-providers/tenant-db-client.js';
import { IDeleteTemplateParams, IGetTemplateParams, IInsertTemplateParams, ILockTemplateParams, IUnlockTemplateParams, IUpdateTemplateNameParams, IUpdateTemplateParams } from '../types.js';
export declare class DynamicReportProvider {
    private db;
    private adminContextProvider;
    constructor(db: TenantAwareDBClient, adminContextProvider: AdminContextProvider);
    getTemplate(params: IGetTemplateParams): Promise<import("../types.js").IGetTemplateResult>;
    private batchTemplatesByOwnerIdLoader;
    getTemplatesByOwnerIdLoader: DataLoader<string, import("../types.js").IGetTemplatesByOwnerIdsResult[], string>;
    updateTemplate(params: IUpdateTemplateParams): Promise<import("../types.js").IUpdateTemplateResult[]>;
    updateTemplateName(params: IUpdateTemplateNameParams): Promise<import("../types.js").IUpdateTemplateNameResult[]>;
    insertTemplate(params: IInsertTemplateParams): Promise<import("../types.js").IInsertTemplateResult[]>;
    deleteTemplate(params: IDeleteTemplateParams): Promise<import("../types.js").IDeleteTemplateResult[]>;
    lockTemplate(params: ILockTemplateParams): Promise<import("../types.js").ILockTemplateResult>;
    unlockTemplate(params: IUnlockTemplateParams): Promise<import("../types.js").IUnlockTemplateResult>;
    private assertNotLocked;
    invalidateByOwnerId(ownerId: string): Promise<void>;
    clearCache(): void;
}
