import { Ref } from 'vue-demi'; export interface ISocketOptions { protocols?: string | string[]; heartTime?: number; heartMessage?: string; autoClose?: boolean; isReconnect?: boolean; reconnectTime?: number; reconnectCount?: number | (() => boolean); onOpen?: (ws: WebSocket) => void; onClose?: (ws: WebSocket, e: CloseEvent) => void; onMessage?: (ws: WebSocket, e: MessageEvent) => void; beforeMessage?: (e: MessageEvent) => any; onError?: (ws: WebSocket, e: Event) => void; onFailed?: () => void; } export interface ISocketReturn { data?: Ref; close: WebSocket['close']; websocketOpen: () => void; send: (data: string | ArrayBuffer | Blob, useBuffer?: boolean) => boolean; ws: Ref; } export declare const useWebSocket: (url: string, options?: ISocketOptions) => ISocketReturn;