UNPKG

matterbridge-dyson-robot

Version:

A Matterbridge plugin that connects Dyson robot vacuums and air treatment devices to the Matter smart home ecosystem via their local or cloud MQTT APIs.

50 lines 2.32 kB
import EventEmitter from 'events'; import { ErrorWithReasonCode, IClientOptions, IConnackPacket, IPublishPacket, MqttClient } from 'mqtt'; import { Config, DeviceConfigLocalMqtt } from './config-types.js'; import { AnsiLogger } from 'matterbridge/logger'; import { MaybePromise } from 'matterbridge/matter'; import { DysonIoTCredentialsResponse } from './dyson-cloud-types.js'; export interface DeviceConfigRemoteMqtt { name: string; serialNumber: string; rootTopic: string; getCredentials: () => Promise<DysonIoTCredentialsResponse>; } export type DeviceConfigMqtt = DeviceConfigLocalMqtt | DeviceConfigRemoteMqtt; export interface DysonMqttClientEventMap { close: []; connect: [packet: IConnackPacket]; error: [error: Error | ErrorWithReasonCode]; message: [topic: string, payload: Buffer, packet: IPublishPacket]; } export interface DysonMqttClientOptions { brokerUrl: string; options: IClientOptions; } export declare abstract class DysonMqttClient extends EventEmitter<DysonMqttClientEventMap> { readonly log: AnsiLogger; readonly config: Config; private delegate?; private clientOptions?; private count; constructor(log: AnsiLogger, config: Config); protected abstract getConnectionOptions(): MaybePromise<DysonMqttClientOptions>; private destroyClient; private createClient; connect(): Promise<void>; get mqtt(): MqttClient; publishAsync(...args: Parameters<MqttClient['publishAsync']>): Promise<import("mqtt-packet").Packet | undefined>; subscribeAsync(...args: Parameters<MqttClient['subscribeAsync']>): Promise<import("mqtt").ISubscriptionGrant[]>; endAsync(...args: Parameters<MqttClient['endAsync']>): Promise<void>; } export declare class DysonMqttClientLocal extends DysonMqttClient { readonly deviceConfig: DeviceConfigLocalMqtt; constructor(log: AnsiLogger, config: Config, deviceConfig: DeviceConfigLocalMqtt); protected getConnectionOptions(): DysonMqttClientOptions; } export declare class DysonMqttClientRemote extends DysonMqttClient { readonly deviceConfig: DeviceConfigRemoteMqtt; constructor(log: AnsiLogger, config: Config, deviceConfig: DeviceConfigRemoteMqtt); protected getConnectionOptions(): Promise<DysonMqttClientOptions>; } //# sourceMappingURL=dyson-mqtt-client.d.ts.map