# WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.2

import enum
import sys
import types
import typing
import uuid

import winsdk._winrt as _winrt

try:
    import winsdk.windows.devices.enumeration
except Exception:
    pass

try:
    import winsdk.windows.foundation
except Exception:
    pass

try:
    import winsdk.windows.foundation.collections
except Exception:
    pass

try:
    import winsdk.windows.foundation.numerics
except Exception:
    pass

try:
    import winsdk.windows.graphics.directx.direct3d11
except Exception:
    pass

try:
    import winsdk.windows.media
except Exception:
    pass

try:
    import winsdk.windows.media.audio
except Exception:
    pass

try:
    import winsdk.windows.media.casting
except Exception:
    pass

try:
    import winsdk.windows.media.core
except Exception:
    pass

try:
    import winsdk.windows.media.mediaproperties
except Exception:
    pass

try:
    import winsdk.windows.media.protection
except Exception:
    pass

try:
    import winsdk.windows.storage
except Exception:
    pass

try:
    import winsdk.windows.storage.streams
except Exception:
    pass

try:
    import winsdk.windows.ui.composition
except Exception:
    pass

class AutoLoadedDisplayPropertyKind(enum.IntEnum):
    NONE = 0
    MUSIC_OR_VIDEO = 1
    MUSIC = 2
    VIDEO = 3

class FailedMediaStreamKind(enum.IntEnum):
    UNKNOWN = 0
    AUDIO = 1
    VIDEO = 2

class MediaBreakInsertionMethod(enum.IntEnum):
    INTERRUPT = 0
    REPLACE = 1

class MediaCommandEnablingRule(enum.IntEnum):
    AUTO = 0
    ALWAYS = 1
    NEVER = 2

class MediaPlaybackItemChangedReason(enum.IntEnum):
    INITIAL_ITEM = 0
    END_OF_STREAM = 1
    ERROR = 2
    APP_REQUESTED = 3

class MediaPlaybackItemErrorCode(enum.IntEnum):
    NONE = 0
    ABORTED = 1
    NETWORK_ERROR = 2
    DECODE_ERROR = 3
    SOURCE_NOT_SUPPORTED_ERROR = 4
    ENCRYPTION_ERROR = 5

class MediaPlaybackSessionVideoConstrictionReason(enum.IntEnum):
    NONE = 0
    VIRTUAL_MACHINE = 1
    UNSUPPORTED_DISPLAY_ADAPTER = 2
    UNSIGNED_DRIVER = 3
    FRAME_SERVER_ENABLED = 4
    OUTPUT_PROTECTION_FAILED = 5
    UNKNOWN = 6

class MediaPlaybackState(enum.IntEnum):
    NONE = 0
    OPENING = 1
    BUFFERING = 2
    PLAYING = 3
    PAUSED = 4

class MediaPlayerAudioCategory(enum.IntEnum):
    OTHER = 0
    COMMUNICATIONS = 3
    ALERTS = 4
    SOUND_EFFECTS = 5
    GAME_EFFECTS = 6
    GAME_MEDIA = 7
    GAME_CHAT = 8
    SPEECH = 9
    MOVIE = 10
    MEDIA = 11

class MediaPlayerAudioDeviceType(enum.IntEnum):
    CONSOLE = 0
    MULTIMEDIA = 1
    COMMUNICATIONS = 2

class MediaPlayerError(enum.IntEnum):
    UNKNOWN = 0
    ABORTED = 1
    NETWORK_ERROR = 2
    DECODING_ERROR = 3
    SOURCE_NOT_SUPPORTED = 4

class MediaPlayerState(enum.IntEnum):
    CLOSED = 0
    OPENING = 1
    BUFFERING = 2
    PLAYING = 3
    PAUSED = 4
    STOPPED = 5

class SphericalVideoProjectionMode(enum.IntEnum):
    SPHERICAL = 0
    FLAT = 1

class StereoscopicVideoRenderMode(enum.IntEnum):
    MONO = 0
    STEREO = 1

class TimedMetadataTrackPresentationMode(enum.IntEnum):
    DISABLED = 0
    HIDDEN = 1
    APPLICATION_PRESENTED = 2
    PLATFORM_PRESENTED = 3

class BackgroundMediaPlayer(_winrt.Object):
    current: MediaPlayer
    @staticmethod
    def _from(obj: _winrt.Object) -> BackgroundMediaPlayer: ...
    @typing.overload
    @staticmethod
    def is_media_playing() -> _winrt.Boolean: ...
    @typing.overload
    @staticmethod
    def send_message_to_background(value: winsdk.windows.foundation.collections.ValueSet) -> None: ...
    @typing.overload
    @staticmethod
    def send_message_to_foreground(value: winsdk.windows.foundation.collections.ValueSet) -> None: ...
    @typing.overload
    @staticmethod
    def shutdown() -> None: ...
    @typing.overload
    @staticmethod
    def add_message_received_from_background(value: winsdk.windows.foundation.EventHandler[MediaPlayerDataReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    @staticmethod
    def remove_message_received_from_background(token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    @staticmethod
    def add_message_received_from_foreground(value: winsdk.windows.foundation.EventHandler[MediaPlayerDataReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    @staticmethod
    def remove_message_received_from_foreground(token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class CurrentMediaPlaybackItemChangedEventArgs(_winrt.Object):
    new_item: MediaPlaybackItem
    old_item: MediaPlaybackItem
    reason: MediaPlaybackItemChangedReason
    @staticmethod
    def _from(obj: _winrt.Object) -> CurrentMediaPlaybackItemChangedEventArgs: ...

class MediaBreak(_winrt.Object):
    can_start: _winrt.Boolean
    custom_properties: winsdk.windows.foundation.collections.ValueSet
    insertion_method: MediaBreakInsertionMethod
    playback_list: MediaPlaybackList
    presentation_position: typing.Optional[winsdk.windows.foundation.TimeSpan]
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaBreak: ...
    @typing.overload
    def __init__(self, insertion_method: MediaBreakInsertionMethod) -> None: ...
    @typing.overload
    def __init__(self, insertion_method: MediaBreakInsertionMethod, presentation_position: winsdk.windows.foundation.TimeSpan) -> None: ...

class MediaBreakEndedEventArgs(_winrt.Object):
    media_break: MediaBreak
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaBreakEndedEventArgs: ...

class MediaBreakManager(_winrt.Object):
    current_break: MediaBreak
    playback_session: MediaPlaybackSession
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaBreakManager: ...
    @typing.overload
    def play_break(self, value: MediaBreak) -> None: ...
    @typing.overload
    def skip_current_break(self) -> None: ...
    @typing.overload
    def add_break_ended(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaBreakManager, MediaBreakEndedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_break_ended(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_break_skipped(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaBreakManager, MediaBreakSkippedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_break_skipped(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_break_started(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaBreakManager, MediaBreakStartedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_break_started(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_breaks_seeked_over(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaBreakManager, MediaBreakSeekedOverEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_breaks_seeked_over(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class MediaBreakSchedule(_winrt.Object):
    preroll_break: MediaBreak
    postroll_break: MediaBreak
    midroll_breaks: winsdk.windows.foundation.collections.IVectorView[MediaBreak]
    playback_item: MediaPlaybackItem
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaBreakSchedule: ...
    @typing.overload
    def insert_midroll_break(self, media_break: MediaBreak) -> None: ...
    @typing.overload
    def remove_midroll_break(self, media_break: MediaBreak) -> None: ...
    @typing.overload
    def add_schedule_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaBreakSchedule, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_schedule_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class MediaBreakSeekedOverEventArgs(_winrt.Object):
    new_position: winsdk.windows.foundation.TimeSpan
    old_position: winsdk.windows.foundation.TimeSpan
    seeked_over_breaks: winsdk.windows.foundation.collections.IVectorView[MediaBreak]
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaBreakSeekedOverEventArgs: ...

class MediaBreakSkippedEventArgs(_winrt.Object):
    media_break: MediaBreak
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaBreakSkippedEventArgs: ...

class MediaBreakStartedEventArgs(_winrt.Object):
    media_break: MediaBreak
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaBreakStartedEventArgs: ...

class MediaItemDisplayProperties(_winrt.Object):
    type: winsdk.windows.media.MediaPlaybackType
    thumbnail: winsdk.windows.storage.streams.RandomAccessStreamReference
    music_properties: winsdk.windows.media.MusicDisplayProperties
    video_properties: winsdk.windows.media.VideoDisplayProperties
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaItemDisplayProperties: ...
    @typing.overload
    def clear_all(self) -> None: ...

class MediaPlaybackAudioTrackList(winsdk.windows.foundation.collections.IVectorView[winsdk.windows.media.core.AudioTrack], winsdk.windows.foundation.collections.IIterable[winsdk.windows.media.core.AudioTrack], winsdk.windows.media.core.ISingleSelectMediaTrackList, _winrt.Object):
    size: _winrt.UInt32
    selected_index: _winrt.Int32
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackAudioTrackList: ...
    @typing.overload
    def first(self) -> winsdk.windows.foundation.collections.IIterator[winsdk.windows.media.core.AudioTrack]: ...
    @typing.overload
    def get_at(self, index: _winrt.UInt32) -> winsdk.windows.media.core.AudioTrack: ...
    @typing.overload
    def get_many(self, start_index: _winrt.UInt32, items_size: _winrt.UInt32) -> typing.Tuple[_winrt.UInt32, typing.List[winsdk.windows.media.core.AudioTrack]]: ...
    @typing.overload
    def index_of(self, value: winsdk.windows.media.core.AudioTrack) -> typing.Tuple[_winrt.Boolean, _winrt.UInt32]: ...
    @typing.overload
    def add_selected_index_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[winsdk.windows.media.core.ISingleSelectMediaTrackList, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_selected_index_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class MediaPlaybackCommandManager(_winrt.Object):
    is_enabled: _winrt.Boolean
    auto_repeat_mode_behavior: MediaPlaybackCommandManagerCommandBehavior
    fast_forward_behavior: MediaPlaybackCommandManagerCommandBehavior
    media_player: MediaPlayer
    next_behavior: MediaPlaybackCommandManagerCommandBehavior
    pause_behavior: MediaPlaybackCommandManagerCommandBehavior
    play_behavior: MediaPlaybackCommandManagerCommandBehavior
    position_behavior: MediaPlaybackCommandManagerCommandBehavior
    previous_behavior: MediaPlaybackCommandManagerCommandBehavior
    rate_behavior: MediaPlaybackCommandManagerCommandBehavior
    rewind_behavior: MediaPlaybackCommandManagerCommandBehavior
    shuffle_behavior: MediaPlaybackCommandManagerCommandBehavior
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackCommandManager: ...
    @typing.overload
    def add_auto_repeat_mode_received(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackCommandManager, MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_auto_repeat_mode_received(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_fast_forward_received(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackCommandManager, MediaPlaybackCommandManagerFastForwardReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_fast_forward_received(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_next_received(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackCommandManager, MediaPlaybackCommandManagerNextReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_next_received(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_pause_received(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackCommandManager, MediaPlaybackCommandManagerPauseReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_pause_received(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_play_received(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackCommandManager, MediaPlaybackCommandManagerPlayReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_play_received(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_position_received(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackCommandManager, MediaPlaybackCommandManagerPositionReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_position_received(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_previous_received(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackCommandManager, MediaPlaybackCommandManagerPreviousReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_previous_received(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_rate_received(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackCommandManager, MediaPlaybackCommandManagerRateReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_rate_received(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_rewind_received(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackCommandManager, MediaPlaybackCommandManagerRewindReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_rewind_received(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_shuffle_received(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackCommandManager, MediaPlaybackCommandManagerShuffleReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_shuffle_received(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs(_winrt.Object):
    handled: _winrt.Boolean
    auto_repeat_mode: winsdk.windows.media.MediaPlaybackAutoRepeatMode
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class MediaPlaybackCommandManagerCommandBehavior(_winrt.Object):
    enabling_rule: MediaCommandEnablingRule
    command_manager: MediaPlaybackCommandManager
    is_enabled: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackCommandManagerCommandBehavior: ...
    @typing.overload
    def add_is_enabled_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackCommandManagerCommandBehavior, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_is_enabled_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class MediaPlaybackCommandManagerFastForwardReceivedEventArgs(_winrt.Object):
    handled: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackCommandManagerFastForwardReceivedEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class MediaPlaybackCommandManagerNextReceivedEventArgs(_winrt.Object):
    handled: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackCommandManagerNextReceivedEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class MediaPlaybackCommandManagerPauseReceivedEventArgs(_winrt.Object):
    handled: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackCommandManagerPauseReceivedEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class MediaPlaybackCommandManagerPlayReceivedEventArgs(_winrt.Object):
    handled: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackCommandManagerPlayReceivedEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class MediaPlaybackCommandManagerPositionReceivedEventArgs(_winrt.Object):
    handled: _winrt.Boolean
    position: winsdk.windows.foundation.TimeSpan
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackCommandManagerPositionReceivedEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class MediaPlaybackCommandManagerPreviousReceivedEventArgs(_winrt.Object):
    handled: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackCommandManagerPreviousReceivedEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class MediaPlaybackCommandManagerRateReceivedEventArgs(_winrt.Object):
    handled: _winrt.Boolean
    playback_rate: _winrt.Double
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackCommandManagerRateReceivedEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class MediaPlaybackCommandManagerRewindReceivedEventArgs(_winrt.Object):
    handled: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackCommandManagerRewindReceivedEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class MediaPlaybackCommandManagerShuffleReceivedEventArgs(_winrt.Object):
    handled: _winrt.Boolean
    is_shuffle_requested: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackCommandManagerShuffleReceivedEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class MediaPlaybackItem(IMediaPlaybackSource, _winrt.Object):
    audio_tracks: MediaPlaybackAudioTrackList
    source: winsdk.windows.media.core.MediaSource
    timed_metadata_tracks: MediaPlaybackTimedMetadataTrackList
    video_tracks: MediaPlaybackVideoTrackList
    can_skip: _winrt.Boolean
    break_schedule: MediaBreakSchedule
    duration_limit: typing.Optional[winsdk.windows.foundation.TimeSpan]
    start_time: winsdk.windows.foundation.TimeSpan
    is_disabled_in_playback_list: _winrt.Boolean
    auto_loaded_display_properties: AutoLoadedDisplayPropertyKind
    total_download_progress: _winrt.Double
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackItem: ...
    @typing.overload
    def __init__(self, source: winsdk.windows.media.core.MediaSource, start_time: winsdk.windows.foundation.TimeSpan) -> None: ...
    @typing.overload
    def __init__(self, source: winsdk.windows.media.core.MediaSource, start_time: winsdk.windows.foundation.TimeSpan, duration_limit: winsdk.windows.foundation.TimeSpan) -> None: ...
    @typing.overload
    def __init__(self, source: winsdk.windows.media.core.MediaSource) -> None: ...
    @typing.overload
    def apply_display_properties(self, value: MediaItemDisplayProperties) -> None: ...
    @typing.overload
    @staticmethod
    def find_from_media_source(source: winsdk.windows.media.core.MediaSource) -> MediaPlaybackItem: ...
    @typing.overload
    def get_display_properties(self) -> MediaItemDisplayProperties: ...
    @typing.overload
    def add_audio_tracks_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackItem, winsdk.windows.foundation.collections.IVectorChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_audio_tracks_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_timed_metadata_tracks_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackItem, winsdk.windows.foundation.collections.IVectorChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_timed_metadata_tracks_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_video_tracks_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackItem, winsdk.windows.foundation.collections.IVectorChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_video_tracks_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class MediaPlaybackItemError(_winrt.Object):
    error_code: MediaPlaybackItemErrorCode
    extended_error: winsdk.windows.foundation.HResult
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackItemError: ...

class MediaPlaybackItemFailedEventArgs(_winrt.Object):
    error: MediaPlaybackItemError
    item: MediaPlaybackItem
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackItemFailedEventArgs: ...

class MediaPlaybackItemOpenedEventArgs(_winrt.Object):
    item: MediaPlaybackItem
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackItemOpenedEventArgs: ...

class MediaPlaybackList(IMediaPlaybackSource, _winrt.Object):
    shuffle_enabled: _winrt.Boolean
    auto_repeat_enabled: _winrt.Boolean
    current_item: MediaPlaybackItem
    current_item_index: _winrt.UInt32
    items: winsdk.windows.foundation.collections.IObservableVector[MediaPlaybackItem]
    starting_item: MediaPlaybackItem
    max_prefetch_time: typing.Optional[winsdk.windows.foundation.TimeSpan]
    shuffled_items: winsdk.windows.foundation.collections.IVectorView[MediaPlaybackItem]
    max_played_items_to_keep_open: typing.Optional[_winrt.UInt32]
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackList: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def move_next(self) -> MediaPlaybackItem: ...
    @typing.overload
    def move_previous(self) -> MediaPlaybackItem: ...
    @typing.overload
    def move_to(self, item_index: _winrt.UInt32) -> MediaPlaybackItem: ...
    @typing.overload
    def set_shuffled_items(self, value: typing.Iterable[MediaPlaybackItem]) -> None: ...
    @typing.overload
    def add_current_item_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackList, CurrentMediaPlaybackItemChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_current_item_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_item_failed(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackList, MediaPlaybackItemFailedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_item_failed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_item_opened(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackList, MediaPlaybackItemOpenedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_item_opened(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class MediaPlaybackSession(_winrt.Object):
    stereoscopic_video_packing_mode: winsdk.windows.media.mediaproperties.StereoscopicVideoPackingMode
    position: winsdk.windows.foundation.TimeSpan
    playback_rate: _winrt.Double
    normalized_source_rect: winsdk.windows.foundation.Rect
    buffering_progress: _winrt.Double
    can_pause: _winrt.Boolean
    can_seek: _winrt.Boolean
    download_progress: _winrt.Double
    is_protected: _winrt.Boolean
    media_player: MediaPlayer
    natural_duration: winsdk.windows.foundation.TimeSpan
    natural_video_height: _winrt.UInt32
    natural_video_width: _winrt.UInt32
    playback_state: MediaPlaybackState
    is_mirroring: _winrt.Boolean
    spherical_video_projection: MediaPlaybackSphericalVideoProjection
    playback_rotation: winsdk.windows.media.mediaproperties.MediaRotation
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackSession: ...
    @typing.overload
    def get_buffered_ranges(self) -> winsdk.windows.foundation.collections.IVectorView[winsdk.windows.media.MediaTimeRange]: ...
    @typing.overload
    def get_output_degradation_policy_state(self) -> MediaPlaybackSessionOutputDegradationPolicyState: ...
    @typing.overload
    def get_played_ranges(self) -> winsdk.windows.foundation.collections.IVectorView[winsdk.windows.media.MediaTimeRange]: ...
    @typing.overload
    def get_seekable_ranges(self) -> winsdk.windows.foundation.collections.IVectorView[winsdk.windows.media.MediaTimeRange]: ...
    @typing.overload
    def is_supported_playback_rate_range(self, rate1: _winrt.Double, rate2: _winrt.Double) -> _winrt.Boolean: ...
    @typing.overload
    def add_buffering_ended(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_buffering_ended(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_buffering_progress_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_buffering_progress_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_buffering_started(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_buffering_started(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_download_progress_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_download_progress_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_natural_duration_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_natural_duration_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_natural_video_size_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_natural_video_size_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_playback_rate_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_playback_rate_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_playback_state_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_playback_state_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_position_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_position_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_seek_completed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_seek_completed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_buffered_ranges_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_buffered_ranges_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_played_ranges_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_played_ranges_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_seekable_ranges_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_seekable_ranges_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_supported_playback_rates_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_supported_playback_rates_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class MediaPlaybackSessionBufferingStartedEventArgs(_winrt.Object):
    is_playback_interruption: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackSessionBufferingStartedEventArgs: ...

class MediaPlaybackSessionOutputDegradationPolicyState(_winrt.Object):
    video_constriction_reason: MediaPlaybackSessionVideoConstrictionReason
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackSessionOutputDegradationPolicyState: ...

class MediaPlaybackSphericalVideoProjection(_winrt.Object):
    view_orientation: winsdk.windows.foundation.numerics.Quaternion
    projection_mode: SphericalVideoProjectionMode
    is_enabled: _winrt.Boolean
    horizontal_field_of_view_in_degrees: _winrt.Double
    frame_format: winsdk.windows.media.mediaproperties.SphericalVideoFrameFormat
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackSphericalVideoProjection: ...

class MediaPlaybackTimedMetadataTrackList(winsdk.windows.foundation.collections.IVectorView[winsdk.windows.media.core.TimedMetadataTrack], winsdk.windows.foundation.collections.IIterable[winsdk.windows.media.core.TimedMetadataTrack], _winrt.Object):
    size: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackTimedMetadataTrackList: ...
    @typing.overload
    def first(self) -> winsdk.windows.foundation.collections.IIterator[winsdk.windows.media.core.TimedMetadataTrack]: ...
    @typing.overload
    def get_at(self, index: _winrt.UInt32) -> winsdk.windows.media.core.TimedMetadataTrack: ...
    @typing.overload
    def get_many(self, start_index: _winrt.UInt32, items_size: _winrt.UInt32) -> typing.Tuple[_winrt.UInt32, typing.List[winsdk.windows.media.core.TimedMetadataTrack]]: ...
    @typing.overload
    def get_presentation_mode(self, index: _winrt.UInt32) -> TimedMetadataTrackPresentationMode: ...
    @typing.overload
    def index_of(self, value: winsdk.windows.media.core.TimedMetadataTrack) -> typing.Tuple[_winrt.Boolean, _winrt.UInt32]: ...
    @typing.overload
    def set_presentation_mode(self, index: _winrt.UInt32, value: TimedMetadataTrackPresentationMode) -> None: ...
    @typing.overload
    def add_presentation_mode_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlaybackTimedMetadataTrackList, TimedMetadataPresentationModeChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_presentation_mode_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class MediaPlaybackVideoTrackList(winsdk.windows.foundation.collections.IVectorView[winsdk.windows.media.core.VideoTrack], winsdk.windows.foundation.collections.IIterable[winsdk.windows.media.core.VideoTrack], winsdk.windows.media.core.ISingleSelectMediaTrackList, _winrt.Object):
    size: _winrt.UInt32
    selected_index: _winrt.Int32
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlaybackVideoTrackList: ...
    @typing.overload
    def first(self) -> winsdk.windows.foundation.collections.IIterator[winsdk.windows.media.core.VideoTrack]: ...
    @typing.overload
    def get_at(self, index: _winrt.UInt32) -> winsdk.windows.media.core.VideoTrack: ...
    @typing.overload
    def get_many(self, start_index: _winrt.UInt32, items_size: _winrt.UInt32) -> typing.Tuple[_winrt.UInt32, typing.List[winsdk.windows.media.core.VideoTrack]]: ...
    @typing.overload
    def index_of(self, value: winsdk.windows.media.core.VideoTrack) -> typing.Tuple[_winrt.Boolean, _winrt.UInt32]: ...
    @typing.overload
    def add_selected_index_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[winsdk.windows.media.core.ISingleSelectMediaTrackList, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_selected_index_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class MediaPlayer(winsdk.windows.foundation.IClosable, _winrt.Object):
    volume: _winrt.Double
    position: winsdk.windows.foundation.TimeSpan
    playback_rate: _winrt.Double
    is_looping_enabled: _winrt.Boolean
    is_muted: _winrt.Boolean
    auto_play: _winrt.Boolean
    current_state: MediaPlayerState
    natural_duration: winsdk.windows.foundation.TimeSpan
    playback_media_markers: PlaybackMediaMarkerSequence
    is_protected: _winrt.Boolean
    buffering_progress: _winrt.Double
    can_pause: _winrt.Boolean
    can_seek: _winrt.Boolean
    audio_device_type: MediaPlayerAudioDeviceType
    audio_category: MediaPlayerAudioCategory
    system_media_transport_controls: winsdk.windows.media.SystemMediaTransportControls
    timeline_controller_position_offset: winsdk.windows.foundation.TimeSpan
    timeline_controller: winsdk.windows.media.MediaTimelineController
    stereoscopic_video_render_mode: StereoscopicVideoRenderMode
    real_time_playback: _winrt.Boolean
    audio_device: winsdk.windows.devices.enumeration.DeviceInformation
    audio_balance: _winrt.Double
    command_manager: MediaPlaybackCommandManager
    break_manager: MediaBreakManager
    playback_session: MediaPlaybackSession
    is_video_frame_server_enabled: _winrt.Boolean
    audio_state_monitor: winsdk.windows.media.audio.AudioStateMonitor
    protection_manager: winsdk.windows.media.protection.MediaProtectionManager
    source: IMediaPlaybackSource
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlayer: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def add_audio_effect(self, activatable_class_id: str, effect_optional: _winrt.Boolean, configuration: winsdk.windows.foundation.collections.IPropertySet) -> None: ...
    @typing.overload
    def add_video_effect(self, activatable_class_id: str, effect_optional: _winrt.Boolean, effect_configuration: winsdk.windows.foundation.collections.IPropertySet) -> None: ...
    @typing.overload
    def close(self) -> None: ...
    @typing.overload
    def copy_frame_to_stereoscopic_video_surfaces(self, destination_left_eye: winsdk.windows.graphics.directx.direct3d11.IDirect3DSurface, destination_right_eye: winsdk.windows.graphics.directx.direct3d11.IDirect3DSurface) -> None: ...
    @typing.overload
    def copy_frame_to_video_surface(self, destination: winsdk.windows.graphics.directx.direct3d11.IDirect3DSurface) -> None: ...
    @typing.overload
    def copy_frame_to_video_surface(self, destination: winsdk.windows.graphics.directx.direct3d11.IDirect3DSurface, target_rectangle: winsdk.windows.foundation.Rect) -> None: ...
    @typing.overload
    def get_as_casting_source(self) -> winsdk.windows.media.casting.CastingSource: ...
    @typing.overload
    def get_surface(self, compositor: winsdk.windows.ui.composition.Compositor) -> MediaPlayerSurface: ...
    @typing.overload
    def pause(self) -> None: ...
    @typing.overload
    def play(self) -> None: ...
    @typing.overload
    def remove_all_effects(self) -> None: ...
    @typing.overload
    def render_subtitles_to_surface(self, destination: winsdk.windows.graphics.directx.direct3d11.IDirect3DSurface) -> _winrt.Boolean: ...
    @typing.overload
    def render_subtitles_to_surface(self, destination: winsdk.windows.graphics.directx.direct3d11.IDirect3DSurface, target_rectangle: winsdk.windows.foundation.Rect) -> _winrt.Boolean: ...
    @typing.overload
    def set_file_source(self, file: winsdk.windows.storage.IStorageFile) -> None: ...
    @typing.overload
    def set_media_source(self, source: winsdk.windows.media.core.IMediaSource) -> None: ...
    @typing.overload
    def set_stream_source(self, stream: winsdk.windows.storage.streams.IRandomAccessStream) -> None: ...
    @typing.overload
    def set_surface_size(self, size: winsdk.windows.foundation.Size) -> None: ...
    @typing.overload
    def set_uri_source(self, value: winsdk.windows.foundation.Uri) -> None: ...
    @typing.overload
    def step_backward_one_frame(self) -> None: ...
    @typing.overload
    def step_forward_one_frame(self) -> None: ...
    @typing.overload
    def add_buffering_ended(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_buffering_ended(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_buffering_started(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_buffering_started(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_current_state_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_current_state_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_media_ended(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_media_ended(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_media_failed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, MediaPlayerFailedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_media_failed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_media_opened(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_media_opened(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_media_player_rate_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, MediaPlayerRateChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_media_player_rate_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_playback_media_marker_reached(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, PlaybackMediaMarkerReachedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_playback_media_marker_reached(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_seek_completed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_seek_completed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_volume_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_volume_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_is_muted_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_is_muted_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_source_changed(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_source_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_video_frame_available(self, value: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_video_frame_available(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_subtitle_frame_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[MediaPlayer, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_subtitle_frame_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class MediaPlayerDataReceivedEventArgs(_winrt.Object):
    data: winsdk.windows.foundation.collections.ValueSet
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlayerDataReceivedEventArgs: ...

class MediaPlayerFailedEventArgs(_winrt.Object):
    error: MediaPlayerError
    error_message: str
    extended_error_code: winsdk.windows.foundation.HResult
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlayerFailedEventArgs: ...

class MediaPlayerRateChangedEventArgs(_winrt.Object):
    new_rate: _winrt.Double
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlayerRateChangedEventArgs: ...

class MediaPlayerSurface(winsdk.windows.foundation.IClosable, _winrt.Object):
    composition_surface: winsdk.windows.ui.composition.ICompositionSurface
    compositor: winsdk.windows.ui.composition.Compositor
    media_player: MediaPlayer
    @staticmethod
    def _from(obj: _winrt.Object) -> MediaPlayerSurface: ...
    @typing.overload
    def close(self) -> None: ...

class PlaybackMediaMarker(_winrt.Object):
    media_marker_type: str
    text: str
    time: winsdk.windows.foundation.TimeSpan
    @staticmethod
    def _from(obj: _winrt.Object) -> PlaybackMediaMarker: ...
    @typing.overload
    def __init__(self, value: winsdk.windows.foundation.TimeSpan) -> None: ...
    @typing.overload
    def __init__(self, value: winsdk.windows.foundation.TimeSpan, media_market_type: str, text: str) -> None: ...

class PlaybackMediaMarkerReachedEventArgs(_winrt.Object):
    playback_media_marker: PlaybackMediaMarker
    @staticmethod
    def _from(obj: _winrt.Object) -> PlaybackMediaMarkerReachedEventArgs: ...

class PlaybackMediaMarkerSequence(winsdk.windows.foundation.collections.IIterable[PlaybackMediaMarker], _winrt.Object):
    size: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> PlaybackMediaMarkerSequence: ...
    @typing.overload
    def clear(self) -> None: ...
    @typing.overload
    def first(self) -> winsdk.windows.foundation.collections.IIterator[PlaybackMediaMarker]: ...
    @typing.overload
    def insert(self, value: PlaybackMediaMarker) -> None: ...

class TimedMetadataPresentationModeChangedEventArgs(_winrt.Object):
    new_presentation_mode: TimedMetadataTrackPresentationMode
    old_presentation_mode: TimedMetadataTrackPresentationMode
    track: winsdk.windows.media.core.TimedMetadataTrack
    @staticmethod
    def _from(obj: _winrt.Object) -> TimedMetadataPresentationModeChangedEventArgs: ...

class IMediaEnginePlaybackSource(_winrt.Object):
    current_item: MediaPlaybackItem
    @staticmethod
    def _from(obj: _winrt.Object) -> IMediaEnginePlaybackSource: ...
    @typing.overload
    def set_playback_source(self, source: IMediaPlaybackSource) -> None: ...

class IMediaPlaybackSource(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> IMediaPlaybackSource: ...

