export interface IWebSocketConstructor {
    new (url: string): IWebSocket;
}
export interface IWebSocket {
    readyState: number;
    addEventListener(method: "message", callback: (event: IMessageEvent) => void): void;
    addEventListener(method: "close", callback: (event: ICloseEvent) => void): void;
    addEventListener(method: "open", callback: () => void): void;
    removeEventListener(method: "message", callback: (event: IMessageEvent) => void): void;
    removeEventListener(method: "close", callback: (event: ICloseEvent) => void): void;
    removeEventListener(method: "open", callback: () => void): void;
    send(data: string): void;
    close(code?: number): void;
}
export interface ICloseEvent {
    type: string;
    code: number;
    reason: string;
}
export interface IMessageEvent {
    type: string;
    data: any;
}
export declare const ReadyState: {
    readonly CONNECTING: 0;
    readonly OPEN: 1;
    readonly CLOSING: 2;
    readonly CLOSED: 3;
};
//# sourceMappingURL=websocket.d.ts.map