import type { CmsEntryValues, CmsModel, CmsStorageEntry } from "@webiny/api-headless-cms/types/index.js";
import type { DataLoadersHandlerInterfaceClearAllParams, IDataLoadersHandler } from "../../types.js";
import type { IEntryEntity } from "../../definitions/types.js";
interface DataLoaderParams {
    model: Pick<CmsModel, "tenant" | "modelId">;
    ids: readonly string[];
}
interface IDataLoadersHandlerParams {
    entity: IEntryEntity;
}
export interface ClearAllParams {
    model: Pick<CmsModel, "tenant" | "modelId">;
}
export declare class DataLoadersHandler implements IDataLoadersHandler {
    private readonly entity;
    private readonly cache;
    constructor(params: IDataLoadersHandlerParams);
    getAllEntryRevisions<T extends CmsEntryValues = CmsEntryValues>(params: DataLoaderParams): Promise<CmsStorageEntry<T>[]>;
    getRevisionById<T extends CmsEntryValues = CmsEntryValues>(params: DataLoaderParams): Promise<CmsStorageEntry<T>[]>;
    getPublishedRevisionByEntryId<T extends CmsEntryValues = CmsEntryValues>(params: DataLoaderParams): Promise<CmsStorageEntry<T>[]>;
    getLatestRevisionByEntryId<T extends CmsEntryValues = CmsEntryValues>(params: DataLoaderParams): Promise<CmsStorageEntry<T>[]>;
    /**
     * TODO @ts-refactor
     * Maybe pass on the generics to DataLoader definition?
     */
    private getLoader;
    private loadMany;
    clearAll(params?: DataLoadersHandlerInterfaceClearAllParams): void;
}
export {};
