import { Observable } from 'rxjs'; declare type WebSocketPayload = string | ArrayBuffer | Blob; export interface WebSocketLike { close(): any; send(data: WebSocketPayload): any; onopen: ((event: any) => any) | null; onclose: ((event: any) => any) | null; onmessage: ((event: any) => any) | null; onerror: ((event: any) => any) | null; } export declare type WebSocketFactory = (url: string, protocols: string | string[]) => WebSocketLike; export declare type GetWebSocketResponses = (input: Observable) => Observable; export interface WebSocketOptions { protocols: string | string[]; makeWebSocket: WebSocketFactory; } export declare const normalClosureMessage = "Normal closure"; export default function makeWebSocketObservable(url: string, { protocols, makeWebSocket }?: WebSocketOptions): Observable>; export {};