from .const import BEO_WEBSOCKET_EVENT as BEO_WEBSOCKET_EVENT, BeoModel as BeoModel, CONNECTION_STATUS as CONNECTION_STATUS, DOMAIN as DOMAIN, EVENT_TRANSLATION_MAP as EVENT_TRANSLATION_MAP, WebsocketNotification as WebsocketNotification
from .entity import BeoBase as BeoBase
from .util import get_device as get_device, get_remotes as get_remotes
from _typeshed import Incomplete
from homeassistant.config_entries import ConfigEntry as ConfigEntry
from homeassistant.core import HomeAssistant as HomeAssistant
from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
from homeassistant.util.enum import try_parse_enum as try_parse_enum
from mozart_api.models import BatteryState as BatteryState, BeoRemoteButton as BeoRemoteButton, ButtonEvent as ButtonEvent, ListeningModeProps as ListeningModeProps, PlaybackContentMetadata as PlaybackContentMetadata, PlaybackError as PlaybackError, PlaybackProgress as PlaybackProgress, RenderingState as RenderingState, SoftwareUpdateState as SoftwareUpdateState, Source as Source, VolumeState as VolumeState, WebsocketNotificationTag as WebsocketNotificationTag
from mozart_api.mozart_client import BaseWebSocketResponse as BaseWebSocketResponse, MozartClient as MozartClient

_LOGGER: Incomplete

class BeoWebsocket(BeoBase):
    hass: Incomplete
    _device: Incomplete
    def __init__(self, hass: HomeAssistant, entry: ConfigEntry, client: MozartClient) -> None: ...
    def _update_connection_status(self) -> None: ...
    def on_connection(self) -> None: ...
    def on_connection_lost(self) -> None: ...
    def on_active_listening_mode(self, notification: ListeningModeProps) -> None: ...
    def on_battery_notification(self, notification: BatteryState) -> None: ...
    def on_beo_remote_button_notification(self, notification: BeoRemoteButton) -> None: ...
    def on_button_notification(self, notification: ButtonEvent) -> None: ...
    async def on_notification_notification(self, notification: WebsocketNotificationTag) -> None: ...
    def on_playback_error_notification(self, notification: PlaybackError) -> None: ...
    def on_playback_metadata_notification(self, notification: PlaybackContentMetadata) -> None: ...
    def on_playback_progress_notification(self, notification: PlaybackProgress) -> None: ...
    def on_playback_state_notification(self, notification: RenderingState) -> None: ...
    def on_playback_source_notification(self, notification: Source) -> None: ...
    def on_source_change_notification(self, notification: Source) -> None: ...
    def on_volume_notification(self, notification: VolumeState) -> None: ...
    async def on_software_update_state(self, notification: SoftwareUpdateState) -> None: ...
    def on_all_notifications_raw(self, notification: BaseWebSocketResponse) -> None: ...
