from . import EsphomeEntity as EsphomeEntity, EsphomeEnumMapper as EsphomeEnumMapper, esphome_state_property as esphome_state_property, platform_async_setup_entry as platform_async_setup_entry
from aioesphomeapi import LightColorMode, LightInfo, LightState
from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ATTR_COLOR_TEMP as ATTR_COLOR_TEMP, ATTR_EFFECT as ATTR_EFFECT, ATTR_FLASH as ATTR_FLASH, ATTR_RGBWW_COLOR as ATTR_RGBWW_COLOR, ATTR_RGBW_COLOR as ATTR_RGBW_COLOR, ATTR_RGB_COLOR as ATTR_RGB_COLOR, ATTR_TRANSITION as ATTR_TRANSITION, ATTR_WHITE as ATTR_WHITE, COLOR_MODE_BRIGHTNESS as COLOR_MODE_BRIGHTNESS, COLOR_MODE_COLOR_TEMP as COLOR_MODE_COLOR_TEMP, COLOR_MODE_ONOFF as COLOR_MODE_ONOFF, COLOR_MODE_RGB as COLOR_MODE_RGB, COLOR_MODE_RGBW as COLOR_MODE_RGBW, COLOR_MODE_RGBWW as COLOR_MODE_RGBWW, COLOR_MODE_UNKNOWN as COLOR_MODE_UNKNOWN, COLOR_MODE_WHITE as COLOR_MODE_WHITE, FLASH_LONG as FLASH_LONG, FLASH_SHORT as FLASH_SHORT, LightEntity as LightEntity, SUPPORT_EFFECT as SUPPORT_EFFECT, SUPPORT_FLASH as SUPPORT_FLASH, SUPPORT_TRANSITION as SUPPORT_TRANSITION
from homeassistant.config_entries import ConfigEntry as ConfigEntry
from homeassistant.core import HomeAssistant as HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
from typing import Any

FLASH_LENGTHS: Any

async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...

_COLOR_MODES: EsphomeEnumMapper[LightColorMode, str]

class EsphomeLight(EsphomeEntity[LightInfo, LightState], LightEntity):
    @property
    def _supports_color_mode(self) -> bool: ...
    def is_on(self) -> Union[bool, None]: ...
    async def async_turn_on(self, **kwargs: Any) -> None: ...
    async def async_turn_off(self, **kwargs: Any) -> None: ...
    def brightness(self) -> Union[int, None]: ...
    def color_mode(self) -> Union[str, None]: ...
    def rgb_color(self) -> Union[tuple[int, int, int], None]: ...
    def rgbw_color(self) -> Union[tuple[int, int, int, int], None]: ...
    def rgbww_color(self) -> Union[tuple[int, int, int, int, int], None]: ...
    def color_temp(self) -> Union[float, None]: ...
    def effect(self) -> Union[str, None]: ...
    @property
    def _native_supported_color_modes(self) -> list[LightColorMode]: ...
    @property
    def supported_features(self) -> int: ...
    @property
    def supported_color_modes(self) -> Union[set[str], None]: ...
    @property
    def effect_list(self) -> list[str]: ...
    @property
    def min_mireds(self) -> float: ...
    @property
    def max_mireds(self) -> float: ...
