export declare class WebSocketAsync { private ws; private bufferedMessages; private awaiters; private closed; private onerror; private onclose; private onmessage; private dispatchMessages; constructor(ws: WebSocket); close(): void; send(data: any): void; sendBytes(data: ArrayBufferLike | Blob | ArrayBufferView): void; sendBytesControlled(data: ArrayBufferLike | Blob | ArrayBufferView, bytesThreshold: number): Promise; private createTimeout; private registerPromise; refresh(p: Promise): void; waitForClose(timeout?: number): Promise; waitForMessage(type: string, timeout?: number): Promise>; waitForAnyMessage(timeout?: number): Promise>; } export declare type ResultValue = { kind: "value"; value: T; }; export declare type ResultError = { kind: "error"; error: string; }; export declare type Result = ResultValue | ResultError; export declare function value(value: T): ResultValue; export declare function error(error: string): ResultError; export declare function webSocket(url: string): Promise>;