from .const import ColorTempModes as ColorTempModes, KNX_ADDRESS as KNX_ADDRESS, SupportedPlatforms as SupportedPlatforms
from .schema import BinarySensorSchema as BinarySensorSchema, ClimateSchema as ClimateSchema, CoverSchema as CoverSchema, FanSchema as FanSchema, LightSchema as LightSchema, SceneSchema as SceneSchema, SensorSchema as SensorSchema, SwitchSchema as SwitchSchema, WeatherSchema as WeatherSchema
from homeassistant.const import CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_NAME as CONF_NAME, CONF_TYPE as CONF_TYPE
from homeassistant.helpers.typing import ConfigType as ConfigType
from xknx import XKNX as XKNX
from xknx.devices import BinarySensor as XknxBinarySensor, Climate as XknxClimate, Cover as XknxCover, Device as XknxDevice, Fan as XknxFan, Light as XknxLight, Notification as XknxNotification, Scene as XknxScene, Sensor as XknxSensor, Switch as XknxSwitch, Weather as XknxWeather

def create_knx_device(platform: SupportedPlatforms, knx_module: XKNX, config: ConfigType) -> XknxDevice: ...
def _create_cover(knx_module: XKNX, config: ConfigType) -> XknxCover: ...
def _create_light_color(color: str, config: ConfigType) -> tuple[Union[str, None], Union[str, None], Union[str, None], Union[str, None]]: ...
def _create_light(knx_module: XKNX, config: ConfigType) -> XknxLight: ...
def _create_climate(knx_module: XKNX, config: ConfigType) -> XknxClimate: ...
def _create_switch(knx_module: XKNX, config: ConfigType) -> XknxSwitch: ...
def _create_sensor(knx_module: XKNX, config: ConfigType) -> XknxSensor: ...
def _create_notify(knx_module: XKNX, config: ConfigType) -> XknxNotification: ...
def _create_scene(knx_module: XKNX, config: ConfigType) -> XknxScene: ...
def _create_binary_sensor(knx_module: XKNX, config: ConfigType) -> XknxBinarySensor: ...
def _create_weather(knx_module: XKNX, config: ConfigType) -> XknxWeather: ...
def _create_fan(knx_module: XKNX, config: ConfigType) -> XknxFan: ...
