-- WARN: This file is automatically generated, do not manually edit ---@meta --- @class MqttDeviceConfig --- @field topic String --- @class AirFilter AirFilter = {} --- @param config AirFilterConfig --- @return WrappedDevice function AirFilter.new(config) end --- @class AirFilterConfig --- @field name String --- @field room String|nil --- @field topic String --- @field client WrappedAsyncClient --- @class AudioSetup AudioSetup = {} --- @param config AudioSetupConfig --- @return WrappedDevice function AudioSetup.new(config) end --- @class AudioSetupConfig --- @field identifier String --- @field topic String --- @field mixer WrappedDevice --- @field speakers WrappedDevice --- @field client WrappedAsyncClient --- @class ContactSensor ContactSensor = {} --- @param config ContactSensorConfig --- @return WrappedDevice function ContactSensor.new(config) end --- @class ContactSensorConfig --- @field identifier String --- @field topic String --- @field presence PresenceDeviceConfig|nil --- @field trigger TriggerConfig|nil --- @field client WrappedAsyncClient --- @class PresenceDeviceConfig --- @field topic String --- @field timeout u64 --- @class TriggerConfig --- @field devices TriggerDevicesHelper --- @field timeout u64|nil --- @class DebugBridge DebugBridge = {} --- @param config DebugBridgeConfig --- @return WrappedDevice function DebugBridge.new(config) end --- @class DebugBridgeConfig --- @field identifier String --- @field topic String --- @field client WrappedAsyncClient --- @class HueBridge HueBridge = {} --- @param config HueBridgeConfig --- @return WrappedDevice function HueBridge.new(config) end --- @class HueBridgeConfig --- @field identifier String --- @field ip Ipv4Addr --- @field login String --- @field flags FlagIDs --- @class FlagIDs --- @field presence isize --- @field darkness isize --- @class HueGroup HueGroup = {} --- @param config HueGroupConfig --- @return WrappedDevice function HueGroup.new(config) end --- @class HueGroupConfig --- @field identifier String --- @field ip Ipv4Addr --- @field login String --- @field group_id isize --- @field timer_id isize --- @field scene_id String --- @field remotes MqttDeviceConfig []|nil --- @field client WrappedAsyncClient --- @class IkeaOutlet IkeaOutlet = {} --- @param config IkeaOutletConfig --- @return WrappedDevice function IkeaOutlet.new(config) end --- @class IkeaOutletConfig --- @field name String --- @field room String|nil --- @field topic String --- @field outlet_type OutletType|nil --- @field timeout u64|nil --- @field remotes MqttDeviceConfig []|nil --- @field client WrappedAsyncClient --- @class KasaOutlet KasaOutlet = {} --- @param config KasaOutletConfig --- @return WrappedDevice function KasaOutlet.new(config) end --- @class KasaOutletConfig --- @field identifier String --- @field ip Ipv4Addr --- @class LightSensor LightSensor = {} --- @param config LightSensorConfig --- @return WrappedDevice function LightSensor.new(config) end --- @class LightSensorConfig --- @field identifier String --- @field topic String --- @field min isize --- @field max isize --- @field event_channel EventChannel --- @field client WrappedAsyncClient --- @class Ntfy Ntfy = {} --- @param config NtfyConfig --- @return WrappedDevice function Ntfy.new(config) end --- @class NtfyConfig --- @field url String|nil --- @field topic String --- @field event_channel EventChannel --- @class Presence Presence = {} --- @param config PresenceConfig --- @return WrappedDevice function Presence.new(config) end --- @class PresenceConfig --- @field topic String --- @field event_channel EventChannel --- @field client WrappedAsyncClient --- @class WakeOnLAN WakeOnLAN = {} --- @param config WakeOnLANConfig --- @return WrappedDevice function WakeOnLAN.new(config) end --- @class WakeOnLANConfig --- @field name String --- @field room String|nil --- @field topic String --- @field mac_address MacAddress --- @field broadcast_ip Ipv4Addr|nil --- @field client WrappedAsyncClient --- @class Washer Washer = {} --- @param config WasherConfig --- @return WrappedDevice function Washer.new(config) end --- @class WasherConfig --- @field identifier String --- @field topic String --- @field threshold f32 --- @field event_channel EventChannel --- @field client WrappedAsyncClient -- End of generated file