node-ejs-renderer/node_modules/thingies/es6/Cache.d.ts
2024-06-09 13:55:01 -04:00

27 lines
724 B
TypeScript

export interface CacheEntry<T> {
t: number;
value: T;
}
export declare class Cache<T> {
method: (key: string) => Promise<T>;
ttl: number;
evictionTime: number;
gcPeriod: number;
maxEntries: number;
private entries;
map: Map<string, CacheEntry<T>>;
private timer;
constructor(method?: (key: string) => Promise<T>);
put(key: string, value: T): void;
getFromSource(key: string): Promise<T>;
get(key: string): Promise<T>;
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;
}