from . import get_hub as get_hub
from .const import CALL_TYPE_REGISTER_HOLDING as CALL_TYPE_REGISTER_HOLDING, CALL_TYPE_WRITE_REGISTER as CALL_TYPE_WRITE_REGISTER, CONF_BRIGHTNESS_REGISTER as CONF_BRIGHTNESS_REGISTER, CONF_COLOR_TEMP_REGISTER as CONF_COLOR_TEMP_REGISTER, CONF_MAX_TEMP as CONF_MAX_TEMP, CONF_MIN_TEMP as CONF_MIN_TEMP, LIGHT_DEFAULT_MAX_KELVIN as LIGHT_DEFAULT_MAX_KELVIN, LIGHT_DEFAULT_MIN_KELVIN as LIGHT_DEFAULT_MIN_KELVIN, LIGHT_MAX_BRIGHTNESS as LIGHT_MAX_BRIGHTNESS, LIGHT_MODBUS_INVALID_VALUE as LIGHT_MODBUS_INVALID_VALUE, LIGHT_MODBUS_SCALE_MAX as LIGHT_MODBUS_SCALE_MAX, LIGHT_MODBUS_SCALE_MIN as LIGHT_MODBUS_SCALE_MIN
from .entity import ModbusToggleEntity as ModbusToggleEntity
from .modbus import ModbusHub as ModbusHub
from _typeshed import Incomplete
from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ATTR_COLOR_TEMP_KELVIN as ATTR_COLOR_TEMP_KELVIN, ColorMode as ColorMode, LightEntity as LightEntity
from homeassistant.const import CONF_LIGHTS as CONF_LIGHTS, CONF_NAME as CONF_NAME
from homeassistant.core import HomeAssistant as HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
from typing import Any

PARALLEL_UPDATES: int

async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...

class ModbusLight(ModbusToggleEntity, LightEntity):
    _brightness_address: int | None
    _color_temp_address: int | None
    _attr_color_mode: Incomplete
    _attr_supported_color_modes: Incomplete
    _attr_min_color_temp_kelvin: int
    _attr_max_color_temp_kelvin: int
    def __init__(self, hass: HomeAssistant, hub: ModbusHub, config: dict[str, Any]) -> None: ...
    _attr_brightness: Incomplete
    _attr_color_temp_kelvin: Incomplete
    async def async_added_to_hass(self) -> None: ...
    @staticmethod
    def _detect_color_mode(config: dict[str, Any]) -> ColorMode: ...
    async def async_turn_on(self, **kwargs: Any) -> None: ...
    async def async_turn_off(self, **kwargs: Any) -> None: ...
    async def async_set_brightness(self, brightness: int) -> None: ...
    async def async_set_color_temp(self, color_temp_kelvin: int) -> None: ...
    async def _async_update(self) -> None: ...
    @staticmethod
    def _convert_modbus_percent_to_brightness(percent: int) -> int: ...
    def _convert_modbus_percent_to_temperature(self, percent: int) -> int: ...
    @staticmethod
    def _convert_brightness_to_modbus(brightness: int) -> int: ...
    def _convert_color_temp_to_modbus(self, kelvin: int) -> int: ...
