from .const import DATA_CLIENT as DATA_CLIENT, DOMAIN as DOMAIN, EVENT_DEVICE_ADDED_TO_REGISTRY as EVENT_DEVICE_ADDED_TO_REGISTRY
from aiohttp import web
from homeassistant.components import websocket_api as websocket_api
from homeassistant.components.http.view import HomeAssistantView as HomeAssistantView
from homeassistant.components.websocket_api.connection import ActiveConnection as ActiveConnection
from homeassistant.components.websocket_api.const import ERR_NOT_FOUND as ERR_NOT_FOUND, ERR_NOT_SUPPORTED as ERR_NOT_SUPPORTED, ERR_UNKNOWN_ERROR as ERR_UNKNOWN_ERROR
from homeassistant.const import CONF_URL as CONF_URL
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
from homeassistant.helpers.device_registry import DeviceEntry as DeviceEntry
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect

ID: str
ENTRY_ID: str
NODE_ID: str
TYPE: str
PROPERTY: str
PROPERTY_KEY: str
VALUE: str
CONFIG: str
LEVEL: str
LOG_TO_FILE: str
FILENAME: str
ENABLED: str
FORCE_CONSOLE: str
VALUE_ID: str
STATUS: str

def async_register_api(hass: HomeAssistant) -> None: ...
def websocket_network_status(hass: HomeAssistant, connection: ActiveConnection, msg: dict) -> None: ...
def websocket_node_status(hass: HomeAssistant, connection: ActiveConnection, msg: dict) -> None: ...
async def websocket_add_node(hass: HomeAssistant, connection: ActiveConnection, msg: dict) -> None: ...
async def websocket_stop_inclusion(hass: HomeAssistant, connection: ActiveConnection, msg: dict) -> None: ...
async def websocket_stop_exclusion(hass: HomeAssistant, connection: ActiveConnection, msg: dict) -> None: ...
async def websocket_remove_node(hass: HomeAssistant, connection: ActiveConnection, msg: dict) -> None: ...
async def websocket_set_config_parameter(hass: HomeAssistant, connection: ActiveConnection, msg: dict) -> None: ...
def websocket_get_config_parameters(hass: HomeAssistant, connection: ActiveConnection, msg: dict) -> None: ...
def filename_is_present_if_logging_to_file(obj: dict) -> dict: ...
async def websocket_update_log_config(hass: HomeAssistant, connection: ActiveConnection, msg: dict) -> None: ...
async def websocket_get_log_config(hass: HomeAssistant, connection: ActiveConnection, msg: dict) -> None: ...

class DumpView(HomeAssistantView):
    url: str = ...
    name: str = ...
    async def get(self, request: web.Request, config_entry_id: str) -> web.Response: ...
