import { EventEmitter } from 'events'; import { MetricsData, CNDConfig } from '../types.js'; export interface PerformanceMetrics { timestamp: Date; cpu: { usage: number; loadAverage: number[]; }; memory: { used: number; total: number; percentage: number; heapUsed: number; heapTotal: number; }; database: { activeConnections: number; totalQueries: number; avgQueryTime: number; slowQueries: number; }; api: { totalRequests: number; avgResponseTime: number; errorRate: number; throughput: number; }; cache: { hitRate: number; missRate: number; evictions: number; totalKeys: number; }; } export declare class MetricsManager extends EventEmitter { private config; private metrics; private performanceMetrics; private metricsInterval; private maxMetricsHistory; private counters; private responseTimes; private queryTimes; constructor(config: CNDConfig['performance']); /** * Start metrics collection */ start(): Promise; /** * Stop metrics collection */ stop(): Promise; /** * Record API request metric */ recordAPIRequest(operation: string, duration: number, status: 'success' | 'error'): void; /** * Record database query metric */ recordDatabaseQuery(operation: string, duration: number, status: 'success' | 'error'): void; /** * Record cache operation */ recordCacheOperation(operation: 'hit' | 'miss' | 'eviction'): void; /** * Get current performance metrics */ getCurrentMetrics(): PerformanceMetrics; /** * Get metrics history */ getMetricsHistory(startDate?: Date, endDate?: Date, limit?: number): MetricsData[]; /** * Get performance metrics history */ getPerformanceHistory(limit?: number): PerformanceMetrics[]; /** * Get health status */ getHealthStatus(): { status: 'healthy' | 'warning' | 'critical'; checks: Record; }; private collectPerformanceMetrics; private calculateThroughput; /** * Export metrics in Prometheus format */ exportPrometheusMetrics(): string; } //# sourceMappingURL=metrics.d.ts.map