///
import * as http from "http";
import * as https from "https";
import WebSocket from "ws";
import { Transport, WebSocketClient } from "../../internal";
export interface IMessagePack {
encode(value: T): Buffer;
decode(buffer: Buffer): T;
}
export interface IWebSocketTransportOptions {
port?: number;
proxyPort?: number;
server?: http.Server | https.Server;
pingInterval?: number;
maxPingRetries?: number;
clientRequestTimeout?: number;
messagePack?: IMessagePack;
}
export declare class WebSocketTransport extends Transport {
clients: Set;
wss: WebSocket.Server;
pingTimeout: NodeJS.Timeout | undefined;
clientRequestTimeout: number;
messagePack: IMessagePack;
_proxyPort: number | undefined;
get port(): number | undefined;
get proxyPort(): number | undefined;
constructor(options: IWebSocketTransportOptions);
pingClients(pingInterval: number, maxPingRetries: number): NodeJS.Timeout;
onConnection(socket: WebSocket, request: http.IncomingMessage): void;
onClose(): void;
terminate(): void;
}