from .const import DOMAIN as DOMAIN
from .coordinator import HomeConnectApplianceData as HomeConnectApplianceData, HomeConnectConfigEntry as HomeConnectConfigEntry
from .entity import HomeConnectEntity as HomeConnectEntity, HomeConnectOptionEntity as HomeConnectOptionEntity
from collections.abc import Callable as Callable
from homeassistant.const import Platform as Platform
from homeassistant.core import HomeAssistant as HomeAssistant
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers.entity import EntityDescription as EntityDescription
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback

def should_add_option_entity(description: EntityDescription, appliance: HomeConnectApplianceData, entity_registry: er.EntityRegistry, platform: Platform) -> bool: ...
def _create_option_entities(entity_registry: er.EntityRegistry, entry: HomeConnectConfigEntry, appliance: HomeConnectApplianceData, known_entity_unique_ids: dict[str, str], get_option_entities_for_appliance: Callable[[HomeConnectConfigEntry, HomeConnectApplianceData, er.EntityRegistry], list[HomeConnectOptionEntity]], async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
def _handle_paired_or_connected_appliance(hass: HomeAssistant, entry: HomeConnectConfigEntry, known_entity_unique_ids: dict[str, str], get_entities_for_appliance: Callable[[HomeConnectConfigEntry, HomeConnectApplianceData], list[HomeConnectEntity]], get_option_entities_for_appliance: Callable[[HomeConnectConfigEntry, HomeConnectApplianceData, er.EntityRegistry], list[HomeConnectOptionEntity]] | None, changed_options_listener_remove_callbacks: dict[str, list[Callable[[], None]]], async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
def _handle_depaired_appliance(entry: HomeConnectConfigEntry, known_entity_unique_ids: dict[str, str], changed_options_listener_remove_callbacks: dict[str, list[Callable[[], None]]]) -> None: ...
def setup_home_connect_entry(hass: HomeAssistant, entry: HomeConnectConfigEntry, get_entities_for_appliance: Callable[[HomeConnectConfigEntry, HomeConnectApplianceData], list[HomeConnectEntity]], async_add_entities: AddConfigEntryEntitiesCallback, get_option_entities_for_appliance: Callable[[HomeConnectConfigEntry, HomeConnectApplianceData, er.EntityRegistry], list[HomeConnectOptionEntity]] | None = None) -> None: ...
