import { EventEmitter } from 'node:events'; import WebSocket from 'ws'; import type { ServerConfig } from './types.js'; export declare class WebSocketClient extends EventEmitter { private ws; private config; private agentId; private heartbeatTimer; private heartbeatTimeoutTimer; private reconnectAttempts; private reconnectTimer; private isManualClose; private websocketFactory; private openedAt; private lastRefreshedToken; private consecutiveRefreshFailures; private logBatchQueue; private logBatchTimer; private logSequenceNumber; private pendingLogBatches; private isProcessingLogBatch; private processedMsgIds; constructor(config: ServerConfig, websocketFactory?: (url: string) => WebSocket); connect(agentId: string): Promise; private prepareConnection; private buildWebSocketUrl; private maskRuntimeTokenInUrl; private createSettledHandlers; private setupWebSocketEventHandlers; private handleWebSocketOpen; private handleWebSocketMessage; private extractReliableMessageId; private markMsgIdProcessed; private acknowledgeReliableMessage; private handleWebSocketClose; private handleTokenExpiredAndReconnect; private enterSlowReconnect; private refreshRuntimeTokenOnPolicyRejection; private handleWebSocketError; disconnect(): void; send(message: unknown): boolean; sendMcpNodeLog(data: { level: string; message: string; timestamp: string; }): boolean; private flushLogBatch; private sendLogBatch; private handleLogBatchSendFailure; private handleLogAck; isConnected(): boolean; private handleMessage; private startHeartbeat; private stopHeartbeat; private sendProtocolPing; private markHeartbeatReceived; private ensureHeartbeatTimeout; private clearHeartbeatTimeout; private resolveHeartbeatTimeout; private scheduleReconnect; private clearReconnectTimer; }