export interface CacheEntry { key: string; value: string; createdAt: number; ttlMs: number; hits: number; } export interface CacheConfig { enabled: boolean; ttlMs: number; maxEntries: number; dataDir: string; } export declare class LLMCache { private cache; private config; private filePath; private stats; constructor(config?: Partial); private load; private save; private isExpired; /** * Generate a cache key from messages and system prompt. */ static makeKey(messages: Array<{ role: string; content: string; }>, systemPrompt?: string): string; /** * Get a cached response. Returns null if not found or expired. */ get(key: string): string | null; /** * Set a cached response. */ set(key: string, value: string, ttlMs?: number): void; getStats(): { hits: number; misses: number; evictions: number; size: number; hitRate: string; }; clear(): void; } //# sourceMappingURL=cache.d.ts.map