import { OperationRegistry } from "../race"; import { logHandle } from "../logging"; import { ICacheController } from "../cache-controller"; import { ICacheStorage } from "../storage/storage-interface"; import { IManagement, ManagementOptions } from "./management-interface"; export declare class GenericManager implements IManagement { private controller; private storage; private options; constructor(controller: ICacheController, storage: ICacheStorage, options?: Partial); /** * Function to generate management functions to control cache plane * @param operation operation name * @param ttlMilliseconds cache time-to-live in milliseconds * @param fn function used to generate content * @returns two new functions, cacheRetrieval that tests, runs and sets content * and a cacheEvict function that allows to evict cache keys */ getWrapperFunctions

(operation: string, ttlMilliseconds: number, fn: (...args: P) => Promise>): { cacheRetrieval: (key: string, ...innerArgs: P) => Promise>; cacheEvict: (key: string) => Promise; }; private fetchAndStore; close(): Promise; noConcurrencyFlow({ operation, key, ttlMilliseconds, fn, log, }: { operation: string; key: string; ttlMilliseconds: number; fn: (...args: P) => Promise>; log: logHandle; }, ...innerArgs: P): Promise>; localConcurrencyFlow({ operation, key, ttlMilliseconds, fn, log, operationRegistry, }: { operation: string; key: string; ttlMilliseconds: number; fn: (...args: P) => Promise>; log: logHandle; operationRegistry: OperationRegistry; }, ...innerArgs: P): Promise>; distributedConcurrencyFlow({ operation, key, ttlMilliseconds, fn, log, }: { operation: string; key: string; ttlMilliseconds: number; fn: (...args: P) => Promise>; log: logHandle; }, ...innerArgs: P): Promise>; } //# sourceMappingURL=generic-manager.d.ts.map