from .const import DATA_NEST as DATA_NEST, DOMAIN as DOMAIN, SIGNAL_NEST_UPDATE as SIGNAL_NEST_UPDATE
from homeassistant.components.climate import ClimateEntity as ClimateEntity, PLATFORM_SCHEMA as PLATFORM_SCHEMA
from homeassistant.components.climate.const import ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, CURRENT_HVAC_COOL as CURRENT_HVAC_COOL, CURRENT_HVAC_HEAT as CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE as CURRENT_HVAC_IDLE, FAN_AUTO as FAN_AUTO, FAN_ON as FAN_ON, HVAC_MODE_AUTO as HVAC_MODE_AUTO, HVAC_MODE_COOL as HVAC_MODE_COOL, HVAC_MODE_HEAT as HVAC_MODE_HEAT, HVAC_MODE_OFF as HVAC_MODE_OFF, PRESET_AWAY as PRESET_AWAY, PRESET_ECO as PRESET_ECO, PRESET_NONE as PRESET_NONE, SUPPORT_FAN_MODE as SUPPORT_FAN_MODE, SUPPORT_PRESET_MODE as SUPPORT_PRESET_MODE, SUPPORT_TARGET_TEMPERATURE as SUPPORT_TARGET_TEMPERATURE, SUPPORT_TARGET_TEMPERATURE_RANGE as SUPPORT_TARGET_TEMPERATURE_RANGE
from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, TEMP_CELSIUS as TEMP_CELSIUS, TEMP_FAHRENHEIT as TEMP_FAHRENHEIT
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
from typing import Any

_LOGGER: Any
NEST_MODE_HEAT_COOL: str
NEST_MODE_ECO: str
NEST_MODE_HEAT: str
NEST_MODE_COOL: str
NEST_MODE_OFF: str
MODE_HASS_TO_NEST: Any
MODE_NEST_TO_HASS: Any
ACTION_NEST_TO_HASS: Any
PRESET_AWAY_AND_ECO: str
PRESET_MODES: Any

def setup_platform(hass, config, add_entities, discovery_info: Any | None = ...) -> None: ...
async def async_setup_legacy_entry(hass, entry, async_add_entities) -> None: ...

class NestThermostat(ClimateEntity):
    _unit: Any
    structure: Any
    device: Any
    _fan_modes: Any
    _support_flags: Any
    _operation_list: Any
    _has_fan: Any
    _away: Any
    _location: Any
    _name: Any
    _humidity: Any
    _target_temperature: Any
    _temperature: Any
    _temperature_scale: Any
    _mode: Any
    _action: Any
    _fan: Any
    _eco_temperature: Any
    _is_locked: Any
    _locked_temperature: Any
    _min_temperature: Any
    _max_temperature: Any
    def __init__(self, structure, device, temp_unit) -> None: ...
    @property
    def should_poll(self): ...
    async def async_added_to_hass(self) -> None: ...
    @property
    def supported_features(self): ...
    @property
    def unique_id(self): ...
    @property
    def device_info(self): ...
    @property
    def name(self): ...
    @property
    def temperature_unit(self): ...
    @property
    def current_temperature(self): ...
    @property
    def hvac_mode(self): ...
    @property
    def hvac_action(self): ...
    @property
    def target_temperature(self): ...
    @property
    def target_temperature_low(self): ...
    @property
    def target_temperature_high(self): ...
    def set_temperature(self, **kwargs) -> None: ...
    def set_hvac_mode(self, hvac_mode) -> None: ...
    @property
    def hvac_modes(self): ...
    @property
    def preset_mode(self): ...
    @property
    def preset_modes(self): ...
    def set_preset_mode(self, preset_mode) -> None: ...
    @property
    def fan_mode(self): ...
    @property
    def fan_modes(self): ...
    def set_fan_mode(self, fan_mode) -> None: ...
    @property
    def min_temp(self): ...
    @property
    def max_temp(self): ...
    def update(self) -> None: ...
