export interface Cache { name: string; maxSize: number; size: number; evictionPolicy: EvictionPolicy; get: (arg: K) => V | undefined; getAndComputeIfAbsent: (arg: K, populateFn: ComputeValueForKeyFn) => V; getAndComputeIfAbsentAsync: (arg: K, populateAsyncFn: ComputeValueForKeyAsyncFn) => Promise; put: (arg: K, value: V) => void; contains: (arg: K) => boolean; clear: () => void; } export declare type EvictionPolicy = "least-frequently-used" | "least-recently-used"; export declare type ComputeValueForKeyFn = (arg: K) => V; export declare type ComputeValueForKeyAsyncFn = (arg: K) => Promise;