export interface CacheOptions {
    defaultTimeout?: number;
}
export declare class SingleUseCache<T> {
    private cache;
    private readonly defaultTimeout;
    constructor(options?: CacheOptions);
    private isEntryStale;
    has(key: string, timeout?: number): boolean;
    get(key: string, timeout?: number): Promise<T> | undefined;
    set(key: string, value: Promise<T>): void;
    delete(key: string): boolean;
    clear(): void;
    /**
     * Set a value if it doesn't exist in the cache, otherwise return the existing value.
     * The promise resolves the the new or existing value stored.
     *
     * @param key cache key
     * @param computeFn function to compute the value
     * @param timeout optional timeout in ms
     */
    setIfMissing(key: string, computeFn: () => Promise<T>, timeout?: number): Promise<any>;
    size(): number;
    keys(): IterableIterator<string>;
    entries(): Array<[string, T | Promise<T>]>;
}
//# sourceMappingURL=cache.d.ts.map