from .const import CONF_CITY as CONF_CITY, CONF_COUNTRY as CONF_COUNTRY, CONF_GEOGRAPHIES as CONF_GEOGRAPHIES, CONF_INTEGRATION_TYPE as CONF_INTEGRATION_TYPE, DATA_COORDINATOR as DATA_COORDINATOR, DOMAIN as DOMAIN, INTEGRATION_TYPE_GEOGRAPHY_COORDS as INTEGRATION_TYPE_GEOGRAPHY_COORDS, INTEGRATION_TYPE_GEOGRAPHY_NAME as INTEGRATION_TYPE_GEOGRAPHY_NAME, INTEGRATION_TYPE_NODE_PRO as INTEGRATION_TYPE_NODE_PRO, LOGGER as LOGGER
from collections.abc import Mapping
from datetime import timedelta
from homeassistant.config_entries import ConfigEntry as ConfigEntry
from homeassistant.const import ATTR_ATTRIBUTION as ATTR_ATTRIBUTION, CONF_API_KEY as CONF_API_KEY, CONF_IP_ADDRESS as CONF_IP_ADDRESS, CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE, CONF_PASSWORD as CONF_PASSWORD, CONF_SHOW_ON_MAP as CONF_SHOW_ON_MAP, CONF_STATE as CONF_STATE
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed
from homeassistant.helpers import aiohttp_client as aiohttp_client, entity_registry as entity_registry
from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity, DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
from typing import Any

PLATFORMS: Any
DATA_LISTENER: str
DEFAULT_ATTRIBUTION: str
DEFAULT_NODE_PRO_UPDATE_INTERVAL: Any
CONFIG_SCHEMA: Any

def async_get_geography_id(geography_dict: Mapping[str, Any]) -> str: ...
def async_get_cloud_api_update_interval(hass: HomeAssistant, api_key: str, num_consumers: int) -> timedelta: ...
def async_get_cloud_coordinators_by_api_key(hass: HomeAssistant, api_key: str) -> list[DataUpdateCoordinator]: ...
def async_sync_geo_coordinator_update_intervals(hass: HomeAssistant, api_key: str) -> None: ...
def _standardize_geography_config_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> None: ...
def _standardize_node_pro_config_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> None: ...
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
async def async_reload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> None: ...

class AirVisualEntity(CoordinatorEntity):
    _attr_extra_state_attributes: Any
    def __init__(self, coordinator: DataUpdateCoordinator) -> None: ...
    async def async_added_to_hass(self) -> None: ...
    def update_from_latest_data(self) -> None: ...
