declare enum WebSocketStatus { CONNECTING = "CONNECTING", OPEN = "OPEN", CLOSED = "CLOSED", RECONNECTING = "RECONNECTING", ERROR = "ERROR" } type WebSocketOptions = { enabled?: boolean; protocols?: string | string[]; maxReconnectAttempts?: number; reconnectDelay?: (attempt: number) => number; onOpen?: (event: Event) => void; onMessage?: (message: string, event: MessageEvent) => void; onError?: (error: Event) => void; onClose?: (event: CloseEvent) => void; }; type WebSocketHook = { lastMessage: string | null; status: WebSocketStatus; socket: WebSocket | null; sendMessage: (message: string) => boolean; close: VoidFunction; reconnect: VoidFunction; }; export declare function useWebSocket(url: string | null | undefined, options?: WebSocketOptions): WebSocketHook; export { WebSocketStatus }; export type { WebSocketHook, WebSocketOptions };