import type { HassDeviceRegistryEntry, HassEntityRegistryEntry } from "../types/hass.js"; import type { WebSocketEventName, WebSocketListener } from "./typed-events.js"; export interface WebSocketManagerOptions { baseUrl: string; token: string; reconnect?: boolean; maxReconnectDelayMs?: number; initialReconnectDelayMs?: number; } export declare class WebSocketManager { private readonly options; private ws; private msgId; private authenticated; private intentionalClose; private reconnectTimer; private reconnectAttempt; private readonly eventSubscriptionByMsgId; private handshake; private readonly listeners; private readonly pending; constructor(options: WebSocketManagerOptions); get connected(): boolean; on(event: K, handler: WebSocketListener): void; off(event: K, handler: WebSocketListener): void; connect(): Promise; disconnect(): Promise; sendCommand(commandType: string, payload?: Record): Promise; listDeviceRegistry(): Promise; /** Entity registry (only available via WebSocket; there is no REST equivalent on stock HA). */ listEntityRegistry(): Promise; private emit; private openSocket; private finishHandshakeAfterAuth; private subscribeHaEventStreams; private subscribeHaEvent; private dispatchMessage; private handleUnexpectedClose; private clearReconnectTimer; private scheduleReconnect; } //# sourceMappingURL=websocket-manager.d.ts.map