export interface CacheEntry { t: number; value: T; } export declare class Cache { method: (key: string) => Promise; ttl: number; evictionTime: number; gcPeriod: number; maxEntries: number; private entries; map: Map>; private timer; constructor(method?: (key: string) => Promise); put(key: string, value: T): void; getFromSource(key: string): Promise; get(key: string): Promise; getSync(key: string): T | null; exists(key: string): boolean; scheduleGC(): void; startGC(): void; runGC: () => void; stopGC: () => void; retire(key: string, newTime?: number): boolean; remove(key: string): boolean; }