import { CustomLogger } from '../types/functions.js';
import { Item, Base } from '../types/types.js';
import { MemoryCache } from './MemoryCache.js';
export interface Deferment {
    defer(params: {
        id: string;
    }): [Promise<Base>, boolean];
    undefer(item: Item, requestItem: (id: string) => void): void;
    dispose(): void;
}
export declare class MemoryOnlyDeferment implements Deferment {
    private items;
    constructor(items: Map<string, Base>);
    defer(params: {
        id: string;
    }): [Promise<Base>, boolean];
    undefer(): void;
    dispose(): void;
}
export declare class DefermentManager implements Deferment {
    private outstanding;
    private logger;
    private disposed;
    private cache;
    constructor(logger: CustomLogger, cache?: MemoryCache);
    defer(params: {
        id: string;
    }): [Promise<Base>, boolean];
    undefer(item: Item, requestItem: (id: string) => void): void;
    dispose(): void;
}
//# sourceMappingURL=defermentManager.d.ts.map