export interface CacheEntry { value: T; timestamp: number; expiresAt: number; } export interface Cache { get(key: string): T | null; set(key: string, value: T, ttlMs?: number): void; has(key: string): boolean; delete(key: string): boolean; clear(): void; size: number; } export declare class LRUCache implements Cache { private cache; private maxSize; private defaultTTL; constructor(maxSize?: number, defaultTTLMs?: number); get(key: string): T | null; set(key: string, value: T, ttlMs?: number): void; has(key: string): boolean; delete(key: string): boolean; clear(): void; get size(): number; private cleanExpired; getStats(): { size: number; maxSize: number; hitRate: number; entries: Array<{ key: string; size: number; age: number; ttl: number; }>; }; } export declare class FileCache implements Cache { private memoryCache; private cacheDir; constructor(cacheDir?: string, maxMemorySize?: number); get(key: string): T | null; set(key: string, value: T, ttlMs?: number): void; has(key: string): boolean; delete(key: string): boolean; clear(): void; get size(): number; } export declare function createCache(type?: 'memory' | 'file', options?: any): Cache; //# sourceMappingURL=cache.d.ts.map