import { EventEmitter } from 'events'; import { MCPManager, MCPToolResult } from '../services/mcp-client'; export interface MCPPerformanceMetrics { serverId: string; serverName: string; timestamp: number; connectionMetrics: { isConnected: boolean; connectionTime: number; lastPingLatency: number; totalConnections: number; connectionFailures: number; reconnectionAttempts: number; }; communicationMetrics: { messagesCount: number; totalMessageBytes: number; averageMessageSize: number; messageThroughput: number; responseTime: { average: number; p50: number; p95: number; p99: number; max: number; }; }; toolCallMetrics: { totalCalls: number; successfulCalls: number; failedCalls: number; averageExecutionTime: number; toolCallThroughput: number; toolPerformance: Record; }; serializationMetrics: { serializationTime: number; deserializationTime: number; averagePayloadSize: number; compressionRatio: number; }; resourceMetrics: { memoryUsage: number; cpuTime: number; networkBandwidth: number; queueDepth: number; }; errorMetrics: { totalErrors: number; errorRate: number; timeoutErrors: number; networkErrors: number; protocolErrors: number; lastError?: { message: string; timestamp: number; context?: any; }; }; } export interface MCPBottleneckAnalysis { serverId: string; serverName: string; bottlenecks: Array<{ type: 'connection' | 'serialization' | 'tool_execution' | 'network' | 'memory'; severity: 'low' | 'medium' | 'high' | 'critical'; description: string; metrics: any; recommendations: string[]; estimatedImpact: number; }>; overallPerformanceScore: number; optimizationPriority: Array<{ area: string; priority: number; expectedGain: number; }>; } export interface MCPConcurrencyTest { testName: string; serverName: string; concurrentConnections: number; operationsPerConnection: number; testDuration: number; results: { totalOperations: number; successfulOperations: number; failedOperations: number; averageResponseTime: number; throughput: number; errorRate: number; resourceUtilization: { avgMemoryUsage: number; peakMemoryUsage: number; avgCpuUsage: number; networkUtilization: number; }; scalabilityScore: number; complianceScore: number; }; } export declare class MCPPerformanceAnalyzer extends EventEmitter { private logger; private mcpManager; private serverMetrics; private isMonitoring; private monitoringInterval; private toolCallHistory; private performanceThresholds; constructor(mcpManager: MCPManager); private setupServerMonitoring; private initializeServerMetrics; startMonitoring(intervalMs?: number): void; stopMonitoring(): void; private collectServerMetrics; private gatherServerMetrics; private measurePingLatency; private calculatePercentile; private groupBy; private estimateServerMemoryUsage; private estimateServerCpuTime; private estimateSerializationTime; private estimateDeserializationTime; private estimateNetworkBandwidth; private recordServerMetrics; private recordServerError; instrumentToolCall(serverName: string, toolName: string, executeCall: () => Promise): Promise; analyzeBottlenecks(serverName: string): MCPBottleneckAnalysis; runConcurrencyTest(serverName: string, concurrentConnections?: number, operationsPerConnection?: number): Promise; getPerformanceSummary(): Array<{ serverName: string; status: 'excellent' | 'good' | 'fair' | 'poor'; metrics: MCPPerformanceMetrics | null; bottlenecks: MCPBottleneckAnalysis | null; }>; getServerMetrics(serverName: string): MCPPerformanceMetrics[]; clearMetrics(): void; exportMetrics(): string; } //# sourceMappingURL=mcp-performance-analyzer.d.ts.map