///
import { EventEmitter } from "events";
import { IClientPublishOptions } from 'mqtt';
import { Alert } from "./Alert";
import { Device, IFirmwareRepositoryManifest, IHomieConfig } from "./Device";
import { LogLine } from "./LogLine";
import { Room } from "./Room";
interface FirmwareUpdateSummary {
updated: number;
outdated: number;
unknown: number;
}
export declare class FloraFi extends EventEmitter {
private mqtt?;
id?: number;
name?: string;
legacyComponentSchema: boolean;
rooms: {
[key: string]: Room;
};
alerts: Alert[];
devices: {
[key: string]: Device;
};
logs: LogLine[];
MAX_LOG_LINES: number;
readyDebounceMs: number;
isConnected: boolean;
private isReady;
private triggerReady;
private deviceTopicReferences;
private controlMap;
repositoryManifest?: IFirmwareRepositoryManifest;
repositoryUrl: string;
debug: boolean;
console: {
log: (...args: any[]) => void;
warn: (...args: any[]) => void;
error: (...args: any[]) => void;
};
static set(target: any, property: string, value: any): void;
static delete(target: object, property: string): void;
constructor();
connect(url: string, username?: string, password?: string): FloraFi;
subscribe(topic: string): void;
unsubscribe(topic: string): void;
publish(topic: string, payload: string | Buffer, opts: IClientPublishOptions): void;
disconnect(): void;
getRoom(id: string): Room | undefined;
setControl(controlId: string, value: string | number | boolean | null): void;
alertDismiss(alert: Alert): void;
deviceForget(device: Device): void;
deviceActivate(device: Device): void;
deviceDeactivate(device: Device): void;
deviceReboot(device: Device): void;
deviceConfigure(device: Device, config: IHomieConfig): void;
deviceCheckRepository(device: Device): boolean;
checkFirmwareRepository(repositoryUrl?: string): Promise;
deviceInstallFirmwareUpdate(device: Device): void;
deviceMoveTo(device: Device, roomId: string): void;
roomDisableAlertsUntil(room: Room, until: number): void;
private installDevice;
private installRoom;
private processMessage;
private processFlorafiMessage;
private processDeviceDiscoveryMessage;
private processRoomMessage;
private getRoomComponent;
private processRoomStateMessage;
private processRoomControlMessage;
private processRoomDeviceMessage;
private processRoomLogMessage;
private processRoomAlertMessage;
private processRoomNotificationMessage;
private processHomieMessage;
private processDeviceConfigMessage;
private processDeviceStateMessage;
private processDeviceStatsMessage;
private processDeviceNetworkMessage;
private processDeviceFirmwareMessage;
private processDeviceOtaMessage;
}
export {};