export interface Cache { has(key: K): boolean; get(key: K): V | undefined; set(key: K, value: V): void; delete(key: K): void; clear(): void; resolve(key: K, getter: (key: K) => V): V; resolveAsync(key: K, getter: (key: K) => Promise): Promise; } export declare function createCache(size?: number): Cache; export declare function createWeakMapCache(): Cache; export declare function createMultiKeyCache(getSecondaryKey: (key: K) => R, size?: number, compare?: (a: R, b: R) => boolean): Cache; export declare function createVersionedCache(getVersion: (key: K) => Version, size?: number): Cache; export declare function versionedAsync(getKey?: (args: T) => R, size?: number, versionFn?: unknown & string): MethodDecorator; /** Cache results using as secondary version key. */ export declare function versioned(getKey?: (args: T) => R, size?: number, versionFn?: unknown & string, isAsync?: boolean): MethodDecorator; export declare function cache(getKey?: (args: T, instance: I) => R, isAsync?: boolean, isWeak?: boolean): MethodDecorator; export declare function cacheAsync(getKey?: (args: T) => R): MethodDecorator; export declare function cacheAll(getKey?: (args: T) => R): MethodDecorator; export declare function cacheAllAsync(getKey?: (args: T) => R): MethodDecorator; export declare function clearMethodCache(instance: object, propertyKey: string | symbol | number): void; //# sourceMappingURL=cache.d.ts.map