import { Component } from './components'; import { FloraFi } from './Florafi'; import { Room } from './Room'; interface IHomieConfigWifi { ssid?: string; password?: string; bssid?: string; channel?: number; ip?: string; mask?: string; gw?: string; dns1?: string; dns2?: string; } interface IHomieConfigMqtt { host?: string; port?: number; base_topic?: string; auth?: boolean; username?: string; password?: string; ssl?: boolean; ssl_fingerprint?: string; } export interface IHomieConfig { name?: string; device_id?: string; device_stats_interval?: number; wifi?: IHomieConfigWifi; mqtt?: IHomieConfigMqtt; ota?: { enabled: boolean; }; settings?: { [key: string]: string | number | boolean; }; } interface IDeviceStats { uptime: number | null; signal: number | null; freeHeap?: number; interval?: number; } interface IDeviceNetwork { ip?: string; mac?: string; wifi: IHomieConfigWifi; mqtt: IHomieConfigMqtt; } export interface IDeviceFirmware { name: string | null; version?: string; checksum?: string; data?: Promise; binary_size?: number; binary_path?: string; binary_checksum?: string; } export interface IFirmwareRepositoryManifest { [key: string]: IDeviceFirmware; } interface IDeviceOta { enabled: boolean; status: { progress: number; code: number; message: string; isError: boolean; }; } interface IDeviceSettings { garden_room?: string; ntp_server?: string; update_channel?: string; deactivated?: boolean; } export declare class Device { id: string; name: string; roomId?: string; farm: FloraFi; room: Room | null; components: Component[]; isOnline: boolean; isLoading: boolean; isUnknown: boolean; isDeactivated: boolean; stats: IDeviceStats; network: IDeviceNetwork; firmware: IDeviceFirmware; firmwareUpdate?: IDeviceFirmware; settings: IDeviceSettings; ota: IDeviceOta; constructor(id: string, farm: FloraFi); loadMore(): void; isUpdated(): boolean; isOutdated(): boolean; isUpdateable(): boolean; onReboot(): void; isRelay(): boolean; get relayCount(): number; } export {};