export declare const CacheGetter: () => MethodDecorator; export declare const NoArgsCache: () => MethodDecorator; export type CacheEntry = { result: T; updatedAt_ms: number; }; export type GenerateLookupKeyFn = (thisObj: ThisObj, args: Args) => string | undefined; export type Invalidatable = { invalidate(thisObj: ThisObj, args: Args): void; invalidateAll(): void; }; export declare const GlobalCache: ] extends (..._args: infer InferredArgs extends readonly unknown[]) => unknown ? InferredArgs : readonly unknown[]>(params: { generateLookupKey: (thisObj: ThisObj, args: Args) => string | undefined; ttl_ms?: number | "infinity"; maxEntriesToCleanUpPerAccess?: number; }) => MethodDecorator; export declare function getGlobalCacheInvalidator(klass: { prototype: T; }, method: Method): T[Method] extends (..._params: infer Args) => unknown ? Invalidatable | undefined : never;