import { type IDictionary } from "./IDictionary";
export declare abstract class LoadingCache<T, ARGS extends unknown[] = [string], KEY = ARGS[0]> {
    private readonly map;
    constructor(mapImpl?: IDictionary<KEY, Promise<T>>);
    abstract load(...args: ARGS): Promise<T>;
    uniqueKey(...args: ARGS): KEY;
    get(...args: ARGS): Promise<T>;
    has(...args: ARGS): boolean;
    put(...[data, ...args]: [T | Promise<T>, ...ARGS]): void;
    clear(): void;
}
