# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.1.0

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property
from abc import abstractmethod

import winrt._winrt
import winrt.system
import winrt.windows.applicationmodel.appservice as windows_applicationmodel_appservice
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.graphics.directx.direct3d11 as windows_graphics_directx_direct3d11
import winrt.windows.graphics.imaging as windows_graphics_imaging
import winrt.windows.media as windows_media
import winrt.windows.media.capture as windows_media_capture
import winrt.windows.media.capture.frames as windows_media_capture_frames
import winrt.windows.media.devices as windows_media_devices
import winrt.windows.media.devices.core as windows_media_devices_core
import winrt.windows.media.effects as windows_media_effects
import winrt.windows.media.faceanalysis as windows_media_faceanalysis
import winrt.windows.media.mediaproperties as windows_media_mediaproperties
import winrt.windows.media.playback as windows_media_playback
import winrt.windows.media.protection as windows_media_protection
import winrt.windows.media.streaming.adaptive as windows_media_streaming_adaptive
import winrt.windows.networking.backgroundtransfer as windows_networking_backgroundtransfer
import winrt.windows.storage as windows_storage
import winrt.windows.storage.fileproperties as windows_storage_fileproperties
import winrt.windows.storage.streams as windows_storage_streams
import winrt.windows.ui as windows_ui

from winrt.windows.media.core import AudioDecoderDegradation, AudioDecoderDegradationReason, CodecCategory, CodecKind, FaceDetectionMode, MediaDecoderStatus, MediaSourceState, MediaSourceStatus, MediaStreamSourceClosedReason, MediaStreamSourceErrorStatus, MediaTrackKind, MseAppendMode, MseEndOfStreamStatus, MseReadyState, SceneAnalysisRecommendation, TimedMetadataKind, TimedMetadataTrackErrorCode, TimedTextBoutenPosition, TimedTextBoutenType, TimedTextDisplayAlignment, TimedTextFlowDirection, TimedTextFontStyle, TimedTextLineAlignment, TimedTextRubyAlign, TimedTextRubyPosition, TimedTextRubyReserve, TimedTextScrollMode, TimedTextUnit, TimedTextWeight, TimedTextWrapping, TimedTextWritingMode, VideoStabilizationEffectEnabledChangedReason

Self = typing.TypeVar('Self')

@typing.final
class MseTimeRange:
    @_property
    def start(self) -> datetime.timedelta: ...
    @_property
    def end(self) -> datetime.timedelta: ...
    def __new__(cls, start: datetime.timedelta = datetime.timedelta(0), end: datetime.timedelta = datetime.timedelta(0)) -> MseTimeRange: ...
    def __replace__(self, /, **changes: typing.Any) -> MseTimeRange: ...
    def unpack(self) -> typing.Tuple[datetime.timedelta, datetime.timedelta]: ...

@typing.final
class TimedTextDouble:
    @_property
    def value(self) -> winrt.system.Double: ...
    @_property
    def unit(self) -> TimedTextUnit: ...
    def __new__(cls, value: winrt.system.Double = 0, unit: TimedTextUnit = TimedTextUnit(0)) -> TimedTextDouble: ...
    def __replace__(self, /, **changes: typing.Any) -> TimedTextDouble: ...
    def unpack(self) -> typing.Tuple[winrt.system.Double, TimedTextUnit]: ...

@typing.final
class TimedTextPadding:
    @_property
    def before(self) -> winrt.system.Double: ...
    @_property
    def after(self) -> winrt.system.Double: ...
    @_property
    def start(self) -> winrt.system.Double: ...
    @_property
    def end(self) -> winrt.system.Double: ...
    @_property
    def unit(self) -> TimedTextUnit: ...
    def __new__(cls, before: winrt.system.Double = 0, after: winrt.system.Double = 0, start: winrt.system.Double = 0, end: winrt.system.Double = 0, unit: TimedTextUnit = TimedTextUnit(0)) -> TimedTextPadding: ...
    def __replace__(self, /, **changes: typing.Any) -> TimedTextPadding: ...
    def unpack(self) -> typing.Tuple[winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, TimedTextUnit]: ...

@typing.final
class TimedTextPoint:
    @_property
    def x(self) -> winrt.system.Double: ...
    @_property
    def y(self) -> winrt.system.Double: ...
    @_property
    def unit(self) -> TimedTextUnit: ...
    def __new__(cls, x: winrt.system.Double = 0, y: winrt.system.Double = 0, unit: TimedTextUnit = TimedTextUnit(0)) -> TimedTextPoint: ...
    def __replace__(self, /, **changes: typing.Any) -> TimedTextPoint: ...
    def unpack(self) -> typing.Tuple[winrt.system.Double, winrt.system.Double, TimedTextUnit]: ...

@typing.final
class TimedTextSize:
    @_property
    def height(self) -> winrt.system.Double: ...
    @_property
    def width(self) -> winrt.system.Double: ...
    @_property
    def unit(self) -> TimedTextUnit: ...
    def __new__(cls, height: winrt.system.Double = 0, width: winrt.system.Double = 0, unit: TimedTextUnit = TimedTextUnit(0)) -> TimedTextSize: ...
    def __replace__(self, /, **changes: typing.Any) -> TimedTextSize: ...
    def unpack(self) -> typing.Tuple[winrt.system.Double, winrt.system.Double, TimedTextUnit]: ...

@typing.final
class AudioStreamDescriptor(winrt.system.Object, IMediaStreamDescriptor2, IMediaStreamDescriptor):
    def __new__(cls: typing.Type[Self], encoding_properties: windows_media_mediaproperties.AudioEncodingProperties) -> Self: ...
    # Windows.Media.Core.AudioStreamDescriptor Windows.Media.Core.AudioStreamDescriptor::Copy()
    def copy(self) -> AudioStreamDescriptor: ...
    # Windows.Media.MediaProperties.AudioEncodingProperties Windows.Media.Core.AudioStreamDescriptor::get_EncodingProperties()
    @_property
    def encoding_properties(self) -> windows_media_mediaproperties.AudioEncodingProperties: ...
    # Windows.Foundation.IReference`1<System.UInt32> Windows.Media.Core.AudioStreamDescriptor::get_TrailingEncoderPadding()
    @_property
    def trailing_encoder_padding(self) -> typing.Optional[winrt.system.UInt32]: ...
    # System.Void Windows.Media.Core.AudioStreamDescriptor::put_TrailingEncoderPadding(Windows.Foundation.IReference`1<System.UInt32>)
    @trailing_encoder_padding.setter
    def trailing_encoder_padding(self, value: typing.Optional[winrt.system.UInt32]) -> None: ...
    # Windows.Foundation.IReference`1<System.UInt32> Windows.Media.Core.AudioStreamDescriptor::get_LeadingEncoderPadding()
    @_property
    def leading_encoder_padding(self) -> typing.Optional[winrt.system.UInt32]: ...
    # System.Void Windows.Media.Core.AudioStreamDescriptor::put_LeadingEncoderPadding(Windows.Foundation.IReference`1<System.UInt32>)
    @leading_encoder_padding.setter
    def leading_encoder_padding(self, value: typing.Optional[winrt.system.UInt32]) -> None: ...
    # System.String Windows.Media.Core.AudioStreamDescriptor::get_Name()
    @_property
    def name(self) -> str: ...
    # System.Void Windows.Media.Core.AudioStreamDescriptor::put_Name(System.String)
    @name.setter
    def name(self, value: str) -> None: ...
    # System.String Windows.Media.Core.AudioStreamDescriptor::get_Language()
    @_property
    def language(self) -> str: ...
    # System.Void Windows.Media.Core.AudioStreamDescriptor::put_Language(System.String)
    @language.setter
    def language(self, value: str) -> None: ...
    # System.Boolean Windows.Media.Core.AudioStreamDescriptor::get_IsSelected()
    @_property
    def is_selected(self) -> bool: ...
    # System.String Windows.Media.Core.AudioStreamDescriptor::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.Media.Core.AudioStreamDescriptor::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...

@typing.final
class AudioTrack(winrt.system.Object, IMediaTrack):
    # Windows.Media.MediaProperties.AudioEncodingProperties Windows.Media.Core.AudioTrack::GetEncodingProperties()
    def get_encoding_properties(self) -> windows_media_mediaproperties.AudioEncodingProperties: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.AudioTrack::add_OpenFailed(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.AudioTrack,Windows.Media.Core.AudioTrackOpenFailedEventArgs>)
    def add_open_failed(self, handler: windows_foundation.TypedEventHandler[AudioTrack, AudioTrackOpenFailedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.AudioTrack::remove_OpenFailed(Windows.Foundation.EventRegistrationToken)
    def remove_open_failed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.String Windows.Media.Core.AudioTrack::get_Name()
    @_property
    def name(self) -> str: ...
    # Windows.Media.Playback.MediaPlaybackItem Windows.Media.Core.AudioTrack::get_PlaybackItem()
    @_property
    def playback_item(self) -> windows_media_playback.MediaPlaybackItem: ...
    # Windows.Media.Core.AudioTrackSupportInfo Windows.Media.Core.AudioTrack::get_SupportInfo()
    @_property
    def support_info(self) -> AudioTrackSupportInfo: ...
    # System.String Windows.Media.Core.AudioTrack::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.Media.Core.AudioTrack::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...
    # System.String Windows.Media.Core.AudioTrack::get_Id()
    @_property
    def id(self) -> str: ...
    # System.String Windows.Media.Core.AudioTrack::get_Language()
    @_property
    def language(self) -> str: ...
    # Windows.Media.Core.MediaTrackKind Windows.Media.Core.AudioTrack::get_TrackKind()
    @_property
    def track_kind(self) -> MediaTrackKind: ...

@typing.final
class AudioTrackOpenFailedEventArgs(winrt.system.Object):
    # Windows.Foundation.HResult Windows.Media.Core.AudioTrackOpenFailedEventArgs::get_ExtendedError()
    @_property
    def extended_error(self) -> windows_foundation.HResult: ...

@typing.final
class AudioTrackSupportInfo(winrt.system.Object):
    # Windows.Media.Core.MediaDecoderStatus Windows.Media.Core.AudioTrackSupportInfo::get_DecoderStatus()
    @_property
    def decoder_status(self) -> MediaDecoderStatus: ...
    # Windows.Media.Core.AudioDecoderDegradation Windows.Media.Core.AudioTrackSupportInfo::get_Degradation()
    @_property
    def degradation(self) -> AudioDecoderDegradation: ...
    # Windows.Media.Core.AudioDecoderDegradationReason Windows.Media.Core.AudioTrackSupportInfo::get_DegradationReason()
    @_property
    def degradation_reason(self) -> AudioDecoderDegradationReason: ...
    # Windows.Media.Core.MediaSourceStatus Windows.Media.Core.AudioTrackSupportInfo::get_MediaSourceStatus()
    @_property
    def media_source_status(self) -> MediaSourceStatus: ...

@typing.final
class ChapterCue(winrt.system.Object, IMediaCue):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Media.Core.ChapterCue::get_Title()
    @_property
    def title(self) -> str: ...
    # System.Void Windows.Media.Core.ChapterCue::put_Title(System.String)
    @title.setter
    def title(self, value: str) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.ChapterCue::get_StartTime()
    @_property
    def start_time(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.ChapterCue::put_StartTime(Windows.Foundation.TimeSpan)
    @start_time.setter
    def start_time(self, value: datetime.timedelta) -> None: ...
    # System.String Windows.Media.Core.ChapterCue::get_Id()
    @_property
    def id(self) -> str: ...
    # System.Void Windows.Media.Core.ChapterCue::put_Id(System.String)
    @id.setter
    def id(self, value: str) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.ChapterCue::get_Duration()
    @_property
    def duration(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.ChapterCue::put_Duration(Windows.Foundation.TimeSpan)
    @duration.setter
    def duration(self, value: datetime.timedelta) -> None: ...

@typing.final
class CodecInfo(winrt.system.Object):
    # Windows.Media.Core.CodecCategory Windows.Media.Core.CodecInfo::get_Category()
    @_property
    def category(self) -> CodecCategory: ...
    # System.String Windows.Media.Core.CodecInfo::get_DisplayName()
    @_property
    def display_name(self) -> str: ...
    # System.Boolean Windows.Media.Core.CodecInfo::get_IsTrusted()
    @_property
    def is_trusted(self) -> bool: ...
    # Windows.Media.Core.CodecKind Windows.Media.Core.CodecInfo::get_Kind()
    @_property
    def kind(self) -> CodecKind: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Media.Core.CodecInfo::get_Subtypes()
    @_property
    def subtypes(self) -> typing.Sequence[str]: ...

@typing.final
class CodecQuery(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Media.Core.CodecInfo>> Windows.Media.Core.CodecQuery::FindAllAsync(Windows.Media.Core.CodecKind,Windows.Media.Core.CodecCategory,System.String)
    def find_all_async(self, kind: CodecKind, category: CodecCategory, sub_type: str, /) -> windows_foundation.IAsyncOperation[typing.Sequence[CodecInfo]]: ...

@typing.final
class CodecSubtypes_Static(winrt._winrt.IInspectable_Static):
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatAac()
    @_property
    def audio_format_aac(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatAdts()
    @_property
    def audio_format_adts(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatAlac()
    @_property
    def audio_format_alac(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatAmrNB()
    @_property
    def audio_format_amr_n_b(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatAmrWB()
    @_property
    def audio_format_amr_w_b(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatAmrWP()
    @_property
    def audio_format_amr_w_p(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatDolbyAC3()
    @_property
    def audio_format_dolby_a_c3(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatDolbyAC3Spdif()
    @_property
    def audio_format_dolby_a_c3_spdif(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatDolbyDDPlus()
    @_property
    def audio_format_dolby_d_d_plus(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatDrm()
    @_property
    def audio_format_drm(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatDts()
    @_property
    def audio_format_dts(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatFlac()
    @_property
    def audio_format_flac(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatFloat()
    @_property
    def audio_format_float(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatMP3()
    @_property
    def audio_format_m_p3(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatMPeg()
    @_property
    def audio_format_m_peg(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatMsp1()
    @_property
    def audio_format_msp1(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatOpus()
    @_property
    def audio_format_opus(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatPcm()
    @_property
    def audio_format_pcm(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatWMAudioLossless()
    @_property
    def audio_format_w_m_audio_lossless(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatWMAudioV8()
    @_property
    def audio_format_w_m_audio_v8(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatWMAudioV9()
    @_property
    def audio_format_w_m_audio_v9(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_AudioFormatWmaSpdif()
    @_property
    def audio_format_wma_spdif(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormat420O()
    @_property
    def video_format420_o(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatDV25()
    @_property
    def video_format_d_v25(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatDV50()
    @_property
    def video_format_d_v50(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatDvc()
    @_property
    def video_format_dvc(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatDvh1()
    @_property
    def video_format_dvh1(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatDvhD()
    @_property
    def video_format_dvh_d(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatDvsd()
    @_property
    def video_format_dvsd(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatDvsl()
    @_property
    def video_format_dvsl(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatH263()
    @_property
    def video_format_h263(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatH264()
    @_property
    def video_format_h264(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatH264ES()
    @_property
    def video_format_h264_e_s(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatH265()
    @_property
    def video_format_h265(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatHevc()
    @_property
    def video_format_hevc(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatHevcES()
    @_property
    def video_format_hevc_e_s(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatM4S2()
    @_property
    def video_format_m4_s2(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatMP43()
    @_property
    def video_format_m_p43(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatMP4S()
    @_property
    def video_format_m_p4_s(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatMP4V()
    @_property
    def video_format_m_p4_v(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatMjpg()
    @_property
    def video_format_mjpg(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatMpeg2()
    @_property
    def video_format_mpeg2(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatMpg1()
    @_property
    def video_format_mpg1(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatMss1()
    @_property
    def video_format_mss1(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatMss2()
    @_property
    def video_format_mss2(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatVP80()
    @_property
    def video_format_v_p80(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatVP90()
    @_property
    def video_format_v_p90(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatWmv1()
    @_property
    def video_format_wmv1(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatWmv2()
    @_property
    def video_format_wmv2(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatWmv3()
    @_property
    def video_format_wmv3(cls) -> str: ...
    # System.String Windows.Media.Core.CodecSubtypes::get_VideoFormatWvc1()
    @_property
    def video_format_wvc1(cls) -> str: ...

@typing.final
class CodecSubtypes(winrt.system.Object, metaclass=CodecSubtypes_Static):
    pass

@typing.final
class DataCue(winrt.system.Object, IMediaCue):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Storage.Streams.IBuffer Windows.Media.Core.DataCue::get_Data()
    @_property
    def data(self) -> windows_storage_streams.IBuffer: ...
    # System.Void Windows.Media.Core.DataCue::put_Data(Windows.Storage.Streams.IBuffer)
    @data.setter
    def data(self, value: windows_storage_streams.IBuffer) -> None: ...
    # Windows.Foundation.Collections.PropertySet Windows.Media.Core.DataCue::get_Properties()
    @_property
    def properties(self) -> windows_foundation_collections.PropertySet: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.DataCue::get_StartTime()
    @_property
    def start_time(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.DataCue::put_StartTime(Windows.Foundation.TimeSpan)
    @start_time.setter
    def start_time(self, value: datetime.timedelta) -> None: ...
    # System.String Windows.Media.Core.DataCue::get_Id()
    @_property
    def id(self) -> str: ...
    # System.Void Windows.Media.Core.DataCue::put_Id(System.String)
    @id.setter
    def id(self, value: str) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.DataCue::get_Duration()
    @_property
    def duration(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.DataCue::put_Duration(Windows.Foundation.TimeSpan)
    @duration.setter
    def duration(self, value: datetime.timedelta) -> None: ...

@typing.final
class FaceDetectedEventArgs(winrt.system.Object):
    # Windows.Media.Core.FaceDetectionEffectFrame Windows.Media.Core.FaceDetectedEventArgs::get_ResultFrame()
    @_property
    def result_frame(self) -> FaceDetectionEffectFrame: ...

@typing.final
class FaceDetectionEffect(winrt.system.Object, windows_media.IMediaExtension):
    # System.Void Windows.Media.Core.FaceDetectionEffect::SetProperties(Windows.Foundation.Collections.IPropertySet)
    def set_properties(self, configuration: windows_foundation_collections.IPropertySet, /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.FaceDetectionEffect::add_FaceDetected(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.FaceDetectionEffect,Windows.Media.Core.FaceDetectedEventArgs>)
    def add_face_detected(self, handler: windows_foundation.TypedEventHandler[FaceDetectionEffect, FaceDetectedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.FaceDetectionEffect::remove_FaceDetected(Windows.Foundation.EventRegistrationToken)
    def remove_face_detected(self, cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.Boolean Windows.Media.Core.FaceDetectionEffect::get_Enabled()
    @_property
    def enabled(self) -> bool: ...
    # System.Void Windows.Media.Core.FaceDetectionEffect::put_Enabled(System.Boolean)
    @enabled.setter
    def enabled(self, value: bool) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.FaceDetectionEffect::get_DesiredDetectionInterval()
    @_property
    def desired_detection_interval(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.FaceDetectionEffect::put_DesiredDetectionInterval(Windows.Foundation.TimeSpan)
    @desired_detection_interval.setter
    def desired_detection_interval(self, value: datetime.timedelta) -> None: ...

@typing.final
class FaceDetectionEffectDefinition(winrt.system.Object, windows_media_effects.IVideoEffectDefinition):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Boolean Windows.Media.Core.FaceDetectionEffectDefinition::get_SynchronousDetectionEnabled()
    @_property
    def synchronous_detection_enabled(self) -> bool: ...
    # System.Void Windows.Media.Core.FaceDetectionEffectDefinition::put_SynchronousDetectionEnabled(System.Boolean)
    @synchronous_detection_enabled.setter
    def synchronous_detection_enabled(self, value: bool) -> None: ...
    # Windows.Media.Core.FaceDetectionMode Windows.Media.Core.FaceDetectionEffectDefinition::get_DetectionMode()
    @_property
    def detection_mode(self) -> FaceDetectionMode: ...
    # System.Void Windows.Media.Core.FaceDetectionEffectDefinition::put_DetectionMode(Windows.Media.Core.FaceDetectionMode)
    @detection_mode.setter
    def detection_mode(self, value: FaceDetectionMode) -> None: ...
    # System.String Windows.Media.Core.FaceDetectionEffectDefinition::get_ActivatableClassId()
    @_property
    def activatable_class_id(self) -> str: ...
    # Windows.Foundation.Collections.IPropertySet Windows.Media.Core.FaceDetectionEffectDefinition::get_Properties()
    @_property
    def properties(self) -> windows_foundation_collections.IPropertySet: ...

@typing.final
class FaceDetectionEffectFrame(winrt.system.Object, windows_media.IMediaFrame, windows_foundation.IClosable):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Windows.Media.Core.FaceDetectionEffectFrame::Close()
    def close(self) -> None: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.FaceAnalysis.DetectedFace> Windows.Media.Core.FaceDetectionEffectFrame::get_DetectedFaces()
    @_property
    def detected_faces(self) -> typing.Sequence[windows_media_faceanalysis.DetectedFace]: ...
    # Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan> Windows.Media.Core.FaceDetectionEffectFrame::get_SystemRelativeTime()
    @_property
    def system_relative_time(self) -> typing.Optional[datetime.timedelta]: ...
    # System.Void Windows.Media.Core.FaceDetectionEffectFrame::put_SystemRelativeTime(Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan>)
    @system_relative_time.setter
    def system_relative_time(self, value: typing.Optional[datetime.timedelta]) -> None: ...
    # Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan> Windows.Media.Core.FaceDetectionEffectFrame::get_RelativeTime()
    @_property
    def relative_time(self) -> typing.Optional[datetime.timedelta]: ...
    # System.Void Windows.Media.Core.FaceDetectionEffectFrame::put_RelativeTime(Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan>)
    @relative_time.setter
    def relative_time(self, value: typing.Optional[datetime.timedelta]) -> None: ...
    # System.Boolean Windows.Media.Core.FaceDetectionEffectFrame::get_IsDiscontinuous()
    @_property
    def is_discontinuous(self) -> bool: ...
    # System.Void Windows.Media.Core.FaceDetectionEffectFrame::put_IsDiscontinuous(System.Boolean)
    @is_discontinuous.setter
    def is_discontinuous(self, value: bool) -> None: ...
    # Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan> Windows.Media.Core.FaceDetectionEffectFrame::get_Duration()
    @_property
    def duration(self) -> typing.Optional[datetime.timedelta]: ...
    # System.Void Windows.Media.Core.FaceDetectionEffectFrame::put_Duration(Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan>)
    @duration.setter
    def duration(self, value: typing.Optional[datetime.timedelta]) -> None: ...
    # Windows.Foundation.Collections.IPropertySet Windows.Media.Core.FaceDetectionEffectFrame::get_ExtendedProperties()
    @_property
    def extended_properties(self) -> windows_foundation_collections.IPropertySet: ...
    # System.Boolean Windows.Media.Core.FaceDetectionEffectFrame::get_IsReadOnly()
    @_property
    def is_read_only(self) -> bool: ...
    # System.String Windows.Media.Core.FaceDetectionEffectFrame::get_Type()
    @_property
    def type(self) -> str: ...

@typing.final
class HighDynamicRangeControl(winrt.system.Object):
    # System.Boolean Windows.Media.Core.HighDynamicRangeControl::get_Enabled()
    @_property
    def enabled(self) -> bool: ...
    # System.Void Windows.Media.Core.HighDynamicRangeControl::put_Enabled(System.Boolean)
    @enabled.setter
    def enabled(self, value: bool) -> None: ...

@typing.final
class HighDynamicRangeOutput(winrt.system.Object):
    # System.Double Windows.Media.Core.HighDynamicRangeOutput::get_Certainty()
    @_property
    def certainty(self) -> winrt.system.Double: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.Core.FrameController> Windows.Media.Core.HighDynamicRangeOutput::get_FrameControllers()
    @_property
    def frame_controllers(self) -> typing.Sequence[windows_media_devices_core.FrameController]: ...

@typing.final
class ImageCue(winrt.system.Object, IMediaCue):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Graphics.Imaging.SoftwareBitmap Windows.Media.Core.ImageCue::get_SoftwareBitmap()
    @_property
    def software_bitmap(self) -> windows_graphics_imaging.SoftwareBitmap: ...
    # System.Void Windows.Media.Core.ImageCue::put_SoftwareBitmap(Windows.Graphics.Imaging.SoftwareBitmap)
    @software_bitmap.setter
    def software_bitmap(self, value: windows_graphics_imaging.SoftwareBitmap) -> None: ...
    # Windows.Media.Core.TimedTextPoint Windows.Media.Core.ImageCue::get_Position()
    @_property
    def position(self) -> TimedTextPoint: ...
    # System.Void Windows.Media.Core.ImageCue::put_Position(Windows.Media.Core.TimedTextPoint)
    @position.setter
    def position(self, value: typing.Union[TimedTextPoint, typing.Tuple[winrt.system.Double, winrt.system.Double, TimedTextUnit]]) -> None: ...
    # Windows.Media.Core.TimedTextSize Windows.Media.Core.ImageCue::get_Extent()
    @_property
    def extent(self) -> TimedTextSize: ...
    # System.Void Windows.Media.Core.ImageCue::put_Extent(Windows.Media.Core.TimedTextSize)
    @extent.setter
    def extent(self, value: typing.Union[TimedTextSize, typing.Tuple[winrt.system.Double, winrt.system.Double, TimedTextUnit]]) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.ImageCue::get_StartTime()
    @_property
    def start_time(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.ImageCue::put_StartTime(Windows.Foundation.TimeSpan)
    @start_time.setter
    def start_time(self, value: datetime.timedelta) -> None: ...
    # System.String Windows.Media.Core.ImageCue::get_Id()
    @_property
    def id(self) -> str: ...
    # System.Void Windows.Media.Core.ImageCue::put_Id(System.String)
    @id.setter
    def id(self, value: str) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.ImageCue::get_Duration()
    @_property
    def duration(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.ImageCue::put_Duration(Windows.Foundation.TimeSpan)
    @duration.setter
    def duration(self, value: datetime.timedelta) -> None: ...

@typing.final
class InitializeMediaStreamSourceRequestedEventArgs(winrt.system.Object):
    # Windows.Foundation.Deferral Windows.Media.Core.InitializeMediaStreamSourceRequestedEventArgs::GetDeferral()
    def get_deferral(self) -> windows_foundation.Deferral: ...
    # Windows.Storage.Streams.IRandomAccessStream Windows.Media.Core.InitializeMediaStreamSourceRequestedEventArgs::get_RandomAccessStream()
    @_property
    def random_access_stream(self) -> windows_storage_streams.IRandomAccessStream: ...
    # Windows.Media.Core.MediaStreamSource Windows.Media.Core.InitializeMediaStreamSourceRequestedEventArgs::get_Source()
    @_property
    def source(self) -> MediaStreamSource: ...

@typing.final
class LowLightFusion_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperationWithProgress`2<Windows.Media.Core.LowLightFusionResult,System.Double> Windows.Media.Core.LowLightFusion::FuseAsync(Windows.Foundation.Collections.IIterable`1<Windows.Graphics.Imaging.SoftwareBitmap>)
    def fuse_async(cls, frame_set: typing.Iterable[windows_graphics_imaging.SoftwareBitmap], /) -> windows_foundation.IAsyncOperationWithProgress[LowLightFusionResult, winrt.system.Double]: ...
    # System.Int32 Windows.Media.Core.LowLightFusion::get_MaxSupportedFrameCount()
    @_property
    def max_supported_frame_count(cls) -> winrt.system.Int32: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Graphics.Imaging.BitmapPixelFormat> Windows.Media.Core.LowLightFusion::get_SupportedBitmapPixelFormats()
    @_property
    def supported_bitmap_pixel_formats(cls) -> typing.Sequence[windows_graphics_imaging.BitmapPixelFormat]: ...

@typing.final
class LowLightFusion(winrt.system.Object, metaclass=LowLightFusion_Static):
    pass

@typing.final
class LowLightFusionResult(winrt.system.Object, windows_foundation.IClosable):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Windows.Media.Core.LowLightFusionResult::Close()
    def close(self) -> None: ...
    # Windows.Graphics.Imaging.SoftwareBitmap Windows.Media.Core.LowLightFusionResult::get_Frame()
    @_property
    def frame(self) -> windows_graphics_imaging.SoftwareBitmap: ...

@typing.final
class MediaBinder(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MediaBinder::add_Binding(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MediaBinder,Windows.Media.Core.MediaBindingEventArgs>)
    def add_binding(self, handler: windows_foundation.TypedEventHandler[MediaBinder, MediaBindingEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MediaBinder::remove_Binding(Windows.Foundation.EventRegistrationToken)
    def remove_binding(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.String Windows.Media.Core.MediaBinder::get_Token()
    @_property
    def token(self) -> str: ...
    # System.Void Windows.Media.Core.MediaBinder::put_Token(System.String)
    @token.setter
    def token(self, value: str) -> None: ...
    # Windows.Media.Core.MediaSource Windows.Media.Core.MediaBinder::get_Source()
    @_property
    def source(self) -> MediaSource: ...

@typing.final
class MediaBindingEventArgs(winrt.system.Object):
    # Windows.Foundation.Deferral Windows.Media.Core.MediaBindingEventArgs::GetDeferral()
    def get_deferral(self) -> windows_foundation.Deferral: ...
    # System.Void Windows.Media.Core.MediaBindingEventArgs::SetAdaptiveMediaSource(Windows.Media.Streaming.Adaptive.AdaptiveMediaSource)
    def set_adaptive_media_source(self, media_source: windows_media_streaming_adaptive.AdaptiveMediaSource, /) -> None: ...
    # System.Void Windows.Media.Core.MediaBindingEventArgs::SetDownloadOperation(Windows.Networking.BackgroundTransfer.DownloadOperation)
    def set_download_operation(self, download_operation: windows_networking_backgroundtransfer.DownloadOperation, /) -> None: ...
    # System.Void Windows.Media.Core.MediaBindingEventArgs::SetStorageFile(Windows.Storage.IStorageFile)
    def set_storage_file(self, file: windows_storage.IStorageFile, /) -> None: ...
    # System.Void Windows.Media.Core.MediaBindingEventArgs::SetStream(Windows.Storage.Streams.IRandomAccessStream,System.String)
    def set_stream(self, stream: windows_storage_streams.IRandomAccessStream, content_type: str, /) -> None: ...
    # System.Void Windows.Media.Core.MediaBindingEventArgs::SetStreamReference(Windows.Storage.Streams.IRandomAccessStreamReference,System.String)
    def set_stream_reference(self, stream: windows_storage_streams.IRandomAccessStreamReference, content_type: str, /) -> None: ...
    # System.Void Windows.Media.Core.MediaBindingEventArgs::SetUri(Windows.Foundation.Uri)
    def set_uri(self, uri: windows_foundation.Uri, /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MediaBindingEventArgs::add_Canceled(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MediaBindingEventArgs,System.Object>)
    def add_canceled(self, handler: windows_foundation.TypedEventHandler[MediaBindingEventArgs, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MediaBindingEventArgs::remove_Canceled(Windows.Foundation.EventRegistrationToken)
    def remove_canceled(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Media.Core.MediaBinder Windows.Media.Core.MediaBindingEventArgs::get_MediaBinder()
    @_property
    def media_binder(self) -> MediaBinder: ...

@typing.final
class MediaCueEventArgs(winrt.system.Object):
    # Windows.Media.Core.IMediaCue Windows.Media.Core.MediaCueEventArgs::get_Cue()
    @_property
    def cue(self) -> IMediaCue: ...

@typing.final
class MediaSource_Static(winrt._winrt.IInspectable_Static):
    # Windows.Media.Core.MediaSource Windows.Media.Core.MediaSource::CreateFromAdaptiveMediaSource(Windows.Media.Streaming.Adaptive.AdaptiveMediaSource)
    def create_from_adaptive_media_source(cls, media_source: windows_media_streaming_adaptive.AdaptiveMediaSource, /) -> MediaSource: ...
    # Windows.Media.Core.MediaSource Windows.Media.Core.MediaSource::CreateFromDownloadOperation(Windows.Networking.BackgroundTransfer.DownloadOperation)
    def create_from_download_operation(cls, download_operation: windows_networking_backgroundtransfer.DownloadOperation, /) -> MediaSource: ...
    # Windows.Media.Core.MediaSource Windows.Media.Core.MediaSource::CreateFromIMediaSource(Windows.Media.Core.IMediaSource)
    def create_from_imedia_source(cls, media_source: IMediaSource, /) -> MediaSource: ...
    # Windows.Media.Core.MediaSource Windows.Media.Core.MediaSource::CreateFromMediaBinder(Windows.Media.Core.MediaBinder)
    def create_from_media_binder(cls, binder: MediaBinder, /) -> MediaSource: ...
    # Windows.Media.Core.MediaSource Windows.Media.Core.MediaSource::CreateFromMediaFrameSource(Windows.Media.Capture.Frames.MediaFrameSource)
    def create_from_media_frame_source(cls, frame_source: windows_media_capture_frames.MediaFrameSource, /) -> MediaSource: ...
    # Windows.Media.Core.MediaSource Windows.Media.Core.MediaSource::CreateFromMediaStreamSource(Windows.Media.Core.MediaStreamSource)
    def create_from_media_stream_source(cls, media_source: MediaStreamSource, /) -> MediaSource: ...
    # Windows.Media.Core.MediaSource Windows.Media.Core.MediaSource::CreateFromMseStreamSource(Windows.Media.Core.MseStreamSource)
    def create_from_mse_stream_source(cls, media_source: MseStreamSource, /) -> MediaSource: ...
    # Windows.Media.Core.MediaSource Windows.Media.Core.MediaSource::CreateFromStorageFile(Windows.Storage.IStorageFile)
    def create_from_storage_file(cls, file: windows_storage.IStorageFile, /) -> MediaSource: ...
    # Windows.Media.Core.MediaSource Windows.Media.Core.MediaSource::CreateFromStream(Windows.Storage.Streams.IRandomAccessStream,System.String)
    def create_from_stream(cls, stream: windows_storage_streams.IRandomAccessStream, content_type: str, /) -> MediaSource: ...
    # Windows.Media.Core.MediaSource Windows.Media.Core.MediaSource::CreateFromStreamReference(Windows.Storage.Streams.IRandomAccessStreamReference,System.String)
    def create_from_stream_reference(cls, stream: windows_storage_streams.IRandomAccessStreamReference, content_type: str, /) -> MediaSource: ...
    # Windows.Media.Core.MediaSource Windows.Media.Core.MediaSource::CreateFromUri(Windows.Foundation.Uri)
    def create_from_uri(cls, uri: windows_foundation.Uri, /) -> MediaSource: ...

@typing.final
class MediaSource(winrt.system.Object, windows_foundation.IClosable, windows_media_playback.IMediaPlaybackSource, metaclass=MediaSource_Static):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Windows.Media.Core.MediaSource::Close()
    def close(self) -> None: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Core.MediaSource::OpenAsync()
    def open_async(self) -> windows_foundation.IAsyncAction: ...
    # System.Void Windows.Media.Core.MediaSource::Reset()
    def reset(self) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MediaSource::add_OpenOperationCompleted(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MediaSource,Windows.Media.Core.MediaSourceOpenOperationCompletedEventArgs>)
    def add_open_operation_completed(self, handler: windows_foundation.TypedEventHandler[MediaSource, MediaSourceOpenOperationCompletedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MediaSource::remove_OpenOperationCompleted(Windows.Foundation.EventRegistrationToken)
    def remove_open_operation_completed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MediaSource::add_StateChanged(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MediaSource,Windows.Media.Core.MediaSourceStateChangedEventArgs>)
    def add_state_changed(self, handler: windows_foundation.TypedEventHandler[MediaSource, MediaSourceStateChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MediaSource::remove_StateChanged(Windows.Foundation.EventRegistrationToken)
    def remove_state_changed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.Collections.ValueSet Windows.Media.Core.MediaSource::get_CustomProperties()
    @_property
    def custom_properties(self) -> windows_foundation_collections.ValueSet: ...
    # Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan> Windows.Media.Core.MediaSource::get_Duration()
    @_property
    def duration(self) -> typing.Optional[datetime.timedelta]: ...
    # Windows.Foundation.Collections.IObservableVector`1<Windows.Media.Core.TimedMetadataTrack> Windows.Media.Core.MediaSource::get_ExternalTimedMetadataTracks()
    @_property
    def external_timed_metadata_tracks(self) -> windows_foundation_collections.IObservableVector[TimedMetadataTrack]: ...
    # Windows.Foundation.Collections.IObservableVector`1<Windows.Media.Core.TimedTextSource> Windows.Media.Core.MediaSource::get_ExternalTimedTextSources()
    @_property
    def external_timed_text_sources(self) -> windows_foundation_collections.IObservableVector[TimedTextSource]: ...
    # System.Boolean Windows.Media.Core.MediaSource::get_IsOpen()
    @_property
    def is_open(self) -> bool: ...
    # Windows.Media.Core.MediaSourceState Windows.Media.Core.MediaSource::get_State()
    @_property
    def state(self) -> MediaSourceState: ...
    # Windows.Media.Streaming.Adaptive.AdaptiveMediaSource Windows.Media.Core.MediaSource::get_AdaptiveMediaSource()
    @_property
    def adaptive_media_source(self) -> windows_media_streaming_adaptive.AdaptiveMediaSource: ...
    # Windows.Media.Core.MediaStreamSource Windows.Media.Core.MediaSource::get_MediaStreamSource()
    @_property
    def media_stream_source(self) -> MediaStreamSource: ...
    # Windows.Media.Core.MseStreamSource Windows.Media.Core.MediaSource::get_MseStreamSource()
    @_property
    def mse_stream_source(self) -> MseStreamSource: ...
    # Windows.Foundation.Uri Windows.Media.Core.MediaSource::get_Uri()
    @_property
    def uri(self) -> windows_foundation.Uri: ...
    # Windows.Networking.BackgroundTransfer.DownloadOperation Windows.Media.Core.MediaSource::get_DownloadOperation()
    @_property
    def download_operation(self) -> windows_networking_backgroundtransfer.DownloadOperation: ...

@typing.final
class MediaSourceAppServiceConnection(winrt.system.Object):
    def __new__(cls: typing.Type[Self], app_service_connection: windows_applicationmodel_appservice.AppServiceConnection) -> Self: ...
    # System.Void Windows.Media.Core.MediaSourceAppServiceConnection::Start()
    def start(self) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MediaSourceAppServiceConnection::add_InitializeMediaStreamSourceRequested(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MediaSourceAppServiceConnection,Windows.Media.Core.InitializeMediaStreamSourceRequestedEventArgs>)
    def add_initialize_media_stream_source_requested(self, handler: windows_foundation.TypedEventHandler[MediaSourceAppServiceConnection, InitializeMediaStreamSourceRequestedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MediaSourceAppServiceConnection::remove_InitializeMediaStreamSourceRequested(Windows.Foundation.EventRegistrationToken)
    def remove_initialize_media_stream_source_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

@typing.final
class MediaSourceError(winrt.system.Object):
    # Windows.Foundation.HResult Windows.Media.Core.MediaSourceError::get_ExtendedError()
    @_property
    def extended_error(self) -> windows_foundation.HResult: ...

@typing.final
class MediaSourceOpenOperationCompletedEventArgs(winrt.system.Object):
    # Windows.Media.Core.MediaSourceError Windows.Media.Core.MediaSourceOpenOperationCompletedEventArgs::get_Error()
    @_property
    def error(self) -> MediaSourceError: ...

@typing.final
class MediaSourceStateChangedEventArgs(winrt.system.Object):
    # Windows.Media.Core.MediaSourceState Windows.Media.Core.MediaSourceStateChangedEventArgs::get_NewState()
    @_property
    def new_state(self) -> MediaSourceState: ...
    # Windows.Media.Core.MediaSourceState Windows.Media.Core.MediaSourceStateChangedEventArgs::get_OldState()
    @_property
    def old_state(self) -> MediaSourceState: ...

@typing.final
class MediaStreamSample_Static(winrt._winrt.IInspectable_Static):
    # Windows.Media.Core.MediaStreamSample Windows.Media.Core.MediaStreamSample::CreateFromBuffer(Windows.Storage.Streams.IBuffer,Windows.Foundation.TimeSpan)
    def create_from_buffer(cls, buffer: windows_storage_streams.IBuffer, timestamp: datetime.timedelta, /) -> MediaStreamSample: ...
    # Windows.Media.Core.MediaStreamSample Windows.Media.Core.MediaStreamSample::CreateFromDirect3D11Surface(Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface,Windows.Foundation.TimeSpan)
    def create_from_direct3d11_surface(cls, surface: windows_graphics_directx_direct3d11.IDirect3DSurface, timestamp: datetime.timedelta, /) -> MediaStreamSample: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Media.Core.MediaStreamSample> Windows.Media.Core.MediaStreamSample::CreateFromStreamAsync(Windows.Storage.Streams.IInputStream,System.UInt32,Windows.Foundation.TimeSpan)
    def create_from_stream_async(cls, stream: windows_storage_streams.IInputStream, count: winrt.system.UInt32, timestamp: datetime.timedelta, /) -> windows_foundation.IAsyncOperation[MediaStreamSample]: ...

@typing.final
class MediaStreamSample(winrt.system.Object, metaclass=MediaStreamSample_Static):
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MediaStreamSample::add_Processed(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MediaStreamSample,System.Object>)
    def add_processed(self, handler: windows_foundation.TypedEventHandler[MediaStreamSample, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MediaStreamSample::remove_Processed(Windows.Foundation.EventRegistrationToken)
    def remove_processed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.Boolean Windows.Media.Core.MediaStreamSample::get_KeyFrame()
    @_property
    def key_frame(self) -> bool: ...
    # System.Void Windows.Media.Core.MediaStreamSample::put_KeyFrame(System.Boolean)
    @key_frame.setter
    def key_frame(self, value: bool) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.MediaStreamSample::get_Duration()
    @_property
    def duration(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.MediaStreamSample::put_Duration(Windows.Foundation.TimeSpan)
    @duration.setter
    def duration(self, value: datetime.timedelta) -> None: ...
    # System.Boolean Windows.Media.Core.MediaStreamSample::get_Discontinuous()
    @_property
    def discontinuous(self) -> bool: ...
    # System.Void Windows.Media.Core.MediaStreamSample::put_Discontinuous(System.Boolean)
    @discontinuous.setter
    def discontinuous(self, value: bool) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.MediaStreamSample::get_DecodeTimestamp()
    @_property
    def decode_timestamp(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.MediaStreamSample::put_DecodeTimestamp(Windows.Foundation.TimeSpan)
    @decode_timestamp.setter
    def decode_timestamp(self, value: datetime.timedelta) -> None: ...
    # Windows.Storage.Streams.Buffer Windows.Media.Core.MediaStreamSample::get_Buffer()
    @_property
    def buffer(self) -> windows_storage_streams.Buffer: ...
    # Windows.Media.Core.MediaStreamSamplePropertySet Windows.Media.Core.MediaStreamSample::get_ExtendedProperties()
    @_property
    def extended_properties(self) -> MediaStreamSamplePropertySet: ...
    # Windows.Media.Core.MediaStreamSampleProtectionProperties Windows.Media.Core.MediaStreamSample::get_Protection()
    @_property
    def protection(self) -> MediaStreamSampleProtectionProperties: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.MediaStreamSample::get_Timestamp()
    @_property
    def timestamp(self) -> datetime.timedelta: ...
    # Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface Windows.Media.Core.MediaStreamSample::get_Direct3D11Surface()
    @_property
    def direct3d11_surface(self) -> windows_graphics_directx_direct3d11.IDirect3DSurface: ...

@typing.final
class MediaStreamSamplePropertySet(winrt.system.Object, winrt._winrt.MutableMapping[_uuid.UUID, winrt.system.Object]):
    def __len__(self) -> int: ...
    def __iter__(self) -> typing.Iterator[_uuid.UUID]: ...
    def __contains__(self, key: object) -> bool: ...
    def __getitem__(self, key: _uuid.UUID) -> winrt.system.Object: ...
    def __setitem__(self, key: _uuid.UUID, value: winrt.system.Object) -> None: ...
    def __delitem__(self, key: _uuid.UUID) -> None: ...
    # System.Void Windows.Media.Core.MediaStreamSamplePropertySet::Clear()
    def clear(self) -> None: ...
    # Windows.Foundation.Collections.IIterator`1<Windows.Foundation.Collections.IKeyValuePair`2<System.Guid,System.Object>> Windows.Media.Core.MediaStreamSamplePropertySet::First()
    def first(self) -> windows_foundation_collections.IIterator[windows_foundation_collections.IKeyValuePair[_uuid.UUID, winrt.system.Object]]: ...
    # Windows.Foundation.Collections.IMapView`2<System.Guid,System.Object> Windows.Media.Core.MediaStreamSamplePropertySet::GetView()
    def get_view(self) -> typing.Mapping[_uuid.UUID, winrt.system.Object]: ...
    # System.Boolean Windows.Media.Core.MediaStreamSamplePropertySet::HasKey(System.Guid)
    def has_key(self, key: _uuid.UUID, /) -> bool: ...
    # System.Boolean Windows.Media.Core.MediaStreamSamplePropertySet::Insert(System.Guid,System.Object)
    def insert(self, key: _uuid.UUID, value: winrt.system.Object, /) -> bool: ...
    # System.Object Windows.Media.Core.MediaStreamSamplePropertySet::Lookup(System.Guid)
    def lookup(self, key: _uuid.UUID, /) -> winrt.system.Object: ...
    # System.Void Windows.Media.Core.MediaStreamSamplePropertySet::Remove(System.Guid)
    def remove(self, key: _uuid.UUID, /) -> None: ...
    # System.UInt32 Windows.Media.Core.MediaStreamSamplePropertySet::get_Size()
    @_property
    def size(self) -> winrt.system.UInt32: ...

@typing.final
class MediaStreamSampleProtectionProperties(winrt.system.Object):
    # System.Void Windows.Media.Core.MediaStreamSampleProtectionProperties::GetInitializationVector(System.Byte[]&)
    def get_initialization_vector(self) -> winrt.system.Array[winrt.system.UInt8]: ...
    # System.Void Windows.Media.Core.MediaStreamSampleProtectionProperties::GetKeyIdentifier(System.Byte[]&)
    def get_key_identifier(self) -> winrt.system.Array[winrt.system.UInt8]: ...
    # System.Void Windows.Media.Core.MediaStreamSampleProtectionProperties::GetSubSampleMapping(System.Byte[]&)
    def get_sub_sample_mapping(self) -> winrt.system.Array[winrt.system.UInt8]: ...
    # System.Void Windows.Media.Core.MediaStreamSampleProtectionProperties::SetInitializationVector(System.Byte[])
    def set_initialization_vector(self, value: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer], /) -> None: ...
    # System.Void Windows.Media.Core.MediaStreamSampleProtectionProperties::SetKeyIdentifier(System.Byte[])
    def set_key_identifier(self, value: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer], /) -> None: ...
    # System.Void Windows.Media.Core.MediaStreamSampleProtectionProperties::SetSubSampleMapping(System.Byte[])
    def set_sub_sample_mapping(self, value: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer], /) -> None: ...

@typing.final
class MediaStreamSource(winrt.system.Object, IMediaSource):
    @typing.overload
    def __new__(cls: typing.Type[Self], descriptor: IMediaStreamDescriptor) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], descriptor: IMediaStreamDescriptor, descriptor2: IMediaStreamDescriptor) -> Self: ...
    # System.Void Windows.Media.Core.MediaStreamSource::AddProtectionKey(Windows.Media.Core.IMediaStreamDescriptor,System.Byte[],System.Byte[])
    def add_protection_key(self, stream_descriptor: IMediaStreamDescriptor, key_identifier: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer], license_data: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer], /) -> None: ...
    # System.Void Windows.Media.Core.MediaStreamSource::AddStreamDescriptor(Windows.Media.Core.IMediaStreamDescriptor)
    def add_stream_descriptor(self, descriptor: IMediaStreamDescriptor, /) -> None: ...
    # System.Void Windows.Media.Core.MediaStreamSource::NotifyError(Windows.Media.Core.MediaStreamSourceErrorStatus)
    def notify_error(self, error_status: MediaStreamSourceErrorStatus, /) -> None: ...
    # System.Void Windows.Media.Core.MediaStreamSource::SetBufferedRange(Windows.Foundation.TimeSpan,Windows.Foundation.TimeSpan)
    def set_buffered_range(self, start_offset: datetime.timedelta, end_offset: datetime.timedelta, /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MediaStreamSource::add_Closed(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MediaStreamSource,Windows.Media.Core.MediaStreamSourceClosedEventArgs>)
    def add_closed(self, handler: windows_foundation.TypedEventHandler[MediaStreamSource, MediaStreamSourceClosedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MediaStreamSource::remove_Closed(Windows.Foundation.EventRegistrationToken)
    def remove_closed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MediaStreamSource::add_Paused(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MediaStreamSource,System.Object>)
    def add_paused(self, handler: windows_foundation.TypedEventHandler[MediaStreamSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MediaStreamSource::remove_Paused(Windows.Foundation.EventRegistrationToken)
    def remove_paused(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MediaStreamSource::add_SampleRequested(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MediaStreamSource,Windows.Media.Core.MediaStreamSourceSampleRequestedEventArgs>)
    def add_sample_requested(self, handler: windows_foundation.TypedEventHandler[MediaStreamSource, MediaStreamSourceSampleRequestedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MediaStreamSource::remove_SampleRequested(Windows.Foundation.EventRegistrationToken)
    def remove_sample_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MediaStreamSource::add_Starting(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MediaStreamSource,Windows.Media.Core.MediaStreamSourceStartingEventArgs>)
    def add_starting(self, handler: windows_foundation.TypedEventHandler[MediaStreamSource, MediaStreamSourceStartingEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MediaStreamSource::remove_Starting(Windows.Foundation.EventRegistrationToken)
    def remove_starting(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MediaStreamSource::add_SwitchStreamsRequested(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MediaStreamSource,Windows.Media.Core.MediaStreamSourceSwitchStreamsRequestedEventArgs>)
    def add_switch_streams_requested(self, handler: windows_foundation.TypedEventHandler[MediaStreamSource, MediaStreamSourceSwitchStreamsRequestedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MediaStreamSource::remove_SwitchStreamsRequested(Windows.Foundation.EventRegistrationToken)
    def remove_switch_streams_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MediaStreamSource::add_SampleRendered(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MediaStreamSource,Windows.Media.Core.MediaStreamSourceSampleRenderedEventArgs>)
    def add_sample_rendered(self, handler: windows_foundation.TypedEventHandler[MediaStreamSource, MediaStreamSourceSampleRenderedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MediaStreamSource::remove_SampleRendered(Windows.Foundation.EventRegistrationToken)
    def remove_sample_rendered(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Storage.Streams.IRandomAccessStreamReference Windows.Media.Core.MediaStreamSource::get_Thumbnail()
    @_property
    def thumbnail(self) -> windows_storage_streams.IRandomAccessStreamReference: ...
    # System.Void Windows.Media.Core.MediaStreamSource::put_Thumbnail(Windows.Storage.Streams.IRandomAccessStreamReference)
    @thumbnail.setter
    def thumbnail(self, value: windows_storage_streams.IRandomAccessStreamReference) -> None: ...
    # Windows.Media.Protection.MediaProtectionManager Windows.Media.Core.MediaStreamSource::get_MediaProtectionManager()
    @_property
    def media_protection_manager(self) -> windows_media_protection.MediaProtectionManager: ...
    # System.Void Windows.Media.Core.MediaStreamSource::put_MediaProtectionManager(Windows.Media.Protection.MediaProtectionManager)
    @media_protection_manager.setter
    def media_protection_manager(self, value: windows_media_protection.MediaProtectionManager) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.MediaStreamSource::get_Duration()
    @_property
    def duration(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.MediaStreamSource::put_Duration(Windows.Foundation.TimeSpan)
    @duration.setter
    def duration(self, value: datetime.timedelta) -> None: ...
    # System.Boolean Windows.Media.Core.MediaStreamSource::get_CanSeek()
    @_property
    def can_seek(self) -> bool: ...
    # System.Void Windows.Media.Core.MediaStreamSource::put_CanSeek(System.Boolean)
    @can_seek.setter
    def can_seek(self, value: bool) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.MediaStreamSource::get_BufferTime()
    @_property
    def buffer_time(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.MediaStreamSource::put_BufferTime(Windows.Foundation.TimeSpan)
    @buffer_time.setter
    def buffer_time(self, value: datetime.timedelta) -> None: ...
    # Windows.Storage.FileProperties.MusicProperties Windows.Media.Core.MediaStreamSource::get_MusicProperties()
    @_property
    def music_properties(self) -> windows_storage_fileproperties.MusicProperties: ...
    # Windows.Storage.FileProperties.VideoProperties Windows.Media.Core.MediaStreamSource::get_VideoProperties()
    @_property
    def video_properties(self) -> windows_storage_fileproperties.VideoProperties: ...
    # Windows.Foundation.IReference`1<System.Double> Windows.Media.Core.MediaStreamSource::get_MaxSupportedPlaybackRate()
    @_property
    def max_supported_playback_rate(self) -> typing.Optional[winrt.system.Double]: ...
    # System.Void Windows.Media.Core.MediaStreamSource::put_MaxSupportedPlaybackRate(Windows.Foundation.IReference`1<System.Double>)
    @max_supported_playback_rate.setter
    def max_supported_playback_rate(self, value: typing.Optional[winrt.system.Double]) -> None: ...
    # System.Boolean Windows.Media.Core.MediaStreamSource::get_IsLive()
    @_property
    def is_live(self) -> bool: ...
    # System.Void Windows.Media.Core.MediaStreamSource::put_IsLive(System.Boolean)
    @is_live.setter
    def is_live(self, value: bool) -> None: ...

@typing.final
class MediaStreamSourceClosedEventArgs(winrt.system.Object):
    # Windows.Media.Core.MediaStreamSourceClosedRequest Windows.Media.Core.MediaStreamSourceClosedEventArgs::get_Request()
    @_property
    def request(self) -> MediaStreamSourceClosedRequest: ...

@typing.final
class MediaStreamSourceClosedRequest(winrt.system.Object):
    # Windows.Media.Core.MediaStreamSourceClosedReason Windows.Media.Core.MediaStreamSourceClosedRequest::get_Reason()
    @_property
    def reason(self) -> MediaStreamSourceClosedReason: ...

@typing.final
class MediaStreamSourceSampleRenderedEventArgs(winrt.system.Object):
    # Windows.Foundation.TimeSpan Windows.Media.Core.MediaStreamSourceSampleRenderedEventArgs::get_SampleLag()
    @_property
    def sample_lag(self) -> datetime.timedelta: ...

@typing.final
class MediaStreamSourceSampleRequest(winrt.system.Object):
    # Windows.Media.Core.MediaStreamSourceSampleRequestDeferral Windows.Media.Core.MediaStreamSourceSampleRequest::GetDeferral()
    def get_deferral(self) -> MediaStreamSourceSampleRequestDeferral: ...
    # System.Void Windows.Media.Core.MediaStreamSourceSampleRequest::ReportSampleProgress(System.UInt32)
    def report_sample_progress(self, progress: winrt.system.UInt32, /) -> None: ...
    # Windows.Media.Core.MediaStreamSample Windows.Media.Core.MediaStreamSourceSampleRequest::get_Sample()
    @_property
    def sample(self) -> MediaStreamSample: ...
    # System.Void Windows.Media.Core.MediaStreamSourceSampleRequest::put_Sample(Windows.Media.Core.MediaStreamSample)
    @sample.setter
    def sample(self, value: MediaStreamSample) -> None: ...
    # Windows.Media.Core.IMediaStreamDescriptor Windows.Media.Core.MediaStreamSourceSampleRequest::get_StreamDescriptor()
    @_property
    def stream_descriptor(self) -> IMediaStreamDescriptor: ...

@typing.final
class MediaStreamSourceSampleRequestDeferral(winrt.system.Object):
    # System.Void Windows.Media.Core.MediaStreamSourceSampleRequestDeferral::Complete()
    def complete(self) -> None: ...

@typing.final
class MediaStreamSourceSampleRequestedEventArgs(winrt.system.Object):
    # Windows.Media.Core.MediaStreamSourceSampleRequest Windows.Media.Core.MediaStreamSourceSampleRequestedEventArgs::get_Request()
    @_property
    def request(self) -> MediaStreamSourceSampleRequest: ...

@typing.final
class MediaStreamSourceStartingEventArgs(winrt.system.Object):
    # Windows.Media.Core.MediaStreamSourceStartingRequest Windows.Media.Core.MediaStreamSourceStartingEventArgs::get_Request()
    @_property
    def request(self) -> MediaStreamSourceStartingRequest: ...

@typing.final
class MediaStreamSourceStartingRequest(winrt.system.Object):
    # Windows.Media.Core.MediaStreamSourceStartingRequestDeferral Windows.Media.Core.MediaStreamSourceStartingRequest::GetDeferral()
    def get_deferral(self) -> MediaStreamSourceStartingRequestDeferral: ...
    # System.Void Windows.Media.Core.MediaStreamSourceStartingRequest::SetActualStartPosition(Windows.Foundation.TimeSpan)
    def set_actual_start_position(self, position: datetime.timedelta, /) -> None: ...
    # Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan> Windows.Media.Core.MediaStreamSourceStartingRequest::get_StartPosition()
    @_property
    def start_position(self) -> typing.Optional[datetime.timedelta]: ...

@typing.final
class MediaStreamSourceStartingRequestDeferral(winrt.system.Object):
    # System.Void Windows.Media.Core.MediaStreamSourceStartingRequestDeferral::Complete()
    def complete(self) -> None: ...

@typing.final
class MediaStreamSourceSwitchStreamsRequest(winrt.system.Object):
    # Windows.Media.Core.MediaStreamSourceSwitchStreamsRequestDeferral Windows.Media.Core.MediaStreamSourceSwitchStreamsRequest::GetDeferral()
    def get_deferral(self) -> MediaStreamSourceSwitchStreamsRequestDeferral: ...
    # Windows.Media.Core.IMediaStreamDescriptor Windows.Media.Core.MediaStreamSourceSwitchStreamsRequest::get_NewStreamDescriptor()
    @_property
    def new_stream_descriptor(self) -> IMediaStreamDescriptor: ...
    # Windows.Media.Core.IMediaStreamDescriptor Windows.Media.Core.MediaStreamSourceSwitchStreamsRequest::get_OldStreamDescriptor()
    @_property
    def old_stream_descriptor(self) -> IMediaStreamDescriptor: ...

@typing.final
class MediaStreamSourceSwitchStreamsRequestDeferral(winrt.system.Object):
    # System.Void Windows.Media.Core.MediaStreamSourceSwitchStreamsRequestDeferral::Complete()
    def complete(self) -> None: ...

@typing.final
class MediaStreamSourceSwitchStreamsRequestedEventArgs(winrt.system.Object):
    # Windows.Media.Core.MediaStreamSourceSwitchStreamsRequest Windows.Media.Core.MediaStreamSourceSwitchStreamsRequestedEventArgs::get_Request()
    @_property
    def request(self) -> MediaStreamSourceSwitchStreamsRequest: ...

@typing.final
class MseSourceBuffer(winrt.system.Object):
    # System.Void Windows.Media.Core.MseSourceBuffer::Abort()
    def abort(self) -> None: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::AppendBuffer(Windows.Storage.Streams.IBuffer)
    def append_buffer(self, buffer: windows_storage_streams.IBuffer, /) -> None: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::AppendStream(Windows.Storage.Streams.IInputStream)
    def append_stream(self, stream: windows_storage_streams.IInputStream, /) -> None: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::AppendStream(Windows.Storage.Streams.IInputStream,System.UInt64)
    def append_stream_max_size(self, stream: windows_storage_streams.IInputStream, max_size: winrt.system.UInt64, /) -> None: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::Remove(Windows.Foundation.TimeSpan,Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan>)
    def remove(self, start: datetime.timedelta, end: typing.Optional[datetime.timedelta], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MseSourceBuffer::add_Aborted(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MseSourceBuffer,System.Object>)
    def add_aborted(self, handler: windows_foundation.TypedEventHandler[MseSourceBuffer, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::remove_Aborted(Windows.Foundation.EventRegistrationToken)
    def remove_aborted(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MseSourceBuffer::add_ErrorOccurred(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MseSourceBuffer,System.Object>)
    def add_error_occurred(self, handler: windows_foundation.TypedEventHandler[MseSourceBuffer, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::remove_ErrorOccurred(Windows.Foundation.EventRegistrationToken)
    def remove_error_occurred(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MseSourceBuffer::add_UpdateEnded(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MseSourceBuffer,System.Object>)
    def add_update_ended(self, handler: windows_foundation.TypedEventHandler[MseSourceBuffer, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::remove_UpdateEnded(Windows.Foundation.EventRegistrationToken)
    def remove_update_ended(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MseSourceBuffer::add_UpdateStarting(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MseSourceBuffer,System.Object>)
    def add_update_starting(self, handler: windows_foundation.TypedEventHandler[MseSourceBuffer, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::remove_UpdateStarting(Windows.Foundation.EventRegistrationToken)
    def remove_update_starting(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MseSourceBuffer::add_Updated(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MseSourceBuffer,System.Object>)
    def add_updated(self, handler: windows_foundation.TypedEventHandler[MseSourceBuffer, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::remove_Updated(Windows.Foundation.EventRegistrationToken)
    def remove_updated(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.MseSourceBuffer::get_TimestampOffset()
    @_property
    def timestamp_offset(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::put_TimestampOffset(Windows.Foundation.TimeSpan)
    @timestamp_offset.setter
    def timestamp_offset(self, value: datetime.timedelta) -> None: ...
    # Windows.Media.Core.MseAppendMode Windows.Media.Core.MseSourceBuffer::get_Mode()
    @_property
    def mode(self) -> MseAppendMode: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::put_Mode(Windows.Media.Core.MseAppendMode)
    @mode.setter
    def mode(self, value: MseAppendMode) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.MseSourceBuffer::get_AppendWindowStart()
    @_property
    def append_window_start(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::put_AppendWindowStart(Windows.Foundation.TimeSpan)
    @append_window_start.setter
    def append_window_start(self, value: datetime.timedelta) -> None: ...
    # Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan> Windows.Media.Core.MseSourceBuffer::get_AppendWindowEnd()
    @_property
    def append_window_end(self) -> typing.Optional[datetime.timedelta]: ...
    # System.Void Windows.Media.Core.MseSourceBuffer::put_AppendWindowEnd(Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan>)
    @append_window_end.setter
    def append_window_end(self, value: typing.Optional[datetime.timedelta]) -> None: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Core.MseTimeRange> Windows.Media.Core.MseSourceBuffer::get_Buffered()
    @_property
    def buffered(self) -> typing.Sequence[MseTimeRange]: ...
    # System.Boolean Windows.Media.Core.MseSourceBuffer::get_IsUpdating()
    @_property
    def is_updating(self) -> bool: ...

@typing.final
class MseSourceBufferList(winrt.system.Object):
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MseSourceBufferList::add_SourceBufferAdded(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MseSourceBufferList,System.Object>)
    def add_source_buffer_added(self, handler: windows_foundation.TypedEventHandler[MseSourceBufferList, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MseSourceBufferList::remove_SourceBufferAdded(Windows.Foundation.EventRegistrationToken)
    def remove_source_buffer_added(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MseSourceBufferList::add_SourceBufferRemoved(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MseSourceBufferList,System.Object>)
    def add_source_buffer_removed(self, handler: windows_foundation.TypedEventHandler[MseSourceBufferList, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MseSourceBufferList::remove_SourceBufferRemoved(Windows.Foundation.EventRegistrationToken)
    def remove_source_buffer_removed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Core.MseSourceBuffer> Windows.Media.Core.MseSourceBufferList::get_Buffers()
    @_property
    def buffers(self) -> typing.Sequence[MseSourceBuffer]: ...

@typing.final
class MseStreamSource_Static(winrt._winrt.IInspectable_Static):
    # System.Boolean Windows.Media.Core.MseStreamSource::IsContentTypeSupported(System.String)
    def is_content_type_supported(cls, content_type: str, /) -> bool: ...

@typing.final
class MseStreamSource(winrt.system.Object, IMediaSource, metaclass=MseStreamSource_Static):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Media.Core.MseSourceBuffer Windows.Media.Core.MseStreamSource::AddSourceBuffer(System.String)
    def add_source_buffer(self, mime_type: str, /) -> MseSourceBuffer: ...
    # System.Void Windows.Media.Core.MseStreamSource::EndOfStream(Windows.Media.Core.MseEndOfStreamStatus)
    def end_of_stream(self, status: MseEndOfStreamStatus, /) -> None: ...
    # System.Void Windows.Media.Core.MseStreamSource::RemoveSourceBuffer(Windows.Media.Core.MseSourceBuffer)
    def remove_source_buffer(self, buffer: MseSourceBuffer, /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MseStreamSource::add_Closed(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MseStreamSource,System.Object>)
    def add_closed(self, handler: windows_foundation.TypedEventHandler[MseStreamSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MseStreamSource::remove_Closed(Windows.Foundation.EventRegistrationToken)
    def remove_closed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MseStreamSource::add_Ended(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MseStreamSource,System.Object>)
    def add_ended(self, handler: windows_foundation.TypedEventHandler[MseStreamSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MseStreamSource::remove_Ended(Windows.Foundation.EventRegistrationToken)
    def remove_ended(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.MseStreamSource::add_Opened(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.MseStreamSource,System.Object>)
    def add_opened(self, handler: windows_foundation.TypedEventHandler[MseStreamSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.MseStreamSource::remove_Opened(Windows.Foundation.EventRegistrationToken)
    def remove_opened(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan> Windows.Media.Core.MseStreamSource::get_Duration()
    @_property
    def duration(self) -> typing.Optional[datetime.timedelta]: ...
    # System.Void Windows.Media.Core.MseStreamSource::put_Duration(Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan>)
    @duration.setter
    def duration(self, value: typing.Optional[datetime.timedelta]) -> None: ...
    # Windows.Media.Core.MseSourceBufferList Windows.Media.Core.MseStreamSource::get_ActiveSourceBuffers()
    @_property
    def active_source_buffers(self) -> MseSourceBufferList: ...
    # Windows.Media.Core.MseReadyState Windows.Media.Core.MseStreamSource::get_ReadyState()
    @_property
    def ready_state(self) -> MseReadyState: ...
    # Windows.Media.Core.MseSourceBufferList Windows.Media.Core.MseStreamSource::get_SourceBuffers()
    @_property
    def source_buffers(self) -> MseSourceBufferList: ...
    # Windows.Foundation.IReference`1<Windows.Media.Core.MseTimeRange> Windows.Media.Core.MseStreamSource::get_LiveSeekableRange()
    @_property
    def live_seekable_range(self) -> typing.Optional[MseTimeRange]: ...
    # System.Void Windows.Media.Core.MseStreamSource::put_LiveSeekableRange(Windows.Foundation.IReference`1<Windows.Media.Core.MseTimeRange>)
    @live_seekable_range.setter
    def live_seekable_range(self, value: typing.Optional[MseTimeRange]) -> None: ...

@typing.final
class SceneAnalysisEffect(winrt.system.Object, windows_media.IMediaExtension):
    # System.Void Windows.Media.Core.SceneAnalysisEffect::SetProperties(Windows.Foundation.Collections.IPropertySet)
    def set_properties(self, configuration: windows_foundation_collections.IPropertySet, /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.SceneAnalysisEffect::add_SceneAnalyzed(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.SceneAnalysisEffect,Windows.Media.Core.SceneAnalyzedEventArgs>)
    def add_scene_analyzed(self, handler: windows_foundation.TypedEventHandler[SceneAnalysisEffect, SceneAnalyzedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.SceneAnalysisEffect::remove_SceneAnalyzed(Windows.Foundation.EventRegistrationToken)
    def remove_scene_analyzed(self, cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.SceneAnalysisEffect::get_DesiredAnalysisInterval()
    @_property
    def desired_analysis_interval(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.SceneAnalysisEffect::put_DesiredAnalysisInterval(Windows.Foundation.TimeSpan)
    @desired_analysis_interval.setter
    def desired_analysis_interval(self, value: datetime.timedelta) -> None: ...
    # Windows.Media.Core.HighDynamicRangeControl Windows.Media.Core.SceneAnalysisEffect::get_HighDynamicRangeAnalyzer()
    @_property
    def high_dynamic_range_analyzer(self) -> HighDynamicRangeControl: ...

@typing.final
class SceneAnalysisEffectDefinition(winrt.system.Object, windows_media_effects.IVideoEffectDefinition):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Media.Core.SceneAnalysisEffectDefinition::get_ActivatableClassId()
    @_property
    def activatable_class_id(self) -> str: ...
    # Windows.Foundation.Collections.IPropertySet Windows.Media.Core.SceneAnalysisEffectDefinition::get_Properties()
    @_property
    def properties(self) -> windows_foundation_collections.IPropertySet: ...

@typing.final
class SceneAnalysisEffectFrame(winrt.system.Object, windows_media.IMediaFrame, windows_foundation.IClosable):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Windows.Media.Core.SceneAnalysisEffectFrame::Close()
    def close(self) -> None: ...
    # Windows.Media.Capture.CapturedFrameControlValues Windows.Media.Core.SceneAnalysisEffectFrame::get_FrameControlValues()
    @_property
    def frame_control_values(self) -> windows_media_capture.CapturedFrameControlValues: ...
    # Windows.Media.Core.HighDynamicRangeOutput Windows.Media.Core.SceneAnalysisEffectFrame::get_HighDynamicRange()
    @_property
    def high_dynamic_range(self) -> HighDynamicRangeOutput: ...
    # Windows.Media.Core.SceneAnalysisRecommendation Windows.Media.Core.SceneAnalysisEffectFrame::get_AnalysisRecommendation()
    @_property
    def analysis_recommendation(self) -> SceneAnalysisRecommendation: ...
    # Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan> Windows.Media.Core.SceneAnalysisEffectFrame::get_SystemRelativeTime()
    @_property
    def system_relative_time(self) -> typing.Optional[datetime.timedelta]: ...
    # System.Void Windows.Media.Core.SceneAnalysisEffectFrame::put_SystemRelativeTime(Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan>)
    @system_relative_time.setter
    def system_relative_time(self, value: typing.Optional[datetime.timedelta]) -> None: ...
    # Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan> Windows.Media.Core.SceneAnalysisEffectFrame::get_RelativeTime()
    @_property
    def relative_time(self) -> typing.Optional[datetime.timedelta]: ...
    # System.Void Windows.Media.Core.SceneAnalysisEffectFrame::put_RelativeTime(Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan>)
    @relative_time.setter
    def relative_time(self, value: typing.Optional[datetime.timedelta]) -> None: ...
    # System.Boolean Windows.Media.Core.SceneAnalysisEffectFrame::get_IsDiscontinuous()
    @_property
    def is_discontinuous(self) -> bool: ...
    # System.Void Windows.Media.Core.SceneAnalysisEffectFrame::put_IsDiscontinuous(System.Boolean)
    @is_discontinuous.setter
    def is_discontinuous(self, value: bool) -> None: ...
    # Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan> Windows.Media.Core.SceneAnalysisEffectFrame::get_Duration()
    @_property
    def duration(self) -> typing.Optional[datetime.timedelta]: ...
    # System.Void Windows.Media.Core.SceneAnalysisEffectFrame::put_Duration(Windows.Foundation.IReference`1<Windows.Foundation.TimeSpan>)
    @duration.setter
    def duration(self, value: typing.Optional[datetime.timedelta]) -> None: ...
    # Windows.Foundation.Collections.IPropertySet Windows.Media.Core.SceneAnalysisEffectFrame::get_ExtendedProperties()
    @_property
    def extended_properties(self) -> windows_foundation_collections.IPropertySet: ...
    # System.Boolean Windows.Media.Core.SceneAnalysisEffectFrame::get_IsReadOnly()
    @_property
    def is_read_only(self) -> bool: ...
    # System.String Windows.Media.Core.SceneAnalysisEffectFrame::get_Type()
    @_property
    def type(self) -> str: ...

@typing.final
class SceneAnalyzedEventArgs(winrt.system.Object):
    # Windows.Media.Core.SceneAnalysisEffectFrame Windows.Media.Core.SceneAnalyzedEventArgs::get_ResultFrame()
    @_property
    def result_frame(self) -> SceneAnalysisEffectFrame: ...

@typing.final
class SpeechCue(winrt.system.Object, IMediaCue):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.SpeechCue::get_StartTime()
    @_property
    def start_time(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.SpeechCue::put_StartTime(Windows.Foundation.TimeSpan)
    @start_time.setter
    def start_time(self, value: datetime.timedelta) -> None: ...
    # System.String Windows.Media.Core.SpeechCue::get_Id()
    @_property
    def id(self) -> str: ...
    # System.Void Windows.Media.Core.SpeechCue::put_Id(System.String)
    @id.setter
    def id(self, value: str) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.SpeechCue::get_Duration()
    @_property
    def duration(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.SpeechCue::put_Duration(Windows.Foundation.TimeSpan)
    @duration.setter
    def duration(self, value: datetime.timedelta) -> None: ...
    # System.String Windows.Media.Core.SpeechCue::get_Text()
    @_property
    def text(self) -> str: ...
    # System.Void Windows.Media.Core.SpeechCue::put_Text(System.String)
    @text.setter
    def text(self, value: str) -> None: ...
    # Windows.Foundation.IReference`1<System.Int32> Windows.Media.Core.SpeechCue::get_StartPositionInInput()
    @_property
    def start_position_in_input(self) -> typing.Optional[winrt.system.Int32]: ...
    # System.Void Windows.Media.Core.SpeechCue::put_StartPositionInInput(Windows.Foundation.IReference`1<System.Int32>)
    @start_position_in_input.setter
    def start_position_in_input(self, value: typing.Optional[winrt.system.Int32]) -> None: ...
    # Windows.Foundation.IReference`1<System.Int32> Windows.Media.Core.SpeechCue::get_EndPositionInInput()
    @_property
    def end_position_in_input(self) -> typing.Optional[winrt.system.Int32]: ...
    # System.Void Windows.Media.Core.SpeechCue::put_EndPositionInInput(Windows.Foundation.IReference`1<System.Int32>)
    @end_position_in_input.setter
    def end_position_in_input(self, value: typing.Optional[winrt.system.Int32]) -> None: ...

@typing.final
class TimedMetadataStreamDescriptor(winrt.system.Object, IMediaStreamDescriptor2, IMediaStreamDescriptor):
    def __new__(cls: typing.Type[Self], encoding_properties: windows_media_mediaproperties.TimedMetadataEncodingProperties) -> Self: ...
    # Windows.Media.Core.TimedMetadataStreamDescriptor Windows.Media.Core.TimedMetadataStreamDescriptor::Copy()
    def copy(self) -> TimedMetadataStreamDescriptor: ...
    # System.String Windows.Media.Core.TimedMetadataStreamDescriptor::get_Name()
    @_property
    def name(self) -> str: ...
    # System.Void Windows.Media.Core.TimedMetadataStreamDescriptor::put_Name(System.String)
    @name.setter
    def name(self, value: str) -> None: ...
    # System.String Windows.Media.Core.TimedMetadataStreamDescriptor::get_Language()
    @_property
    def language(self) -> str: ...
    # System.Void Windows.Media.Core.TimedMetadataStreamDescriptor::put_Language(System.String)
    @language.setter
    def language(self, value: str) -> None: ...
    # System.Boolean Windows.Media.Core.TimedMetadataStreamDescriptor::get_IsSelected()
    @_property
    def is_selected(self) -> bool: ...
    # System.String Windows.Media.Core.TimedMetadataStreamDescriptor::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.Media.Core.TimedMetadataStreamDescriptor::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...
    # Windows.Media.MediaProperties.TimedMetadataEncodingProperties Windows.Media.Core.TimedMetadataStreamDescriptor::get_EncodingProperties()
    @_property
    def encoding_properties(self) -> windows_media_mediaproperties.TimedMetadataEncodingProperties: ...

@typing.final
class TimedMetadataTrack(winrt.system.Object, IMediaTrack):
    def __new__(cls: typing.Type[Self], id: str, language: str, kind: TimedMetadataKind) -> Self: ...
    # System.Void Windows.Media.Core.TimedMetadataTrack::AddCue(Windows.Media.Core.IMediaCue)
    def add_cue(self, cue: IMediaCue, /) -> None: ...
    # System.Void Windows.Media.Core.TimedMetadataTrack::RemoveCue(Windows.Media.Core.IMediaCue)
    def remove_cue(self, cue: IMediaCue, /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.TimedMetadataTrack::add_CueEntered(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.TimedMetadataTrack,Windows.Media.Core.MediaCueEventArgs>)
    def add_cue_entered(self, handler: windows_foundation.TypedEventHandler[TimedMetadataTrack, MediaCueEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.TimedMetadataTrack::remove_CueEntered(Windows.Foundation.EventRegistrationToken)
    def remove_cue_entered(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.TimedMetadataTrack::add_CueExited(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.TimedMetadataTrack,Windows.Media.Core.MediaCueEventArgs>)
    def add_cue_exited(self, handler: windows_foundation.TypedEventHandler[TimedMetadataTrack, MediaCueEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.TimedMetadataTrack::remove_CueExited(Windows.Foundation.EventRegistrationToken)
    def remove_cue_exited(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.TimedMetadataTrack::add_TrackFailed(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.TimedMetadataTrack,Windows.Media.Core.TimedMetadataTrackFailedEventArgs>)
    def add_track_failed(self, handler: windows_foundation.TypedEventHandler[TimedMetadataTrack, TimedMetadataTrackFailedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.TimedMetadataTrack::remove_TrackFailed(Windows.Foundation.EventRegistrationToken)
    def remove_track_failed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.String Windows.Media.Core.TimedMetadataTrack::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.Media.Core.TimedMetadataTrack::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...
    # System.String Windows.Media.Core.TimedMetadataTrack::get_Id()
    @_property
    def id(self) -> str: ...
    # System.String Windows.Media.Core.TimedMetadataTrack::get_Language()
    @_property
    def language(self) -> str: ...
    # Windows.Media.Core.MediaTrackKind Windows.Media.Core.TimedMetadataTrack::get_TrackKind()
    @_property
    def track_kind(self) -> MediaTrackKind: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Core.IMediaCue> Windows.Media.Core.TimedMetadataTrack::get_ActiveCues()
    @_property
    def active_cues(self) -> typing.Sequence[IMediaCue]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Core.IMediaCue> Windows.Media.Core.TimedMetadataTrack::get_Cues()
    @_property
    def cues(self) -> typing.Sequence[IMediaCue]: ...
    # System.String Windows.Media.Core.TimedMetadataTrack::get_DispatchType()
    @_property
    def dispatch_type(self) -> str: ...
    # Windows.Media.Core.TimedMetadataKind Windows.Media.Core.TimedMetadataTrack::get_TimedMetadataKind()
    @_property
    def timed_metadata_kind(self) -> TimedMetadataKind: ...
    # System.String Windows.Media.Core.TimedMetadataTrack::get_Name()
    @_property
    def name(self) -> str: ...
    # Windows.Media.Playback.MediaPlaybackItem Windows.Media.Core.TimedMetadataTrack::get_PlaybackItem()
    @_property
    def playback_item(self) -> windows_media_playback.MediaPlaybackItem: ...

@typing.final
class TimedMetadataTrackError(winrt.system.Object):
    # Windows.Media.Core.TimedMetadataTrackErrorCode Windows.Media.Core.TimedMetadataTrackError::get_ErrorCode()
    @_property
    def error_code(self) -> TimedMetadataTrackErrorCode: ...
    # Windows.Foundation.HResult Windows.Media.Core.TimedMetadataTrackError::get_ExtendedError()
    @_property
    def extended_error(self) -> windows_foundation.HResult: ...

@typing.final
class TimedMetadataTrackFailedEventArgs(winrt.system.Object):
    # Windows.Media.Core.TimedMetadataTrackError Windows.Media.Core.TimedMetadataTrackFailedEventArgs::get_Error()
    @_property
    def error(self) -> TimedMetadataTrackError: ...

@typing.final
class TimedTextBouten(winrt.system.Object):
    # Windows.Media.Core.TimedTextBoutenType Windows.Media.Core.TimedTextBouten::get_Type()
    @_property
    def type(self) -> TimedTextBoutenType: ...
    # System.Void Windows.Media.Core.TimedTextBouten::put_Type(Windows.Media.Core.TimedTextBoutenType)
    @type.setter
    def type(self, value: TimedTextBoutenType) -> None: ...
    # Windows.Media.Core.TimedTextBoutenPosition Windows.Media.Core.TimedTextBouten::get_Position()
    @_property
    def position(self) -> TimedTextBoutenPosition: ...
    # System.Void Windows.Media.Core.TimedTextBouten::put_Position(Windows.Media.Core.TimedTextBoutenPosition)
    @position.setter
    def position(self, value: TimedTextBoutenPosition) -> None: ...
    # Windows.UI.Color Windows.Media.Core.TimedTextBouten::get_Color()
    @_property
    def color(self) -> windows_ui.Color: ...
    # System.Void Windows.Media.Core.TimedTextBouten::put_Color(Windows.UI.Color)
    @color.setter
    def color(self, value: typing.Union[windows_ui.Color, typing.Tuple[winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8]]) -> None: ...

@typing.final
class TimedTextCue(winrt.system.Object, IMediaCue):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.TimedTextCue::get_StartTime()
    @_property
    def start_time(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.TimedTextCue::put_StartTime(Windows.Foundation.TimeSpan)
    @start_time.setter
    def start_time(self, value: datetime.timedelta) -> None: ...
    # System.String Windows.Media.Core.TimedTextCue::get_Id()
    @_property
    def id(self) -> str: ...
    # System.Void Windows.Media.Core.TimedTextCue::put_Id(System.String)
    @id.setter
    def id(self, value: str) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.TimedTextCue::get_Duration()
    @_property
    def duration(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.TimedTextCue::put_Duration(Windows.Foundation.TimeSpan)
    @duration.setter
    def duration(self, value: datetime.timedelta) -> None: ...
    # Windows.Media.Core.TimedTextStyle Windows.Media.Core.TimedTextCue::get_CueStyle()
    @_property
    def cue_style(self) -> TimedTextStyle: ...
    # System.Void Windows.Media.Core.TimedTextCue::put_CueStyle(Windows.Media.Core.TimedTextStyle)
    @cue_style.setter
    def cue_style(self, value: TimedTextStyle) -> None: ...
    # Windows.Media.Core.TimedTextRegion Windows.Media.Core.TimedTextCue::get_CueRegion()
    @_property
    def cue_region(self) -> TimedTextRegion: ...
    # System.Void Windows.Media.Core.TimedTextCue::put_CueRegion(Windows.Media.Core.TimedTextRegion)
    @cue_region.setter
    def cue_region(self, value: TimedTextRegion) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Media.Core.TimedTextLine> Windows.Media.Core.TimedTextCue::get_Lines()
    @_property
    def lines(self) -> typing.MutableSequence[TimedTextLine]: ...

@typing.final
class TimedTextLine(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Media.Core.TimedTextLine::get_Text()
    @_property
    def text(self) -> str: ...
    # System.Void Windows.Media.Core.TimedTextLine::put_Text(System.String)
    @text.setter
    def text(self, value: str) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Media.Core.TimedTextSubformat> Windows.Media.Core.TimedTextLine::get_Subformats()
    @_property
    def subformats(self) -> typing.MutableSequence[TimedTextSubformat]: ...

@typing.final
class TimedTextRegion(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Media.Core.TimedTextRegion::get_Name()
    @_property
    def name(self) -> str: ...
    # System.Void Windows.Media.Core.TimedTextRegion::put_Name(System.String)
    @name.setter
    def name(self, value: str) -> None: ...
    # Windows.Media.Core.TimedTextDouble Windows.Media.Core.TimedTextRegion::get_LineHeight()
    @_property
    def line_height(self) -> TimedTextDouble: ...
    # System.Void Windows.Media.Core.TimedTextRegion::put_LineHeight(Windows.Media.Core.TimedTextDouble)
    @line_height.setter
    def line_height(self, value: typing.Union[TimedTextDouble, typing.Tuple[winrt.system.Double, TimedTextUnit]]) -> None: ...
    # System.Boolean Windows.Media.Core.TimedTextRegion::get_IsOverflowClipped()
    @_property
    def is_overflow_clipped(self) -> bool: ...
    # System.Void Windows.Media.Core.TimedTextRegion::put_IsOverflowClipped(System.Boolean)
    @is_overflow_clipped.setter
    def is_overflow_clipped(self, value: bool) -> None: ...
    # Windows.Media.Core.TimedTextSize Windows.Media.Core.TimedTextRegion::get_Extent()
    @_property
    def extent(self) -> TimedTextSize: ...
    # System.Void Windows.Media.Core.TimedTextRegion::put_Extent(Windows.Media.Core.TimedTextSize)
    @extent.setter
    def extent(self, value: typing.Union[TimedTextSize, typing.Tuple[winrt.system.Double, winrt.system.Double, TimedTextUnit]]) -> None: ...
    # Windows.Media.Core.TimedTextDisplayAlignment Windows.Media.Core.TimedTextRegion::get_DisplayAlignment()
    @_property
    def display_alignment(self) -> TimedTextDisplayAlignment: ...
    # System.Void Windows.Media.Core.TimedTextRegion::put_DisplayAlignment(Windows.Media.Core.TimedTextDisplayAlignment)
    @display_alignment.setter
    def display_alignment(self, value: TimedTextDisplayAlignment) -> None: ...
    # Windows.Media.Core.TimedTextPadding Windows.Media.Core.TimedTextRegion::get_Padding()
    @_property
    def padding(self) -> TimedTextPadding: ...
    # System.Void Windows.Media.Core.TimedTextRegion::put_Padding(Windows.Media.Core.TimedTextPadding)
    @padding.setter
    def padding(self, value: typing.Union[TimedTextPadding, typing.Tuple[winrt.system.Double, winrt.system.Double, winrt.system.Double, winrt.system.Double, TimedTextUnit]]) -> None: ...
    # Windows.UI.Color Windows.Media.Core.TimedTextRegion::get_Background()
    @_property
    def background(self) -> windows_ui.Color: ...
    # System.Void Windows.Media.Core.TimedTextRegion::put_Background(Windows.UI.Color)
    @background.setter
    def background(self, value: typing.Union[windows_ui.Color, typing.Tuple[winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8]]) -> None: ...
    # System.Int32 Windows.Media.Core.TimedTextRegion::get_ZIndex()
    @_property
    def z_index(self) -> winrt.system.Int32: ...
    # System.Void Windows.Media.Core.TimedTextRegion::put_ZIndex(System.Int32)
    @z_index.setter
    def z_index(self, value: winrt.system.Int32) -> None: ...
    # Windows.Media.Core.TimedTextWritingMode Windows.Media.Core.TimedTextRegion::get_WritingMode()
    @_property
    def writing_mode(self) -> TimedTextWritingMode: ...
    # System.Void Windows.Media.Core.TimedTextRegion::put_WritingMode(Windows.Media.Core.TimedTextWritingMode)
    @writing_mode.setter
    def writing_mode(self, value: TimedTextWritingMode) -> None: ...
    # Windows.Media.Core.TimedTextWrapping Windows.Media.Core.TimedTextRegion::get_TextWrapping()
    @_property
    def text_wrapping(self) -> TimedTextWrapping: ...
    # System.Void Windows.Media.Core.TimedTextRegion::put_TextWrapping(Windows.Media.Core.TimedTextWrapping)
    @text_wrapping.setter
    def text_wrapping(self, value: TimedTextWrapping) -> None: ...
    # Windows.Media.Core.TimedTextScrollMode Windows.Media.Core.TimedTextRegion::get_ScrollMode()
    @_property
    def scroll_mode(self) -> TimedTextScrollMode: ...
    # System.Void Windows.Media.Core.TimedTextRegion::put_ScrollMode(Windows.Media.Core.TimedTextScrollMode)
    @scroll_mode.setter
    def scroll_mode(self, value: TimedTextScrollMode) -> None: ...
    # Windows.Media.Core.TimedTextPoint Windows.Media.Core.TimedTextRegion::get_Position()
    @_property
    def position(self) -> TimedTextPoint: ...
    # System.Void Windows.Media.Core.TimedTextRegion::put_Position(Windows.Media.Core.TimedTextPoint)
    @position.setter
    def position(self, value: typing.Union[TimedTextPoint, typing.Tuple[winrt.system.Double, winrt.system.Double, TimedTextUnit]]) -> None: ...

@typing.final
class TimedTextRuby(winrt.system.Object):
    # System.String Windows.Media.Core.TimedTextRuby::get_Text()
    @_property
    def text(self) -> str: ...
    # System.Void Windows.Media.Core.TimedTextRuby::put_Text(System.String)
    @text.setter
    def text(self, value: str) -> None: ...
    # Windows.Media.Core.TimedTextRubyReserve Windows.Media.Core.TimedTextRuby::get_Reserve()
    @_property
    def reserve(self) -> TimedTextRubyReserve: ...
    # System.Void Windows.Media.Core.TimedTextRuby::put_Reserve(Windows.Media.Core.TimedTextRubyReserve)
    @reserve.setter
    def reserve(self, value: TimedTextRubyReserve) -> None: ...
    # Windows.Media.Core.TimedTextRubyPosition Windows.Media.Core.TimedTextRuby::get_Position()
    @_property
    def position(self) -> TimedTextRubyPosition: ...
    # System.Void Windows.Media.Core.TimedTextRuby::put_Position(Windows.Media.Core.TimedTextRubyPosition)
    @position.setter
    def position(self, value: TimedTextRubyPosition) -> None: ...
    # Windows.Media.Core.TimedTextRubyAlign Windows.Media.Core.TimedTextRuby::get_Align()
    @_property
    def align(self) -> TimedTextRubyAlign: ...
    # System.Void Windows.Media.Core.TimedTextRuby::put_Align(Windows.Media.Core.TimedTextRubyAlign)
    @align.setter
    def align(self, value: TimedTextRubyAlign) -> None: ...

@typing.final
class TimedTextSource_Static(winrt._winrt.IInspectable_Static):
    # Windows.Media.Core.TimedTextSource Windows.Media.Core.TimedTextSource::CreateFromStream(Windows.Storage.Streams.IRandomAccessStream)
    def create_from_stream(cls, stream: windows_storage_streams.IRandomAccessStream, /) -> TimedTextSource: ...
    # Windows.Media.Core.TimedTextSource Windows.Media.Core.TimedTextSource::CreateFromStreamWithIndex(Windows.Storage.Streams.IRandomAccessStream,Windows.Storage.Streams.IRandomAccessStream)
    def create_from_stream_with_index(cls, stream: windows_storage_streams.IRandomAccessStream, index_stream: windows_storage_streams.IRandomAccessStream, /) -> TimedTextSource: ...
    # Windows.Media.Core.TimedTextSource Windows.Media.Core.TimedTextSource::CreateFromStreamWithIndex(Windows.Storage.Streams.IRandomAccessStream,Windows.Storage.Streams.IRandomAccessStream,System.String)
    def create_from_stream_with_index_and_language(cls, stream: windows_storage_streams.IRandomAccessStream, index_stream: windows_storage_streams.IRandomAccessStream, default_language: str, /) -> TimedTextSource: ...
    # Windows.Media.Core.TimedTextSource Windows.Media.Core.TimedTextSource::CreateFromStream(Windows.Storage.Streams.IRandomAccessStream,System.String)
    def create_from_stream_with_language(cls, stream: windows_storage_streams.IRandomAccessStream, default_language: str, /) -> TimedTextSource: ...
    # Windows.Media.Core.TimedTextSource Windows.Media.Core.TimedTextSource::CreateFromUri(Windows.Foundation.Uri)
    def create_from_uri(cls, uri: windows_foundation.Uri, /) -> TimedTextSource: ...
    # Windows.Media.Core.TimedTextSource Windows.Media.Core.TimedTextSource::CreateFromUriWithIndex(Windows.Foundation.Uri,Windows.Foundation.Uri)
    def create_from_uri_with_index(cls, uri: windows_foundation.Uri, index_uri: windows_foundation.Uri, /) -> TimedTextSource: ...
    # Windows.Media.Core.TimedTextSource Windows.Media.Core.TimedTextSource::CreateFromUriWithIndex(Windows.Foundation.Uri,Windows.Foundation.Uri,System.String)
    def create_from_uri_with_index_and_language(cls, uri: windows_foundation.Uri, index_uri: windows_foundation.Uri, default_language: str, /) -> TimedTextSource: ...
    # Windows.Media.Core.TimedTextSource Windows.Media.Core.TimedTextSource::CreateFromUri(Windows.Foundation.Uri,System.String)
    def create_from_uri_with_language(cls, uri: windows_foundation.Uri, default_language: str, /) -> TimedTextSource: ...

@typing.final
class TimedTextSource(winrt.system.Object, metaclass=TimedTextSource_Static):
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.TimedTextSource::add_Resolved(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.TimedTextSource,Windows.Media.Core.TimedTextSourceResolveResultEventArgs>)
    def add_resolved(self, handler: windows_foundation.TypedEventHandler[TimedTextSource, TimedTextSourceResolveResultEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.TimedTextSource::remove_Resolved(Windows.Foundation.EventRegistrationToken)
    def remove_resolved(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

@typing.final
class TimedTextSourceResolveResultEventArgs(winrt.system.Object):
    # Windows.Media.Core.TimedMetadataTrackError Windows.Media.Core.TimedTextSourceResolveResultEventArgs::get_Error()
    @_property
    def error(self) -> TimedMetadataTrackError: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Core.TimedMetadataTrack> Windows.Media.Core.TimedTextSourceResolveResultEventArgs::get_Tracks()
    @_property
    def tracks(self) -> typing.Sequence[TimedMetadataTrack]: ...

@typing.final
class TimedTextStyle(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Media.Core.TimedTextLineAlignment Windows.Media.Core.TimedTextStyle::get_LineAlignment()
    @_property
    def line_alignment(self) -> TimedTextLineAlignment: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_LineAlignment(Windows.Media.Core.TimedTextLineAlignment)
    @line_alignment.setter
    def line_alignment(self, value: TimedTextLineAlignment) -> None: ...
    # System.Boolean Windows.Media.Core.TimedTextStyle::get_IsBackgroundAlwaysShown()
    @_property
    def is_background_always_shown(self) -> bool: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_IsBackgroundAlwaysShown(System.Boolean)
    @is_background_always_shown.setter
    def is_background_always_shown(self, value: bool) -> None: ...
    # Windows.UI.Color Windows.Media.Core.TimedTextStyle::get_OutlineColor()
    @_property
    def outline_color(self) -> windows_ui.Color: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_OutlineColor(Windows.UI.Color)
    @outline_color.setter
    def outline_color(self, value: typing.Union[windows_ui.Color, typing.Tuple[winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8]]) -> None: ...
    # Windows.UI.Color Windows.Media.Core.TimedTextStyle::get_Foreground()
    @_property
    def foreground(self) -> windows_ui.Color: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_Foreground(Windows.UI.Color)
    @foreground.setter
    def foreground(self, value: typing.Union[windows_ui.Color, typing.Tuple[winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8]]) -> None: ...
    # Windows.Media.Core.TimedTextWeight Windows.Media.Core.TimedTextStyle::get_FontWeight()
    @_property
    def font_weight(self) -> TimedTextWeight: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_FontWeight(Windows.Media.Core.TimedTextWeight)
    @font_weight.setter
    def font_weight(self, value: TimedTextWeight) -> None: ...
    # Windows.UI.Color Windows.Media.Core.TimedTextStyle::get_Background()
    @_property
    def background(self) -> windows_ui.Color: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_Background(Windows.UI.Color)
    @background.setter
    def background(self, value: typing.Union[windows_ui.Color, typing.Tuple[winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8]]) -> None: ...
    # Windows.Media.Core.TimedTextDouble Windows.Media.Core.TimedTextStyle::get_FontSize()
    @_property
    def font_size(self) -> TimedTextDouble: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_FontSize(Windows.Media.Core.TimedTextDouble)
    @font_size.setter
    def font_size(self, value: typing.Union[TimedTextDouble, typing.Tuple[winrt.system.Double, TimedTextUnit]]) -> None: ...
    # System.String Windows.Media.Core.TimedTextStyle::get_FontFamily()
    @_property
    def font_family(self) -> str: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_FontFamily(System.String)
    @font_family.setter
    def font_family(self, value: str) -> None: ...
    # Windows.Media.Core.TimedTextFlowDirection Windows.Media.Core.TimedTextStyle::get_FlowDirection()
    @_property
    def flow_direction(self) -> TimedTextFlowDirection: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_FlowDirection(Windows.Media.Core.TimedTextFlowDirection)
    @flow_direction.setter
    def flow_direction(self, value: TimedTextFlowDirection) -> None: ...
    # Windows.Media.Core.TimedTextDouble Windows.Media.Core.TimedTextStyle::get_OutlineThickness()
    @_property
    def outline_thickness(self) -> TimedTextDouble: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_OutlineThickness(Windows.Media.Core.TimedTextDouble)
    @outline_thickness.setter
    def outline_thickness(self, value: typing.Union[TimedTextDouble, typing.Tuple[winrt.system.Double, TimedTextUnit]]) -> None: ...
    # Windows.Media.Core.TimedTextDouble Windows.Media.Core.TimedTextStyle::get_OutlineRadius()
    @_property
    def outline_radius(self) -> TimedTextDouble: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_OutlineRadius(Windows.Media.Core.TimedTextDouble)
    @outline_radius.setter
    def outline_radius(self, value: typing.Union[TimedTextDouble, typing.Tuple[winrt.system.Double, TimedTextUnit]]) -> None: ...
    # System.String Windows.Media.Core.TimedTextStyle::get_Name()
    @_property
    def name(self) -> str: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_Name(System.String)
    @name.setter
    def name(self, value: str) -> None: ...
    # System.Boolean Windows.Media.Core.TimedTextStyle::get_IsUnderlineEnabled()
    @_property
    def is_underline_enabled(self) -> bool: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_IsUnderlineEnabled(System.Boolean)
    @is_underline_enabled.setter
    def is_underline_enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Media.Core.TimedTextStyle::get_IsOverlineEnabled()
    @_property
    def is_overline_enabled(self) -> bool: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_IsOverlineEnabled(System.Boolean)
    @is_overline_enabled.setter
    def is_overline_enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Media.Core.TimedTextStyle::get_IsLineThroughEnabled()
    @_property
    def is_line_through_enabled(self) -> bool: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_IsLineThroughEnabled(System.Boolean)
    @is_line_through_enabled.setter
    def is_line_through_enabled(self, value: bool) -> None: ...
    # Windows.Media.Core.TimedTextFontStyle Windows.Media.Core.TimedTextStyle::get_FontStyle()
    @_property
    def font_style(self) -> TimedTextFontStyle: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_FontStyle(Windows.Media.Core.TimedTextFontStyle)
    @font_style.setter
    def font_style(self, value: TimedTextFontStyle) -> None: ...
    # System.Boolean Windows.Media.Core.TimedTextStyle::get_IsTextCombined()
    @_property
    def is_text_combined(self) -> bool: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_IsTextCombined(System.Boolean)
    @is_text_combined.setter
    def is_text_combined(self, value: bool) -> None: ...
    # System.Double Windows.Media.Core.TimedTextStyle::get_FontAngleInDegrees()
    @_property
    def font_angle_in_degrees(self) -> winrt.system.Double: ...
    # System.Void Windows.Media.Core.TimedTextStyle::put_FontAngleInDegrees(System.Double)
    @font_angle_in_degrees.setter
    def font_angle_in_degrees(self, value: winrt.system.Double) -> None: ...
    # Windows.Media.Core.TimedTextBouten Windows.Media.Core.TimedTextStyle::get_Bouten()
    @_property
    def bouten(self) -> TimedTextBouten: ...
    # Windows.Media.Core.TimedTextRuby Windows.Media.Core.TimedTextStyle::get_Ruby()
    @_property
    def ruby(self) -> TimedTextRuby: ...

@typing.final
class TimedTextSubformat(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Media.Core.TimedTextStyle Windows.Media.Core.TimedTextSubformat::get_SubformatStyle()
    @_property
    def subformat_style(self) -> TimedTextStyle: ...
    # System.Void Windows.Media.Core.TimedTextSubformat::put_SubformatStyle(Windows.Media.Core.TimedTextStyle)
    @subformat_style.setter
    def subformat_style(self, value: TimedTextStyle) -> None: ...
    # System.Int32 Windows.Media.Core.TimedTextSubformat::get_StartIndex()
    @_property
    def start_index(self) -> winrt.system.Int32: ...
    # System.Void Windows.Media.Core.TimedTextSubformat::put_StartIndex(System.Int32)
    @start_index.setter
    def start_index(self, value: winrt.system.Int32) -> None: ...
    # System.Int32 Windows.Media.Core.TimedTextSubformat::get_Length()
    @_property
    def length(self) -> winrt.system.Int32: ...
    # System.Void Windows.Media.Core.TimedTextSubformat::put_Length(System.Int32)
    @length.setter
    def length(self, value: winrt.system.Int32) -> None: ...

@typing.final
class VideoStabilizationEffect(winrt.system.Object, windows_media.IMediaExtension):
    # Windows.Media.Capture.VideoStreamConfiguration Windows.Media.Core.VideoStabilizationEffect::GetRecommendedStreamConfiguration(Windows.Media.Devices.VideoDeviceController,Windows.Media.MediaProperties.VideoEncodingProperties)
    def get_recommended_stream_configuration(self, controller: windows_media_devices.VideoDeviceController, desired_properties: windows_media_mediaproperties.VideoEncodingProperties, /) -> windows_media_capture.VideoStreamConfiguration: ...
    # System.Void Windows.Media.Core.VideoStabilizationEffect::SetProperties(Windows.Foundation.Collections.IPropertySet)
    def set_properties(self, configuration: windows_foundation_collections.IPropertySet, /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.VideoStabilizationEffect::add_EnabledChanged(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.VideoStabilizationEffect,Windows.Media.Core.VideoStabilizationEffectEnabledChangedEventArgs>)
    def add_enabled_changed(self, handler: windows_foundation.TypedEventHandler[VideoStabilizationEffect, VideoStabilizationEffectEnabledChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.VideoStabilizationEffect::remove_EnabledChanged(Windows.Foundation.EventRegistrationToken)
    def remove_enabled_changed(self, cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.Boolean Windows.Media.Core.VideoStabilizationEffect::get_Enabled()
    @_property
    def enabled(self) -> bool: ...
    # System.Void Windows.Media.Core.VideoStabilizationEffect::put_Enabled(System.Boolean)
    @enabled.setter
    def enabled(self, value: bool) -> None: ...

@typing.final
class VideoStabilizationEffectDefinition(winrt.system.Object, windows_media_effects.IVideoEffectDefinition):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Media.Core.VideoStabilizationEffectDefinition::get_ActivatableClassId()
    @_property
    def activatable_class_id(self) -> str: ...
    # Windows.Foundation.Collections.IPropertySet Windows.Media.Core.VideoStabilizationEffectDefinition::get_Properties()
    @_property
    def properties(self) -> windows_foundation_collections.IPropertySet: ...

@typing.final
class VideoStabilizationEffectEnabledChangedEventArgs(winrt.system.Object):
    # Windows.Media.Core.VideoStabilizationEffectEnabledChangedReason Windows.Media.Core.VideoStabilizationEffectEnabledChangedEventArgs::get_Reason()
    @_property
    def reason(self) -> VideoStabilizationEffectEnabledChangedReason: ...

@typing.final
class VideoStreamDescriptor(winrt.system.Object, IMediaStreamDescriptor2, IMediaStreamDescriptor):
    def __new__(cls: typing.Type[Self], encoding_properties: windows_media_mediaproperties.VideoEncodingProperties) -> Self: ...
    # Windows.Media.Core.VideoStreamDescriptor Windows.Media.Core.VideoStreamDescriptor::Copy()
    def copy(self) -> VideoStreamDescriptor: ...
    # System.String Windows.Media.Core.VideoStreamDescriptor::get_Name()
    @_property
    def name(self) -> str: ...
    # System.Void Windows.Media.Core.VideoStreamDescriptor::put_Name(System.String)
    @name.setter
    def name(self, value: str) -> None: ...
    # System.String Windows.Media.Core.VideoStreamDescriptor::get_Language()
    @_property
    def language(self) -> str: ...
    # System.Void Windows.Media.Core.VideoStreamDescriptor::put_Language(System.String)
    @language.setter
    def language(self, value: str) -> None: ...
    # System.Boolean Windows.Media.Core.VideoStreamDescriptor::get_IsSelected()
    @_property
    def is_selected(self) -> bool: ...
    # System.String Windows.Media.Core.VideoStreamDescriptor::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.Media.Core.VideoStreamDescriptor::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...
    # Windows.Media.MediaProperties.VideoEncodingProperties Windows.Media.Core.VideoStreamDescriptor::get_EncodingProperties()
    @_property
    def encoding_properties(self) -> windows_media_mediaproperties.VideoEncodingProperties: ...

@typing.final
class VideoTrack(winrt.system.Object, IMediaTrack):
    # Windows.Media.MediaProperties.VideoEncodingProperties Windows.Media.Core.VideoTrack::GetEncodingProperties()
    def get_encoding_properties(self) -> windows_media_mediaproperties.VideoEncodingProperties: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.VideoTrack::add_OpenFailed(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.VideoTrack,Windows.Media.Core.VideoTrackOpenFailedEventArgs>)
    def add_open_failed(self, handler: windows_foundation.TypedEventHandler[VideoTrack, VideoTrackOpenFailedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.VideoTrack::remove_OpenFailed(Windows.Foundation.EventRegistrationToken)
    def remove_open_failed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.String Windows.Media.Core.VideoTrack::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.Media.Core.VideoTrack::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...
    # System.String Windows.Media.Core.VideoTrack::get_Id()
    @_property
    def id(self) -> str: ...
    # System.String Windows.Media.Core.VideoTrack::get_Language()
    @_property
    def language(self) -> str: ...
    # Windows.Media.Core.MediaTrackKind Windows.Media.Core.VideoTrack::get_TrackKind()
    @_property
    def track_kind(self) -> MediaTrackKind: ...
    # System.String Windows.Media.Core.VideoTrack::get_Name()
    @_property
    def name(self) -> str: ...
    # Windows.Media.Playback.MediaPlaybackItem Windows.Media.Core.VideoTrack::get_PlaybackItem()
    @_property
    def playback_item(self) -> windows_media_playback.MediaPlaybackItem: ...
    # Windows.Media.Core.VideoTrackSupportInfo Windows.Media.Core.VideoTrack::get_SupportInfo()
    @_property
    def support_info(self) -> VideoTrackSupportInfo: ...

@typing.final
class VideoTrackOpenFailedEventArgs(winrt.system.Object):
    # Windows.Foundation.HResult Windows.Media.Core.VideoTrackOpenFailedEventArgs::get_ExtendedError()
    @_property
    def extended_error(self) -> windows_foundation.HResult: ...

@typing.final
class VideoTrackSupportInfo(winrt.system.Object):
    # Windows.Media.Core.MediaDecoderStatus Windows.Media.Core.VideoTrackSupportInfo::get_DecoderStatus()
    @_property
    def decoder_status(self) -> MediaDecoderStatus: ...
    # Windows.Media.Core.MediaSourceStatus Windows.Media.Core.VideoTrackSupportInfo::get_MediaSourceStatus()
    @_property
    def media_source_status(self) -> MediaSourceStatus: ...

@typing.final
class _IMediaCue: ...

class IMediaCue(winrt._winrt.IInspectable):
    # Windows.Foundation.TimeSpan Windows.Media.Core.IMediaCue::get_Duration()
    @_property
    @abstractmethod
    def duration(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.IMediaCue::put_Duration(Windows.Foundation.TimeSpan)
    @duration.setter
    @abstractmethod
    def duration(self, value: datetime.timedelta) -> None: ...
    # System.String Windows.Media.Core.IMediaCue::get_Id()
    @_property
    @abstractmethod
    def id(self) -> str: ...
    # System.Void Windows.Media.Core.IMediaCue::put_Id(System.String)
    @id.setter
    @abstractmethod
    def id(self, value: str) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Media.Core.IMediaCue::get_StartTime()
    @_property
    @abstractmethod
    def start_time(self) -> datetime.timedelta: ...
    # System.Void Windows.Media.Core.IMediaCue::put_StartTime(Windows.Foundation.TimeSpan)
    @start_time.setter
    @abstractmethod
    def start_time(self, value: datetime.timedelta) -> None: ...

@typing.final
class _IMediaSource: ...

class IMediaSource(winrt._winrt.IInspectable):  # type: ignore[misc]
    pass

@typing.final
class _IMediaStreamDescriptor: ...

class IMediaStreamDescriptor(winrt._winrt.IInspectable):
    # System.Boolean Windows.Media.Core.IMediaStreamDescriptor::get_IsSelected()
    @_property
    @abstractmethod
    def is_selected(self) -> bool: ...
    # System.String Windows.Media.Core.IMediaStreamDescriptor::get_Language()
    @_property
    @abstractmethod
    def language(self) -> str: ...
    # System.Void Windows.Media.Core.IMediaStreamDescriptor::put_Language(System.String)
    @language.setter
    @abstractmethod
    def language(self, value: str) -> None: ...
    # System.String Windows.Media.Core.IMediaStreamDescriptor::get_Name()
    @_property
    @abstractmethod
    def name(self) -> str: ...
    # System.Void Windows.Media.Core.IMediaStreamDescriptor::put_Name(System.String)
    @name.setter
    @abstractmethod
    def name(self, value: str) -> None: ...

@typing.final
class _IMediaStreamDescriptor2: ...

class IMediaStreamDescriptor2(IMediaStreamDescriptor, winrt._winrt.IInspectable):
    # System.String Windows.Media.Core.IMediaStreamDescriptor2::get_Label()
    @_property
    @abstractmethod
    def label(self) -> str: ...
    # System.Void Windows.Media.Core.IMediaStreamDescriptor2::put_Label(System.String)
    @label.setter
    @abstractmethod
    def label(self, value: str) -> None: ...

@typing.final
class _IMediaTrack: ...

class IMediaTrack(winrt._winrt.IInspectable):
    # System.String Windows.Media.Core.IMediaTrack::get_Id()
    @_property
    @abstractmethod
    def id(self) -> str: ...
    # System.String Windows.Media.Core.IMediaTrack::get_Label()
    @_property
    @abstractmethod
    def label(self) -> str: ...
    # System.Void Windows.Media.Core.IMediaTrack::put_Label(System.String)
    @label.setter
    @abstractmethod
    def label(self, value: str) -> None: ...
    # System.String Windows.Media.Core.IMediaTrack::get_Language()
    @_property
    @abstractmethod
    def language(self) -> str: ...
    # Windows.Media.Core.MediaTrackKind Windows.Media.Core.IMediaTrack::get_TrackKind()
    @_property
    @abstractmethod
    def track_kind(self) -> MediaTrackKind: ...

@typing.final
class _ISingleSelectMediaTrackList: ...

class ISingleSelectMediaTrackList(winrt._winrt.IInspectable):
    # Windows.Foundation.EventRegistrationToken Windows.Media.Core.ISingleSelectMediaTrackList::add_SelectedIndexChanged(Windows.Foundation.TypedEventHandler`2<Windows.Media.Core.ISingleSelectMediaTrackList,System.Object>)
    @abstractmethod
    def add_selected_index_changed(self, handler: windows_foundation.TypedEventHandler[ISingleSelectMediaTrackList, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Core.ISingleSelectMediaTrackList::remove_SelectedIndexChanged(Windows.Foundation.EventRegistrationToken)
    @abstractmethod
    def remove_selected_index_changed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.Int32 Windows.Media.Core.ISingleSelectMediaTrackList::get_SelectedIndex()
    @_property
    @abstractmethod
    def selected_index(self) -> winrt.system.Int32: ...
    # System.Void Windows.Media.Core.ISingleSelectMediaTrackList::put_SelectedIndex(System.Int32)
    @selected_index.setter
    @abstractmethod
    def selected_index(self, value: winrt.system.Int32) -> None: ...

@typing.final
class _ITimedMetadataTrackProvider: ...

class ITimedMetadataTrackProvider(winrt._winrt.IInspectable):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Core.TimedMetadataTrack> Windows.Media.Core.ITimedMetadataTrackProvider::get_TimedMetadataTracks()
    @_property
    @abstractmethod
    def timed_metadata_tracks(self) -> typing.Sequence[TimedMetadataTrack]: ...

