from . import HomeeConfigEntry as HomeeConfigEntry
from .const import CLIMATE_PROFILES as CLIMATE_PROFILES, DOMAIN as DOMAIN, HOMEE_UNIT_TO_HA_UNIT as HOMEE_UNIT_TO_HA_UNIT, PRESET_MANUAL as PRESET_MANUAL
from .entity import HomeeNodeEntity as HomeeNodeEntity
from .helpers import setup_homee_platform as setup_homee_platform
from _typeshed import Incomplete
from homeassistant.components.climate import ATTR_TEMPERATURE as ATTR_TEMPERATURE, ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode, PRESET_BOOST as PRESET_BOOST, PRESET_ECO as PRESET_ECO, PRESET_NONE as PRESET_NONE
from homeassistant.core import HomeAssistant as HomeAssistant
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
from pyHomee.model import HomeeNode as HomeeNode
from typing import Any

PARALLEL_UPDATES: int
ROOM_THERMOSTATS: Incomplete

async def add_climate_entities(config_entry: HomeeConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, nodes: list[HomeeNode]) -> None: ...
async def async_setup_entry(hass: HomeAssistant, config_entry: HomeeConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...

class HomeeClimate(HomeeNodeEntity, ClimateEntity):
    _attr_name: Incomplete
    _attr_translation_key = DOMAIN
    _target_temp: Incomplete
    _attr_temperature_unit: Incomplete
    _attr_target_temperature_step: Incomplete
    _attr_unique_id: Incomplete
    _heating_mode: Incomplete
    _temperature: Incomplete
    _valve_position: Incomplete
    def __init__(self, node: HomeeNode, entry: HomeeConfigEntry) -> None: ...
    @property
    def hvac_mode(self) -> HVACMode: ...
    @property
    def hvac_action(self) -> HVACAction: ...
    @property
    def preset_mode(self) -> str: ...
    @property
    def current_temperature(self) -> float | None: ...
    @property
    def target_temperature(self) -> float: ...
    @property
    def min_temp(self) -> float: ...
    @property
    def max_temp(self) -> float: ...
    async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: ...
    async def async_set_preset_mode(self, preset_mode: str) -> None: ...
    async def async_set_temperature(self, **kwargs: Any) -> None: ...
    async def async_turn_on(self) -> None: ...
    async def async_turn_off(self) -> None: ...

def get_climate_features(node: HomeeNode) -> tuple[ClimateEntityFeature, list[HVACMode], list[str] | None]: ...
