/** * MCP (Model Context Protocol) Client Implementation * * Core client for connecting to MCP servers and managing LLM provider interactions */ import { EventEmitter } from 'events'; import { LLMRequest, LLMResponse, LLMResponseChunk, MCPProvider, MCPConnection, ConnectionStatus, MCPConfig, MCPClientConfig, UsageInfo } from './types'; /** * Connection manager for individual MCP connections */ declare class MCPConnectionManager extends EventEmitter { private config; private connections; private connectionAttempts; private lastHeartbeat; constructor(config: MCPClientConfig); /** * Create connection to MCP server */ connect(providerId: string, endpoint: string): Promise; /** * Get connection by provider ID */ getConnection(providerId: string): MCPConnection | undefined; /** * Get all active connections */ getAllConnections(): Map; /** * Disconnect from provider */ disconnect(providerId: string): Promise; /** * Disconnect from all providers */ disconnectAll(): Promise; /** * Handle connection disconnection */ private handleDisconnection; /** * Handle connection errors */ private handleConnectionError; /** * Monitor connection health via heartbeats */ private startHeartbeatMonitoring; } /** * Concrete implementation of MCPConnection */ declare class MCPConnectionImpl extends EventEmitter implements MCPConnection { private readonly endpoint; private readonly config; readonly id: string; readonly providerId: string; status: ConnectionStatus; lastHeartbeat: Date; createdAt: Date; metadata: any; private ws; private requestId; private pendingRequests; constructor(providerId: string, endpoint: string, config: MCPClientConfig); /** * Connect to MCP server */ connect(): Promise; /** * Disconnect from MCP server */ disconnect(): Promise; /** * Send LLM request and await response */ sendRequest(request: LLMRequest): Promise; /** * Send streaming LLM request */ streamRequest(request: LLMRequest): AsyncIterable; /** * Check connection health */ health(): Promise<{ status: 'healthy' | 'unhealthy'; latency?: number; }>; /** * Handle incoming messages from MCP server */ private handleMessage; /** * Handle response messages */ private handleResponse; /** * Handle error messages */ private handleError; /** * Send heartbeat to maintain connection */ private sendHeartbeat; /** * Start periodic heartbeat */ private startHeartbeat; } /** * Main MCP Client class */ export declare class MCPClient extends EventEmitter { private config; private connectionManager; private providers; private defaultProvider?; private requestMetrics; constructor(config: MCPConfig); /** * Initialize MCP client and connect to providers */ initialize(): Promise; /** * Add and connect to a provider */ addProvider(providerConfig: any): Promise; /** * Send request to specific provider */ sendRequest(request: LLMRequest, providerId?: string): Promise; /** * Send streaming request */ streamRequest(request: LLMRequest, providerId?: string): AsyncIterable; /** * Get available providers */ getAvailableProviders(): string[]; /** * Get provider information */ getProvider(providerId: string): MCPProvider | undefined; /** * Get usage statistics for provider */ getUsageStats(providerId: string): UsageInfo[]; /** * Set default provider */ setDefaultProvider(providerId: string): void; /** * Health check for all providers */ healthCheck(): Promise>; /** * Get connection for provider */ getConnection(providerId: string): Promise; /** * Get provider capabilities */ getProviderCapabilities(providerId: string): Promise; /** * Shutdown MCP client */ shutdown(): Promise; } export { MCPConnectionManager, MCPConnectionImpl }; //# sourceMappingURL=client.d.ts.map