from .entity import KaleidescapeEntity as KaleidescapeEntity
from _typeshed import Incomplete
from datetime import datetime
from homeassistant.components.media_player import MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState
from homeassistant.config_entries import ConfigEntry as ConfigEntry
from homeassistant.core import HomeAssistant as HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
from homeassistant.util.dt import utcnow as utcnow

KALEIDESCAPE_PLAYING_STATES: Incomplete
KALEIDESCAPE_PAUSED_STATES: Incomplete
_LOGGER: Incomplete

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

class KaleidescapeMediaPlayer(KaleidescapeEntity, MediaPlayerEntity):
    _attr_supported_features: Incomplete
    _attr_name: Incomplete
    async def async_turn_on(self) -> None: ...
    async def async_turn_off(self) -> None: ...
    async def async_media_pause(self) -> None: ...
    async def async_media_play(self) -> None: ...
    async def async_media_stop(self) -> None: ...
    async def async_media_next_track(self) -> None: ...
    async def async_media_previous_track(self) -> None: ...
    @property
    def state(self) -> MediaPlayerState: ...
    @property
    def available(self) -> bool: ...
    @property
    def media_content_id(self) -> str | None: ...
    @property
    def media_content_type(self) -> str | None: ...
    @property
    def media_duration(self) -> int | None: ...
    @property
    def media_position(self) -> int | None: ...
    @property
    def media_position_updated_at(self) -> datetime | None: ...
    @property
    def media_image_url(self) -> str: ...
    @property
    def media_title(self) -> str: ...
