import { logHandle } from "../logging"; export enum ConcurrencyControl { None = "none", Local = "local", Distributed = "distributed", } export type ManagementOptions = { broadcast: boolean; concurrency: ConcurrencyControl; lockTimeoutMs: number; log: logHandle; }; export interface IManagement { // eslint-disable-next-line @typescript-eslint/no-explicit-any getWrapperFunctions

( operation: string, ttlMilliseconds: number, fn: (...args: P) => Promise> ): { cacheRetrieval: (key: string, ...innerArgs: P) => Promise>; cacheEvict: (key: string) => Promise; }; close(): Promise; }