export interface CacheEntry {
    key: string;
    query: string;
    result: any;
    timestamp: number;
    expiresAt: number;
    metadata: {
        promptHash: string;
        searchEngine: 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): Promise<any | null>;
    set(query: string, result: any, searchEngine?: string, processingTime?: number): Promise<void>;
    private generateCacheKey;
    private normalizeQuery;
    private findSimilarEntry;
    private calculateSimilarity;
    private evictOldestEntries;
    cleanup(): Promise<number>;
    clear(): Promise<void>;
    getStats(): CacheStats;
    exportToFile(filePath: string): Promise<void>;
    importFromFile(filePath: string): Promise<void>;
    private hashString;
    private countResults;
    private updateHitRate;
    private updateStorageSize;
    private resetStats;
}
//# sourceMappingURL=SearchCache.d.ts.map