/**
 * CodeWhisperer 性能监控器
 * 收集实时流式和缓冲式实现的性能指标
 * 项目所有者: Jason Zhang
 */
import { PerformanceReport, SSEEvent } from '../client-interface';
import { CodeWhispererStreamingConfig } from './streaming-config';
export interface MetricsSnapshot {
    timestamp: number;
    memoryUsage: NodeJS.MemoryUsage;
    cpuUsage: NodeJS.CpuUsage;
}
export interface StreamMetrics {
    requestId: string;
    startTime: number;
    endTime?: number;
    eventsCount: number;
    totalLatency: number;
    maxLatency: number;
    minLatency: number;
    memorySnapshots: MetricsSnapshot[];
    implementation: 'buffered' | 'realtime';
    success: boolean;
    error?: string;
}
export declare class CodeWhispererPerformanceMetrics {
    private metrics;
    private config;
    private metricsInterval?;
    private aggregatedMetrics;
    constructor(config: CodeWhispererStreamingConfig);
    /**
     * 初始化聚合指标
     */
    private initializeAggregatedMetrics;
    /**
     * 开始性能指标收集
     */
    private startMetricsCollection;
    /**
     * 开始跟踪单个请求的性能
     */
    startTracking(requestId: string, implementation: 'buffered' | 'realtime'): void;
    /**
     * 记录事件延迟
     */
    recordLatency(requestId: string, event: SSEEvent): void;
    /**
     * 结束跟踪并生成性能报告
     */
    endTracking(requestId: string, success?: boolean, error?: string): PerformanceReport | null;
    /**
     * 更新聚合指标
     */
    private updateAggregatedMetrics;
    /**
     * 收集系统指标
     */
    private collectSystemMetrics;
    /**
     * 清理旧指标
     */
    private cleanupOldMetrics;
    /**
     * 获取聚合性能报告
     */
    getAggregatedReport(): {
        currentActiveRequests: number;
        timestamp: number;
        totalRequests: number;
        successfulRequests: number;
        failedRequests: number;
        avgDuration: number;
        avgLatency: number;
        memoryPeak: number;
        implementationStats: {
            buffered: {
                count: number;
                avgDuration: number;
                successRate: number;
            };
            realtime: {
                count: number;
                avgDuration: number;
                successRate: number;
            };
        };
    };
    /**
     * 获取当前活跃请求指标
     */
    getActiveRequestsMetrics(): StreamMetrics[];
    /**
     * 比较两个实现的性能
     */
    compareImplementations(): {
        buffered: any;
        realtime: any;
        comparison: {
            durationImprovement: number;
            successRateImprovement: number;
            recommendation: 'realtime' | 'buffered' | 'mixed';
        };
    };
    /**
     * 重置聚合指标
     */
    resetAggregatedMetrics(): void;
    /**
     * 销毁性能监控器
     */
    destroy(): void;
}
//# sourceMappingURL=performance-metrics.d.ts.map