import voluptuous as vol
from . import const as const, messages as messages
from .connection import ActiveConnection as ActiveConnection
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
from homeassistant.exceptions import Unauthorized as Unauthorized
from typing import Any, Callable

async def _handle_async_response(func: const.AsyncWebSocketCommandHandler, hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any]) -> None: ...
def async_response(func: const.AsyncWebSocketCommandHandler) -> const.WebSocketCommandHandler: ...
def require_admin(func: const.WebSocketCommandHandler) -> const.WebSocketCommandHandler: ...
def ws_require_user(only_owner: bool = ..., only_system_user: bool = ..., allow_system_user: bool = ..., only_active_user: bool = ..., only_inactive_user: bool = ...) -> Callable[[const.WebSocketCommandHandler], const.WebSocketCommandHandler]: ...
def websocket_command(schema: dict[vol.Marker, Any]) -> Callable[[const.WebSocketCommandHandler], const.WebSocketCommandHandler]: ...
