export interface CacheEntry { key: string; query: string; result: any; timestamp: number; expiresAt: number; metadata: { promptHash: string; searchEngine: string; model?: string; resultCount: number; processingTime: number; }; } export interface CacheStats { totalEntries: number; hitCount: number; missCount: number; hitRate: number; storageSize: number; expiredEntries: number; } export interface CacheOptions { ttl?: number; maxEntries?: number; enableMetrics?: boolean; similarityThreshold?: number; } export declare class SearchCache { private options; private cache; private stats; private readonly defaultTTL; private readonly maxEntries; private readonly similarityThreshold; private readonly enableMetrics; constructor(options?: CacheOptions); get(query: string, searchEngine?: string, model?: string): Promise; set(query: string, result: any, searchEngine?: string, processingTime?: number, model?: string): Promise; private generateCacheKey; private normalizeQuery; private findSimilarEntry; private calculateSimilarity; private evictOldestEntries; cleanup(): Promise; clear(): Promise; getStats(): CacheStats; exportToFile(filePath: string): Promise; importFromFile(filePath: string): Promise; private hashString; private countResults; private updateHitRate; private updateStorageSize; private resetStats; } //# sourceMappingURL=SearchCache.d.ts.map