from .bridge import SamsungTVLegacyBridge as SamsungTVLegacyBridge, SamsungTVWSBridge as SamsungTVWSBridge
from .const import CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_MODEL as CONF_MODEL, CONF_ON_ACTION as CONF_ON_ACTION, DEFAULT_NAME as DEFAULT_NAME, DOMAIN as DOMAIN, LOGGER as LOGGER
from homeassistant.components.media_player import MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEntity as MediaPlayerEntity
from homeassistant.components.media_player.const import MEDIA_TYPE_CHANNEL as MEDIA_TYPE_CHANNEL, SUPPORT_NEXT_TRACK as SUPPORT_NEXT_TRACK, SUPPORT_PAUSE as SUPPORT_PAUSE, SUPPORT_PLAY as SUPPORT_PLAY, SUPPORT_PLAY_MEDIA as SUPPORT_PLAY_MEDIA, SUPPORT_PREVIOUS_TRACK as SUPPORT_PREVIOUS_TRACK, SUPPORT_SELECT_SOURCE as SUPPORT_SELECT_SOURCE, SUPPORT_TURN_OFF as SUPPORT_TURN_OFF, SUPPORT_TURN_ON as SUPPORT_TURN_ON, SUPPORT_VOLUME_MUTE as SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_STEP as SUPPORT_VOLUME_STEP
from homeassistant.config_entries import ConfigEntry as ConfigEntry, SOURCE_REAUTH as SOURCE_REAUTH
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_MAC as CONF_MAC, CONF_NAME as CONF_NAME, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON
from homeassistant.core import HomeAssistant as HomeAssistant
from homeassistant.helpers import entity_component as entity_component
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC as CONNECTION_NETWORK_MAC
from homeassistant.helpers.entity import DeviceInfo as DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
from homeassistant.helpers.script import Script as Script
from typing import Any

KEY_PRESS_TIMEOUT: float
SOURCES: Any
SUPPORT_SAMSUNGTV: Any
SCAN_INTERVAL_PLUS_OFF_TIME: Any

async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...

class SamsungTVDevice(MediaPlayerEntity):
    _config_entry: Any
    _host: Any
    _mac: Any
    _on_script: Any
    _playing: bool
    _attr_name: Any
    _attr_state: Any
    _attr_unique_id: Any
    _attr_is_volume_muted: bool
    _attr_device_class: Any
    _attr_source_list: Any
    _attr_supported_features: Any
    _attr_device_info: Any
    _end_of_power_off: Any
    _bridge: Any
    _auth_failed: bool
    def __init__(self, bridge: Union[SamsungTVLegacyBridge, SamsungTVWSBridge], config_entry: ConfigEntry, on_script: Union[Script, None]) -> None: ...
    def access_denied(self) -> None: ...
    def update(self) -> None: ...
    def send_key(self, key: str) -> None: ...
    def _power_off_in_progress(self) -> bool: ...
    @property
    def available(self) -> bool: ...
    def turn_off(self) -> None: ...
    def volume_up(self) -> None: ...
    def volume_down(self) -> None: ...
    def mute_volume(self, mute: bool) -> None: ...
    def media_play_pause(self) -> None: ...
    def media_play(self) -> None: ...
    def media_pause(self) -> None: ...
    def media_next_track(self) -> None: ...
    def media_previous_track(self) -> None: ...
    async def async_play_media(self, media_type: str, media_id: str, **kwargs: Any) -> None: ...
    def _wake_on_lan(self) -> None: ...
    async def async_turn_on(self) -> None: ...
    def select_source(self, source: str) -> None: ...
