import type { Logger } from '../logger/index.js'; import type { BaseClient } from './clients/BaseClient.js'; export { MemcachedClient } from './clients/MemcachedClient.js'; export { RedisClient } from './clients/RedisClient.js'; export { InMemoryClient } from './clients/InMemoryClient.js'; export interface CreateCacheOptions { logger?: Logger; timeout?: number; prefix?: string; fields?: { id: string; updatedAt: string; }; } export interface CacheOptions { expires?: number; } export interface CacheFindManyOptions> extends CacheOptions { conditions?: TFindManyArgs; } export type CacheKey = string | string[]; export type LatestQuery = Record; type GenericDelegate = { findMany: (...args: any) => any; findFirst: (...args: any) => any; }; export declare const cacheKeySeparator = "-"; export declare const formatCacheKey: (key: CacheKey, prefix?: string) => string; export declare const createCache: (cacheClient: BaseClient, options?: CreateCacheOptions) => { cache: (key: CacheKey, input: () => TResult | Promise, options?: CacheOptions) => Promise; cacheFindMany: (key: CacheKey, model: TDelegate, options?: CacheFindManyOptions[0]>) => Promise; cacheClient: BaseClient; deleteCacheKey: (key: CacheKey) => Promise; }; //# sourceMappingURL=index.d.ts.map