///
///
import { WebSocket as WebSocketOrigin, WebSocketServer, Event, ErrorEvent, CloseEvent, MessageEvent, RawData, EventListenerOptions } from "ws";
import EventEmitter from "eventemitter3";
import ISocket from "../../stream/isocket";
import net from "net";
export { WebSocketOrigin, WebSocketServer };
type WebSocketEvent = {
open: () => void;
close: () => void;
error: (ev: Error) => void;
message: (ev: RawData) => void;
};
type WebSocketEventOrigin = {
open: (ev: Event) => void;
close: (ev: CloseEvent) => void;
error: (ev: ErrorEvent) => void;
message: (ev: MessageEvent) => void;
};
export declare class WebSocket extends EventEmitter {
readonly url: string;
static OPEN: 1;
static CLOSED: 3;
static CLOSING: 2;
static CONNECTING: 0;
private webSocket;
private socket;
private _closed;
get readyState(): 0 | 1 | 2 | 3;
get bufferedAmount(): number;
constructor(url: string, socket?: ISocket | net.Socket | null);
private initWebSocketEvent;
private initSocketEvent;
set onmessage(handle: ((ev: MessageEvent) => void) | null);
set onclose(handle: ((ev: CloseEvent) => void) | null);
set onerror(handle: ((ev: ErrorEvent) => void) | null);
set onopen(handle: ((ev: Event) => void) | null);
send(data: string | Buffer): void;
isPaused(): boolean;
close(): void;
addEventListener>(event: T, fn: EventEmitter.EventListener, context?: EventListenerOptions): this;
}