/** * Multi-Level Cache System * Provides L1 (memory), L2 (file), and L3 (database) caching with smart invalidation */ export interface CacheEntry { key: string; data: T; contentHash: string; timestamp: Date; accessCount: number; lastAccessed: Date; expiresAt?: Date; metadata?: Record; } export interface CacheConfig { maxMemoryEntries: number; maxFileSize: number; defaultTTL: number; fileBasePath: string; enableCompression: boolean; } export declare class MultiLevelCache { private logger; private redisCache; private config; private memoryCache; private fileCacheDir; constructor(cacheName: string, config?: Partial); initialize(): Promise; /** * Get data from cache (tries L1 → L2 → L3) */ get(key: string, contentHash?: string): Promise; /** * Set data in all cache levels */ set(key: string, data: T, contentHash: string, ttl?: number): Promise; /** * Invalidate cache entry when content changes */ invalidate(key: string): Promise; /** * Smart bulk invalidation based on file patterns */ invalidatePattern(pattern: RegExp): Promise; /** * Get cache statistics */ getStats(): { memoryEntries: number; memoryHitRate: number; totalSize: number; }; /** * Cleanup expired entries */ cleanup(): Promise; private createCacheKey; private isEntryValid; private setMemoryCache; private findLeastRecentlyUsed; private getFromFileCache; private readFileEntry; private setFileCache; private getFromRedisCache; private setRedisCache; private calculateHitRate; private calculateTotalSize; close(): Promise; } /** * Specialized semantic search cache */ export declare class SemanticSearchCache { private embeddingCache; private segmentCache; private resultCache; constructor(projectPath: string); initialize(): Promise; getEmbedding(content: string, contentHash: string): Promise; setEmbedding(content: string, embedding: number[], contentHash: string): Promise; getSegments(filePath: string, contentHash: string): Promise; setSegments(filePath: string, segments: any[], contentHash: string): Promise; getSearchResults(query: string, queryHash: string): Promise; setSearchResults(query: string, results: any, queryHash: string): Promise; invalidateFile(filePath: string): Promise; getStats(): { embeddings: { memoryEntries: number; memoryHitRate: number; totalSize: number; }; segments: { memoryEntries: number; memoryHitRate: number; totalSize: number; }; results: { memoryEntries: number; memoryHitRate: number; totalSize: number; }; }; close(): Promise; } //# sourceMappingURL=multi-level-cache.d.ts.map