import { Device, IEEEEAddress, BridgeInfo } from "./types"; export declare type Devices = Record; export declare type DeviceState = Record; export declare type DeviceStates = Record; export interface ResponseWithStatus { status: "ok" | "error"; data: unknown; error?: string; transaction?: string; } export declare type Observer = { onMessage(devices: T): void; onClose(reason: Error): void; }; export declare type DeviceObserver = Observer; export declare type DeviceStateObserver = Observer; export declare type BridgeInfoObserver = Observer; declare class Api { private socket?; private requests; private responses; private deviceObservers; private deviceStateObservers; private bridgeInfoObservers; private transactionNumber; private transactionRndPrefix; constructor(); subscribeToDevices: (deviceObserver: DeviceObserver) => void; unsubscribeFromDevices: (deviceObserver: DeviceObserver) => void; subscribeToDeviceStates: (deviceStateObserver: DeviceStateObserver) => void; unsubscribeFromDeviceStates: (deviceStateObserver: DeviceStateObserver) => void; subscribeToBridgeInfo: (bridgeInfoObserver: BridgeInfoObserver) => void; unsubscribeFromBridgeInfo: (bridgeInfoObserver: BridgeInfoObserver) => void; send: (topic: string, payload?: Record) => Promise; urlProvider: () => string; connect(): void; private onObserverAttached; private processBridgeMessage; private processDeviceStateMessage; private resolvePromises; closeSocketIfUnused(): void; private onMessage; private onClose; } declare const _default: Api; export default _default; //# sourceMappingURL=ws-client.d.ts.map