import { IRpcClient } from '@interchainjs/types'; export interface ReconnectOptions { maxRetries?: number; retryDelay?: number; exponentialBackoff?: boolean; } export interface WebSocketEndpoint { url: string; protocols?: string[]; reconnect?: ReconnectOptions; } export declare class WebSocketRpcClient implements IRpcClient { private endpointConfig; private options; private socket; private connected; private messageId; private pendingRequests; private subscriptions; private subscriptionAckMap; private reconnectOptions; constructor(endpointConfig: string | WebSocketEndpoint, options?: { reconnect?: ReconnectOptions; }); get endpoint(): string; connect(): Promise; disconnect(): Promise; isConnected(): boolean; call(method: string, params?: TRequest): Promise; subscribe(method: string, params?: unknown): AsyncIterable; getSubscriptionId(iterable: AsyncIterable): Promise | undefined; private normalizeSubscriptionId; private handleMessage; private handleDisconnection; private getWebSocketUrl; private getProtocols; }