import { ConfigService } from '../../../modules/config/services/config.service'; import { ConfigChangeResult, IManagedPluginService, ServiceState } from '../../../modules/extensions/services/managed-plugin-service.interface'; import { HomeAssistantStateChangedEventDto } from '../dto/home-assistant-state.dto'; import { HomeAssistantDeviceRegistryResultModel, HomeAssistantEntityRegistryResultModel } from '../models/home-assistant.model'; import { HomeAssistantHttpService } from './home-assistant.http.service'; export interface WsEventService { get event(): string; handle(event: HomeAssistantStateChangedEventDto): Promise; } export declare class HomeAssistantWsService implements IManagedPluginService { private readonly configService; private readonly homeAssistantHttpService; private readonly logger; readonly pluginName = "devices-home-assistant-plugin"; readonly serviceId = "connector"; private readonly RESPONSE_TIMEOUT_MS; private ws; private pluginConfig; private state; private nextId; private retryCount; private reconnectTimeout; private eventsHandlers; private responses; private connectionResolver; private intentionalDisconnect; private startStopLock; constructor(configService: ConfigService, homeAssistantHttpService: HomeAssistantHttpService); registerEventsHandler(event: string, handler: WsEventService): void; start(): Promise; stop(): Promise; getState(): ServiceState; onConfigChanged(): Promise; private connectAndAuthenticate; private connect; private disconnect; isConnected(): boolean; getDevicesRegistry(): Promise; getEntitiesRegistry(): Promise; send(data: Record): Promise; private get config(); private get apiKey(); private get hostname(); private get baseUrl(); private scheduleReconnect; private handleMessage; private subscribeToStates; private withLock; private waitUntil; }