from . import async_last_update_was_successful as async_last_update_was_successful
from .const import DOMAIN as DOMAIN
from _typeshed import Incomplete
from collections.abc import Mapping
from homeassistant import config_entries as config_entries, core as core, exceptions as exceptions
from homeassistant.components import dhcp as dhcp
from homeassistant.const import CONF_IP_ADDRESS as CONF_IP_ADDRESS, CONF_PASSWORD as CONF_PASSWORD
from homeassistant.data_entry_flow import FlowResult as FlowResult
from homeassistant.helpers.aiohttp_client import async_create_clientsession as async_create_clientsession
from homeassistant.util.network import is_ip_address as is_ip_address
from tesla_powerwall import Powerwall, SiteInfoResponse as SiteInfoResponse
from typing import Any

_LOGGER: Incomplete
ENTRY_FAILURE_STATES: Incomplete

async def _login_and_fetch_site_info(power_wall: Powerwall, password: str) -> tuple[SiteInfoResponse, str]: ...
async def _powerwall_is_reachable(ip_address: str, password: str) -> bool: ...
async def validate_input(hass: core.HomeAssistant, data: dict[str, str]) -> dict[str, str]: ...

class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
    VERSION: int
    ip_address: Incomplete
    title: Incomplete
    reauth_entry: Incomplete
    def __init__(self) -> None: ...
    async def _async_powerwall_is_offline(self, entry: config_entries.ConfigEntry) -> bool: ...
    async def async_step_dhcp(self, discovery_info: dhcp.DhcpServiceInfo) -> FlowResult: ...
    async def _async_try_connect(self, user_input: dict[str, Any]) -> tuple[dict[str, Any] | None, dict[str, str] | None, dict[str, str]]: ...
    async def async_step_confirm_discovery(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
    async def async_step_user(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
    async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> FlowResult: ...
    async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult: ...

class WrongVersion(exceptions.HomeAssistantError): ...
