import { GlobalAnalysisCache, FileAnalysis, EnhancedAnalysisResult } from '../types/analysis'; export interface CacheOptions { enabled: boolean; strategy: 'aggressive' | 'conservative' | 'manual'; ttl: number; maxCacheSize: number; persistToDisk: boolean; cacheDirectory: string; } export declare class AnalysisCache { private logger; private cache; private globalCache; private invalidated; private cacheVersion; private lastCleanup; private options; constructor(options: CacheOptions); getCachedFileAnalysis(filePath: string): Promise; setCachedFileAnalysis(filePath: string, analysis: FileAnalysis): Promise; getGlobalCache(): GlobalAnalysisCache | null; setGlobalCache(cache: GlobalAnalysisCache): void; invalidateFile(filePath: string): void; invalidateGlobal(): void; invalidateAll(): void; invalidateChangedFiles(projectPath: string, files: string[]): Promise; private hasFileChanged; private isCacheValid; private invalidateDependentFiles; private calculateHash; loadFromDisk(): Promise; saveToDisk(): Promise; cleanup(): Promise; private enforceMaxCacheSize; private estimateCacheSize; getCacheStats(): CacheStats; private calculateHitRate; getAnalysisContext(projectPath: string): Promise; setAnalysisContext(projectPath: string, context: AnalysisContext): Promise; getIncrementalAnalysis(projectPath: string, changedFiles: string[]): Promise<{ cached: EnhancedAnalysisResult | null; filesToAnalyze: string[]; }>; saveIncrementalAnalysis(projectPath: string, analysis: EnhancedAnalysisResult, analyzedFiles: string[]): Promise; private buildDependencyMap; } export interface CacheStats { totalEntries: number; invalidatedEntries: number; cacheSize: number; hitRate: number; lastCleanup: Date; strategy: string; ttl: number; enabled: boolean; } export interface AnalysisContext { lastAnalysis: EnhancedAnalysisResult; analyzedFiles: string[]; dependencies: Record; } //# sourceMappingURL=analysis-cache.d.ts.map