export interface HaierEvoConfig { name: string; email: string; password: string; region: string; deviceId?: string; refreshInterval?: number; debug?: boolean; deviceCacheTTL?: number; requestRandomization?: boolean; minRequestDelay?: number; maxRequestDelay?: number; tokenRefreshMode?: 'auto' | 'manual' | 'disabled'; tokenRefreshInterval?: number; tokenRefreshThreshold?: number; batchTimeout?: number; includeDevices?: string[]; excludeDevices?: string[]; includeDeviceTypes?: string[]; excludeDeviceTypes?: string[]; includeNamePattern?: string; excludeNamePattern?: string; enableFanService?: boolean; enableBlindsControl?: boolean; enableBlindsAutoSwitch?: boolean; enableBlindsComfortSwitch?: boolean; enableLightControl?: boolean; enableHealthModeSwitch?: boolean; enableQuietModeSwitch?: boolean; enableTurboModeSwitch?: boolean; enableComfortModeSwitch?: boolean; /** * Interval in seconds to emit HomeKit temperature update events for AC devices. * Set to 0 or a negative value to disable periodic events. Default: 60 seconds. */ temperatureEventInterval?: number; /** * When true, publish a HomeKit temperature event every interval even if * the temperature value did not change. Default: true. */ temperatureEventForcePublish?: boolean; /** * Minimum delta in degrees Celsius required to publish a temperature event * when force publish is disabled. Default: 0 (no threshold). */ temperatureEventMinDelta?: number; /** * Optional jitter in seconds added as initial random delay before starting * periodic temperature events to avoid synchronized bursts. Default: 0. */ temperatureEventJitter?: number; } export interface AuthResponse { data: { token: { accessToken: string; refreshToken: string; expire: string; refreshExpire: string; }; }; error?: any; } export interface DeviceInfo { id: string; name: string; type: string; model: string; mac: string; status: number; attributes: DeviceAttribute[]; serialNumber?: string; firmwareVersion?: string; initialStatus?: DeviceStatus; } export interface DeviceAttribute { name: string; id: string; value?: any; mappings?: AttributeMapping[]; } export interface AttributeMapping { haier: string; value: string; } export interface DeviceStatus { current_temperature?: number; target_temperature?: number; status?: number; mode?: string; fan_mode?: string; swing_mode?: string; quiet?: boolean; turbo?: boolean; comfort?: boolean; health?: boolean; light?: boolean; sound?: boolean; antifreeze?: boolean; cleaning?: boolean; autohumidity?: boolean; eco_sensor?: string; preset_mode_sleep?: boolean; preset_mode_boost?: boolean; properties?: Record; attributes?: any[]; model?: string; serialNumber?: string; firmwareVersion?: string; deviceName?: string; freezer_door_open?: boolean; refrigerator_door_open?: boolean; } export interface HaierDevice { device_id: string; device_name: string; device_model: string; device_type: string; mac: string; serialNumber?: string; firmwareVersion?: string; status: number; available: boolean; current_temperature: number; target_temperature: number; mode: string; fan_mode: string; swing_mode: string; max_temperature: number; min_temperature: number; quiet: boolean; turbo: boolean; comfort: boolean; health: boolean; light: boolean; sound: boolean; antifreeze: boolean; cleaning: boolean; autohumidity: boolean; eco_sensor: string; preset_mode_sleep: boolean; preset_mode_boost: boolean; set_temperature(temp: number): Promise; switch_on(): Promise; switch_off(): Promise; set_operation_mode(mode: string): Promise; set_fan_mode(mode: string): Promise; set_swing_mode(mode: string): Promise; set_preset_mode(mode: string): Promise; set_quiet(enabled: boolean): Promise; set_turbo(enabled: boolean): Promise; set_comfort(enabled: boolean): Promise; set_health(enabled: boolean): Promise; set_light(enabled: boolean): Promise; set_sound(enabled: boolean): Promise; set_antifreeze(enabled: boolean): Promise; set_cleaning(enabled: boolean): Promise; set_autohumidity(enabled: boolean): Promise; set_eco_sensor(mode: string): Promise; set_sleep_mode(enabled: boolean): Promise; set_boost_mode(enabled: boolean): Promise; on(event: string, listener: (...args: any[]) => void): this; emit(event: string, ...args: any[]): boolean; updateFromStatus(status: any): void; setSkipInitialFetch(skip?: boolean): void; updateDeviceInfo(info: { model?: string; serialNumber?: string; firmwareVersion?: string; deviceName?: string; }): void; destroy(): void; } export interface HaierAC extends HaierDevice { get_supported_features(): number; get_hvac_modes(): string[]; get_fan_modes(): string[]; get_swing_modes(): string[]; get_preset_modes(): string[]; } /** * Device model configuration types for flexible per-model mapping */ export interface ModelModeMapping { haier: string; value: string; } export interface ModelAttributeConfig { name: string; id: string; mappings?: ReadonlyArray; } export interface ModelDefinition { modelPattern: string; groupCommandName: string; attributes: ReadonlyArray; } export interface ModelsConfigSchema { version: string; models: ReadonlyArray; } export interface PropertyMappings { operationModeId: string; fanSpeedId: string; targetTempId: string; currentTempIds: ReadonlyArray; powerStatusId: string; verticalSwingId?: string; lightId?: string; } export interface HaierRefrigerator extends HaierDevice { freezer_temperature: number; refrigerator_temperature: number; myzone_temperature: number; ambient_temperature: number; eco_mode: boolean; vacation_mode: boolean; defrost_mode: boolean; super_cool_mode: boolean; super_freeze_mode: boolean; refrigerator_door_open: boolean; freezer_door_open: boolean; set_freezer_temperature(temp: number): Promise; set_refrigerator_temperature(temp: number): Promise; set_eco_mode(enabled: boolean): Promise; set_vacation_mode(enabled: boolean): Promise; } //# sourceMappingURL=types.d.ts.map