/** * Comprehensive Performance Monitoring System * Tracks search times, memory usage, cache performance, and system metrics */ export interface PerformanceMetrics { searchTimes: number[]; memoryUsage: MemoryUsage[]; cacheStats: CachePerformance; systemStats: SystemStats; timestamp: Date; } export interface MemoryUsage { heapUsed: number; heapTotal: number; rss: number; external: number; timestamp: Date; } export interface CachePerformance { hitRate: number; avgHitTime: number; avgMissTime: number; totalHits: number; totalMisses: number; evictions: number; } export interface SystemStats { cpuUsage: number; loadAverage: number[]; freeMemory: number; totalMemory: number; uptime: number; } export interface SearchMetrics { query: string; duration: number; resultCount: number; sources: string[]; cacheHit: boolean; memoryBefore: number; memoryAfter: number; timestamp: Date; } export interface SlowQuery { query: string; duration: number; threshold: number; sources: string[]; resultCount: number; memoryUsage: number; timestamp: Date; } export declare class PerformanceMonitor { private searchMetrics; private slowQueries; private memorySnapshots; private cacheMetrics; private readonly maxMetricsHistory; private readonly slowQueryThreshold; private readonly memorySnapshotInterval; private readonly maxSlowQueries; private memoryMonitorInterval?; private isMonitoring; private logListener?; addLogListener(fn: (level: 'debug' | 'info' | 'warn' | 'error', message: string, data?: Record) => void): () => void; constructor(); /** * Start performance monitoring */ startMonitoring(): void; /** * Stop performance monitoring */ stopMonitoring(): void; /** * Dispose monitoring state and timers. */ dispose(): void; /** * Record search performance metrics */ recordSearch(metrics: SearchMetrics): void; /** * Record cache performance metrics */ recordCachePerformance(cacheName: string, stats: CachePerformance): void; /** * Get comprehensive performance metrics */ getMetrics(): PerformanceMetrics; /** * Get search performance statistics */ getSearchStats(): { totalSearches: number; averageTime: number; medianTime: number; p95Time: number; p99Time: number; slowQueries: number; cacheHitRate: number; }; /** * Get memory usage statistics */ getMemoryStats(): { currentUsage: MemoryUsage; peakUsage: MemoryUsage; averageUsage: MemoryUsage; growthRate: number; }; /** * Get slow queries with analysis */ getSlowQueries(limit?: number): SlowQuery[]; /** * Analyze performance trends */ analyzeTrends(): { performanceTrend: 'improving' | 'degrading' | 'stable'; memoryTrend: 'growing' | 'shrinking' | 'stable'; recommendations: string[]; }; /** * Reset all performance metrics */ reset(): void; /** * Export metrics for external analysis */ exportMetrics(): string; private recordSlowQuery; private startMemoryMonitoring; private takeMemorySnapshot; private aggregateCacheStats; private getSystemStats; } //# sourceMappingURL=PerformanceMonitor.d.ts.map