/** * Device Types and Interfaces */ /** * Device information from discovery */ export interface DeviceInfo { /** Device serial number */ serial: string; /** Dyson product type code (e.g., '438', '455') */ productType: string; /** User-assigned device name */ name: string; /** Local MQTT credentials */ credentials: string; /** Device IP address on local network */ ipAddress?: string; } /** * Device state representing current device status */ export interface DeviceState { /** Whether the device is connected */ connected: boolean; /** Fan power state */ isOn: boolean; /** Fan speed (1-10, or -1 for auto) */ fanSpeed: number; /** Oscillation enabled */ oscillation: boolean; /** Auto mode enabled */ autoMode: boolean; /** Oscillation start angle (45-355) */ oscillationAngleStart?: number; /** Oscillation end angle (45-355) */ oscillationAngleEnd?: number; /** Night mode enabled */ nightMode: boolean; /** Continuous monitoring enabled (sensors active even when fan is off) */ continuousMonitoring?: boolean; /** Front airflow enabled */ frontAirflow?: boolean; /** Temperature in Kelvin (divide by 10 for actual value) */ temperature?: number; /** Relative humidity percentage */ humidity?: number; /** Particulate matter 2.5 (PM2.5) */ pm25?: number; /** Particulate matter 10 (PM10) */ pm10?: number; /** Volatile organic compounds index */ vocIndex?: number; /** Nitrogen dioxide index */ no2Index?: number; /** Formaldehyde (HCHO) level */ formaldehydeLevel?: number; /** Sleep timer remaining in minutes (0 = off) */ sleepTimer?: number; /** HEPA filter life remaining (hours) */ hepaFilterLife?: number; /** Carbon filter life remaining (hours) */ carbonFilterLife?: number; /** Heating enabled */ heatingEnabled?: boolean; /** Heater actively heating (reaching target temperature) */ heatingActive?: boolean; /** Target temperature in Kelvin (divide by 10) */ targetTemperature?: number; /** Humidifier enabled */ humidifierEnabled?: boolean; /** Target humidity percentage */ targetHumidity?: number; /** Water tank empty */ waterTankEmpty?: boolean; /** Fan state - whether fan is actively running (Link series) */ fanState?: boolean; /** Air quality target level for auto mode (Link series, 1-4) */ airQualityTarget?: number; /** Device error code (NONE = no error) */ errorCode?: string; /** Device warning code (NONE = no warning) */ warningCode?: string; /** Tilt sensor status */ tiltStatus?: string; } /** * Default device state */ export declare function createDefaultState(): DeviceState; /** * Device features supported by a device type */ export interface DeviceFeatures { /** Supports fan control */ fan: boolean; /** Supports oscillation */ oscillation: boolean; /** Supports auto mode */ autoMode: boolean; /** Supports night mode */ nightMode: boolean; /** Supports continuous monitoring */ continuousMonitoring: boolean; /** Supports front airflow direction (jet focus) */ frontAirflow: boolean; /** Has temperature sensor */ temperatureSensor: boolean; /** Has humidity sensor */ humiditySensor: boolean; /** Has air quality sensors */ airQualitySensor: boolean; /** * Has basic air quality sensor (Link series) * Basic sensors use pact/vact index (0-9 scale) * Advanced sensors use pm25/pm10/va10 actual values */ basicAirQualitySensor: boolean; /** Has NO2 sensor (newer models) */ no2Sensor: boolean; /** Supports heating */ heating: boolean; /** Supports humidification */ humidifier: boolean; /** Has HEPA filter */ hepaFilter: boolean; /** Has carbon filter */ carbonFilter: boolean; } /** * Default features (minimum fan support) */ export declare const DEFAULT_FEATURES: DeviceFeatures; /** * Events emitted by DysonDevice */ export interface DeviceEvents { /** Emitted when device connects */ connect: []; /** Emitted when device disconnects */ disconnect: []; /** Emitted when device state changes */ stateChange: [DeviceState]; /** Emitted on device error */ error: [Error]; } //# sourceMappingURL=types.d.ts.map