import { ClimateMode, ColorModes } from "../accessories/characteristics"; import { TuyaDeviceDefaults } from "../config"; export declare type ExtendedBoolean = boolean | "true" | "false" | "True" | "False"; declare type TuyaProperties = Partial<{ brightness: number | string; color: Partial<{ hue: string; saturation: string; brightness: string; }>; color_mode: ColorModes; color_temp: number | string; current_temperature: number | string; max_temper: number | string; min_temper: number | string; mode: ClimateMode; online: ExtendedBoolean; speed: number | string; speed_level: number | string; state: ExtendedBoolean | CoverState; support_stop: ExtendedBoolean; temperature: number | string; }>; declare type CustomProperties = Partial<{ target_cover_state: CoverState; }>; export declare type DeviceState = TuyaProperties & CustomProperties; export declare enum CoverState { Opening = 1, Closing = 2, Stopped = 3 } export declare const TuyaDeviceTypes: readonly ["climate", "cover", "dimmer", "fan", "garage", "light", "outlet", "scene", "switch", "temperature_sensor", "window"]; export declare type TuyaDeviceType = typeof TuyaDeviceTypes[number]; export declare const HomeAssistantDeviceTypes: readonly ["climate", "cover", "dimmer", "fan", "light", "outlet", "scene", "switch"]; export declare type HomeAssistantDeviceType = typeof HomeAssistantDeviceTypes[number]; export declare type TuyaDevice = { data: DeviceState; name: string; id: string; dev_type: TuyaDeviceType; ha_type: HomeAssistantDeviceType; config?: Partial & { old_dev_type: TuyaDeviceType; }; }; export declare type TuyaHeader = { code: "FrequentlyInvoke" | "SUCCESS" | "TargetOffline" | "UnsupportedOperation" | string; payloadVersion: 1; msg?: string; }; export declare type DiscoveryPayload = { payload: { devices: TuyaDevice[]; }; header: TuyaHeader; }; export declare type DeviceQueryPayload = { payload: { data: DeviceState; }; header: TuyaHeader; }; export declare type TuyaApiMethod = "brightnessSet" | "colorSet" | "colorTemperatureSet" | "modeSet" | "startStop" | "temperatureSet" | "turnOnOff" | "windSpeedSet"; export declare type TuyaApiPayload = Method extends "brightnessSet" ? { value: number; } : Method extends "colorSet" ? { color: { hue: number; saturation: number; brightness: number; }; } : Method extends "colorTemperatureSet" ? { value: number; } : Method extends "modeSet" ? { value: ClimateMode; } : Method extends "startStop" ? { value: 0; } : Method extends "temperatureSet" ? { value: number; } : Method extends "turnOnOff" ? { value: 0 | 1; } : Method extends "windSpeedSet" ? { value: number; } : never; export {}; //# sourceMappingURL=response.d.ts.map