from _typeshed import Incomplete
from enum import IntFlag, StrEnum

CONTENT_AUTH_EXPIRY_TIME: Incomplete
ATTR_APP_ID: str
ATTR_APP_NAME: str
ATTR_ENTITY_PICTURE_LOCAL: str
ATTR_GROUP_MEMBERS: str
ATTR_INPUT_SOURCE: str
ATTR_INPUT_SOURCE_LIST: str
ATTR_MEDIA_ANNOUNCE: str
ATTR_MEDIA_ALBUM_ARTIST: str
ATTR_MEDIA_ALBUM_NAME: str
ATTR_MEDIA_ARTIST: str
ATTR_MEDIA_CHANNEL: str
ATTR_MEDIA_CONTENT_ID: str
ATTR_MEDIA_CONTENT_TYPE: str
ATTR_MEDIA_DURATION: str
ATTR_MEDIA_ENQUEUE: str
ATTR_MEDIA_EXTRA: str
ATTR_MEDIA_EPISODE: str
ATTR_MEDIA_PLAYLIST: str
ATTR_MEDIA_POSITION: str
ATTR_MEDIA_POSITION_UPDATED_AT: str
ATTR_MEDIA_REPEAT: str
ATTR_MEDIA_SEASON: str
ATTR_MEDIA_SEEK_POSITION: str
ATTR_MEDIA_SERIES_TITLE: str
ATTR_MEDIA_SHUFFLE: str
ATTR_MEDIA_TITLE: str
ATTR_MEDIA_TRACK: str
ATTR_MEDIA_VOLUME_LEVEL: str
ATTR_MEDIA_VOLUME_MUTED: str
ATTR_SOUND_MODE: str
ATTR_SOUND_MODE_LIST: str
DOMAIN: str

class MediaPlayerState(StrEnum):
    OFF = 'off'
    ON = 'on'
    IDLE = 'idle'
    PLAYING = 'playing'
    PAUSED = 'paused'
    STANDBY = 'standby'
    BUFFERING = 'buffering'

class MediaClass(StrEnum):
    ALBUM = 'album'
    APP = 'app'
    ARTIST = 'artist'
    CHANNEL = 'channel'
    COMPOSER = 'composer'
    CONTRIBUTING_ARTIST = 'contributing_artist'
    DIRECTORY = 'directory'
    EPISODE = 'episode'
    GAME = 'game'
    GENRE = 'genre'
    IMAGE = 'image'
    MOVIE = 'movie'
    MUSIC = 'music'
    PLAYLIST = 'playlist'
    PODCAST = 'podcast'
    SEASON = 'season'
    TRACK = 'track'
    TV_SHOW = 'tv_show'
    URL = 'url'
    VIDEO = 'video'

MEDIA_CLASS_ALBUM: str
MEDIA_CLASS_APP: str
MEDIA_CLASS_ARTIST: str
MEDIA_CLASS_CHANNEL: str
MEDIA_CLASS_COMPOSER: str
MEDIA_CLASS_CONTRIBUTING_ARTIST: str
MEDIA_CLASS_DIRECTORY: str
MEDIA_CLASS_EPISODE: str
MEDIA_CLASS_GAME: str
MEDIA_CLASS_GENRE: str
MEDIA_CLASS_IMAGE: str
MEDIA_CLASS_MOVIE: str
MEDIA_CLASS_MUSIC: str
MEDIA_CLASS_PLAYLIST: str
MEDIA_CLASS_PODCAST: str
MEDIA_CLASS_SEASON: str
MEDIA_CLASS_TRACK: str
MEDIA_CLASS_TV_SHOW: str
MEDIA_CLASS_URL: str
MEDIA_CLASS_VIDEO: str

class MediaType(StrEnum):
    ALBUM = 'album'
    APP = 'app'
    APPS = 'apps'
    ARTIST = 'artist'
    CHANNEL = 'channel'
    CHANNELS = 'channels'
    COMPOSER = 'composer'
    CONTRIBUTING_ARTIST = 'contributing_artist'
    EPISODE = 'episode'
    GAME = 'game'
    GENRE = 'genre'
    IMAGE = 'image'
    MOVIE = 'movie'
    MUSIC = 'music'
    PLAYLIST = 'playlist'
    PODCAST = 'podcast'
    SEASON = 'season'
    TRACK = 'track'
    TVSHOW = 'tvshow'
    URL = 'url'
    VIDEO = 'video'

MEDIA_TYPE_ALBUM: str
MEDIA_TYPE_APP: str
MEDIA_TYPE_APPS: str
MEDIA_TYPE_ARTIST: str
MEDIA_TYPE_CHANNEL: str
MEDIA_TYPE_CHANNELS: str
MEDIA_TYPE_COMPOSER: str
MEDIA_TYPE_CONTRIBUTING_ARTIST: str
MEDIA_TYPE_EPISODE: str
MEDIA_TYPE_GAME: str
MEDIA_TYPE_GENRE: str
MEDIA_TYPE_IMAGE: str
MEDIA_TYPE_MOVIE: str
MEDIA_TYPE_MUSIC: str
MEDIA_TYPE_PLAYLIST: str
MEDIA_TYPE_PODCAST: str
MEDIA_TYPE_SEASON: str
MEDIA_TYPE_TRACK: str
MEDIA_TYPE_TVSHOW: str
MEDIA_TYPE_URL: str
MEDIA_TYPE_VIDEO: str
SERVICE_CLEAR_PLAYLIST: str
SERVICE_JOIN: str
SERVICE_PLAY_MEDIA: str
SERVICE_SELECT_SOUND_MODE: str
SERVICE_SELECT_SOURCE: str
SERVICE_UNJOIN: str

class RepeatMode(StrEnum):
    ALL = 'all'
    OFF = 'off'
    ONE = 'one'

REPEAT_MODE_ALL: str
REPEAT_MODE_OFF: str
REPEAT_MODE_ONE: str
REPEAT_MODES: Incomplete

class MediaPlayerEntityFeature(IntFlag):
    PAUSE = 1
    SEEK = 2
    VOLUME_SET = 4
    VOLUME_MUTE = 8
    PREVIOUS_TRACK = 16
    NEXT_TRACK = 32
    TURN_ON = 128
    TURN_OFF = 256
    PLAY_MEDIA = 512
    VOLUME_STEP = 1024
    SELECT_SOURCE = 2048
    STOP = 4096
    CLEAR_PLAYLIST = 8192
    PLAY = 16384
    SHUFFLE_SET = 32768
    SELECT_SOUND_MODE = 65536
    BROWSE_MEDIA = 131072
    REPEAT_SET = 262144
    GROUPING = 524288
    MEDIA_ANNOUNCE = 1048576
    MEDIA_ENQUEUE = 2097152

SUPPORT_PAUSE: int
SUPPORT_SEEK: int
SUPPORT_VOLUME_SET: int
SUPPORT_VOLUME_MUTE: int
SUPPORT_PREVIOUS_TRACK: int
SUPPORT_NEXT_TRACK: int
SUPPORT_TURN_ON: int
SUPPORT_TURN_OFF: int
SUPPORT_PLAY_MEDIA: int
SUPPORT_VOLUME_STEP: int
SUPPORT_SELECT_SOURCE: int
SUPPORT_STOP: int
SUPPORT_CLEAR_PLAYLIST: int
SUPPORT_PLAY: int
SUPPORT_SHUFFLE_SET: int
SUPPORT_SELECT_SOUND_MODE: int
SUPPORT_BROWSE_MEDIA: int
SUPPORT_REPEAT_SET: int
SUPPORT_GROUPING: int
