///
import WebSocket from "isomorphic-ws";
import { Message } from "./jsonrpc.js";
import { BaseTransport } from "./client.js";
import { Emitter, EventsT } from "./util/emitter.js";
type WebsocketOptions = {
reconnectDecay: number;
reconnectInterval: number;
maxReconnectInterval: number;
};
export type WebSocketErrorEvent = WebSocket.ErrorEvent;
export interface WebsocketEvents extends EventsT {
connect: () => void;
disconnect: () => void;
error: (error: WebSocket.ErrorEvent) => void;
}
export declare class WebsocketTransport extends BaseTransport {
url: string;
_socket: ReconnectingWebsocket;
get reconnectAttempts(): number;
get connected(): boolean;
constructor(url: string, options?: WebsocketOptions);
_send(message: Message): void;
close(): void;
}
declare class ReconnectingWebsocket extends Emitter {
url: string;
socket: WebSocket;
ready: Promise;
options: WebsocketOptions;
private preopenQueue;
private _connected;
private _reconnectAttempts;
onmessage: (event: WebSocket.MessageEvent) => void;
closed: boolean;
constructor(url: string, onmessage: (event: WebSocket.MessageEvent) => void, options?: WebsocketOptions);
get reconnectAttempts(): number;
private _reconnect;
get connected(): boolean;
send(message: string): void;
close(): void;
}
export {};