/** Bounded Hook lookups. Invalidated/expired refreshes may finish, but cannot
 * repopulate the cache. Failed refreshes retain successes only until maxAge. */
export declare class LookupCache<T> {
    private readonly ttl;
    private readonly maxAge;
    private readonly limit;
    private readonly available;
    private readonly pendingTimeout;
    /** A result that revokes what was cached (lost access), so the old success is never served again. */
    private readonly revokes;
    private readonly entries;
    constructor(ttl: number, maxAge?: number, limit?: number, available?: (value: T) => boolean, pendingTimeout?: number, 
    /** A result that revokes what was cached (lost access), so the old success is never served again. */
    revokes?: (value: T) => boolean);
    invalidate(matches: (key: string) => boolean): void;
    get(key: string, read: () => Promise<T>): Promise<T>;
}
