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

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

import winrt._winrt
import winrt.system
import winrt.windows.devices.enumeration
import winrt.windows.foundation
import winrt.windows.foundation.collections
import winrt.windows.graphics.directx.direct3d11
import winrt.windows.graphics.imaging
import winrt.windows.media
import winrt.windows.media.capture.core
import winrt.windows.media.capture.frames
import winrt.windows.media.core
import winrt.windows.media.devices
import winrt.windows.media.effects
import winrt.windows.media.mediaproperties
import winrt.windows.security.authentication.web
import winrt.windows.security.credentials
import winrt.windows.storage
import winrt.windows.storage.streams
import winrt.windows.system
import winrt.windows.ui.windowmanagement

from winrt.windows.media.capture import AppBroadcastCameraCaptureState, AppBroadcastCameraOverlayLocation, AppBroadcastCameraOverlaySize, AppBroadcastCaptureTargetType, AppBroadcastExitBroadcastModeReason, AppBroadcastMicrophoneCaptureState, AppBroadcastPlugInState, AppBroadcastPreviewState, AppBroadcastSignInResult, AppBroadcastSignInState, AppBroadcastStreamState, AppBroadcastTerminationReason, AppBroadcastVideoEncodingBitrateMode, AppBroadcastVideoEncodingResolutionMode, AppCaptureHistoricalBufferLengthUnit, AppCaptureMetadataPriority, AppCaptureMicrophoneCaptureState, AppCaptureRecordingState, AppCaptureVideoEncodingBitrateMode, AppCaptureVideoEncodingFrameRateMode, AppCaptureVideoEncodingResolutionMode, CameraCaptureUIMaxPhotoResolution, CameraCaptureUIMaxVideoResolution, CameraCaptureUIMode, CameraCaptureUIPhotoFormat, CameraCaptureUIVideoFormat, ForegroundActivationArgument, GameBarCommand, GameBarCommandOrigin, GameBarServicesDisplayMode, GameBarTargetCapturePolicy, KnownVideoProfile, MediaCaptureDeviceExclusiveControlReleaseMode, MediaCaptureDeviceExclusiveControlStatus, MediaCaptureMemoryPreference, MediaCaptureSharingMode, MediaCaptureThermalStatus, MediaCategory, MediaStreamType, PhotoCaptureSource, PowerlineFrequency, StreamingCaptureMode, VideoDeviceCharacteristic, VideoRotation
from winrt.windows.media.capture import MediaCaptureFailedEventHandler, RecordLimitationExceededEventHandler

Self = typing.TypeVar('Self')

@typing.final
class WhiteBalanceGain:
    r: winrt.system.Double
    g: winrt.system.Double
    b: winrt.system.Double
    def __init__(self, r: winrt.system.Double, g: winrt.system.Double, b: winrt.system.Double) -> None: ...

@typing.final
class AdvancedCapturedPhoto(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AdvancedCapturedPhoto: ...
    @_property
    def context(self) -> typing.Optional[winrt.system.Object]: ...
    @_property
    def frame(self) -> typing.Optional[CapturedFrame]: ...
    @_property
    def mode(self) -> winrt.windows.media.devices.AdvancedPhotoMode: ...
    @_property
    def frame_bounds_relative_to_reference_photo(self) -> typing.Optional[typing.Optional[winrt.windows.foundation.Rect]]: ...

@typing.final
class AdvancedPhotoCapture(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AdvancedPhotoCapture: ...
    @typing.overload
    def capture_async(self) -> winrt.windows.foundation.IAsyncOperation[AdvancedCapturedPhoto]: ...
    @typing.overload
    def capture_async(self, context: typing.Optional[winrt.system.Object], /) -> winrt.windows.foundation.IAsyncOperation[AdvancedCapturedPhoto]: ...
    def finish_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def add_all_photos_captured(self, handler: winrt.windows.foundation.TypedEventHandler[AdvancedPhotoCapture, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_all_photos_captured(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_optional_reference_photo_captured(self, handler: winrt.windows.foundation.TypedEventHandler[AdvancedPhotoCapture, OptionalReferencePhotoCapturedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_optional_reference_photo_captured(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...

@typing.final
class AppBroadcastBackgroundService(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastBackgroundService: ...
    def terminate_broadcast(self, reason: AppBroadcastTerminationReason, provider_specific_reason: winrt.system.UInt32, /) -> None: ...
    def add_heartbeat_requested(self, handler: winrt.windows.foundation.TypedEventHandler[AppBroadcastBackgroundService, AppBroadcastHeartbeatRequestedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_heartbeat_requested(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_broadcast_channel_changed(self, handler: winrt.windows.foundation.TypedEventHandler[AppBroadcastBackgroundService, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_broadcast_channel_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_broadcast_language_changed(self, handler: winrt.windows.foundation.TypedEventHandler[AppBroadcastBackgroundService, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_broadcast_language_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_broadcast_title_changed(self, handler: winrt.windows.foundation.TypedEventHandler[AppBroadcastBackgroundService, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_broadcast_title_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def viewer_count(self) -> winrt.system.UInt32: ...
    @viewer_count.setter
    def viewer_count(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def stream_info(self) -> typing.Optional[AppBroadcastBackgroundServiceStreamInfo]: ...
    @stream_info.setter
    def stream_info(self, value: typing.Optional[AppBroadcastBackgroundServiceStreamInfo]) -> None: ...
    @_property
    def sign_in_info(self) -> typing.Optional[AppBroadcastBackgroundServiceSignInInfo]: ...
    @sign_in_info.setter
    def sign_in_info(self, value: typing.Optional[AppBroadcastBackgroundServiceSignInInfo]) -> None: ...
    @_property
    def plug_in_state(self) -> AppBroadcastPlugInState: ...
    @plug_in_state.setter
    def plug_in_state(self, value: AppBroadcastPlugInState) -> None: ...
    @_property
    def broadcast_title(self) -> str: ...
    @broadcast_title.setter
    def broadcast_title(self, value: str) -> None: ...
    @_property
    def app_id(self) -> str: ...
    @_property
    def title_id(self) -> str: ...
    @_property
    def broadcast_language(self) -> str: ...
    @broadcast_language.setter
    def broadcast_language(self, value: str) -> None: ...
    @_property
    def broadcast_channel(self) -> str: ...
    @broadcast_channel.setter
    def broadcast_channel(self, value: str) -> None: ...

@typing.final
class AppBroadcastBackgroundServiceSignInInfo(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastBackgroundServiceSignInInfo: ...
    def add_sign_in_state_changed(self, handler: winrt.windows.foundation.TypedEventHandler[AppBroadcastBackgroundServiceSignInInfo, AppBroadcastSignInStateChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_sign_in_state_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_user_name_changed(self, handler: winrt.windows.foundation.TypedEventHandler[AppBroadcastBackgroundServiceSignInInfo, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_user_name_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def user_name(self) -> str: ...
    @user_name.setter
    def user_name(self, value: str) -> None: ...
    @_property
    def o_auth_request_uri(self) -> typing.Optional[winrt.windows.foundation.Uri]: ...
    @o_auth_request_uri.setter
    def o_auth_request_uri(self, value: typing.Optional[winrt.windows.foundation.Uri]) -> None: ...
    @_property
    def o_auth_callback_uri(self) -> typing.Optional[winrt.windows.foundation.Uri]: ...
    @o_auth_callback_uri.setter
    def o_auth_callback_uri(self, value: typing.Optional[winrt.windows.foundation.Uri]) -> None: ...
    @_property
    def authentication_result(self) -> typing.Optional[winrt.windows.security.authentication.web.WebAuthenticationResult]: ...
    @_property
    def sign_in_state(self) -> AppBroadcastSignInState: ...

@typing.final
class AppBroadcastBackgroundServiceStreamInfo(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastBackgroundServiceStreamInfo: ...
    def report_problem_with_stream(self) -> None: ...
    def add_stream_state_changed(self, handler: winrt.windows.foundation.TypedEventHandler[AppBroadcastBackgroundServiceStreamInfo, AppBroadcastStreamStateChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_stream_state_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_video_encoding_bitrate_changed(self, handler: winrt.windows.foundation.TypedEventHandler[AppBroadcastBackgroundServiceStreamInfo, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_video_encoding_bitrate_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_video_encoding_resolution_changed(self, handler: winrt.windows.foundation.TypedEventHandler[AppBroadcastBackgroundServiceStreamInfo, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_video_encoding_resolution_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def desired_video_encoding_bitrate(self) -> winrt.system.UInt64: ...
    @desired_video_encoding_bitrate.setter
    def desired_video_encoding_bitrate(self, value: winrt.system.UInt64) -> None: ...
    @_property
    def bandwidth_test_bitrate(self) -> winrt.system.UInt64: ...
    @bandwidth_test_bitrate.setter
    def bandwidth_test_bitrate(self, value: winrt.system.UInt64) -> None: ...
    @_property
    def audio_codec(self) -> str: ...
    @audio_codec.setter
    def audio_codec(self, value: str) -> None: ...
    @_property
    def broadcast_stream_reader(self) -> typing.Optional[AppBroadcastStreamReader]: ...
    @_property
    def stream_state(self) -> AppBroadcastStreamState: ...

@typing.final
class AppBroadcastCameraCaptureStateChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastCameraCaptureStateChangedEventArgs: ...
    @_property
    def error_code(self) -> winrt.system.UInt32: ...
    @_property
    def state(self) -> AppBroadcastCameraCaptureState: ...

@typing.final
class AppBroadcastGlobalSettings(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastGlobalSettings: ...
    @_property
    def system_audio_gain(self) -> winrt.system.Double: ...
    @system_audio_gain.setter
    def system_audio_gain(self, value: winrt.system.Double) -> None: ...
    @_property
    def selected_camera_id(self) -> str: ...
    @selected_camera_id.setter
    def selected_camera_id(self, value: str) -> None: ...
    @_property
    def microphone_gain(self) -> winrt.system.Double: ...
    @microphone_gain.setter
    def microphone_gain(self, value: winrt.system.Double) -> None: ...
    @_property
    def is_microphone_capture_enabled_by_default(self) -> bool: ...
    @is_microphone_capture_enabled_by_default.setter
    def is_microphone_capture_enabled_by_default(self, value: bool) -> None: ...
    @_property
    def is_echo_cancellation_enabled(self) -> bool: ...
    @is_echo_cancellation_enabled.setter
    def is_echo_cancellation_enabled(self, value: bool) -> None: ...
    @_property
    def is_cursor_image_capture_enabled(self) -> bool: ...
    @is_cursor_image_capture_enabled.setter
    def is_cursor_image_capture_enabled(self, value: bool) -> None: ...
    @_property
    def is_camera_capture_enabled_by_default(self) -> bool: ...
    @is_camera_capture_enabled_by_default.setter
    def is_camera_capture_enabled_by_default(self, value: bool) -> None: ...
    @_property
    def is_audio_capture_enabled(self) -> bool: ...
    @is_audio_capture_enabled.setter
    def is_audio_capture_enabled(self, value: bool) -> None: ...
    @_property
    def camera_overlay_size(self) -> AppBroadcastCameraOverlaySize: ...
    @camera_overlay_size.setter
    def camera_overlay_size(self, value: AppBroadcastCameraOverlaySize) -> None: ...
    @_property
    def camera_overlay_location(self) -> AppBroadcastCameraOverlayLocation: ...
    @camera_overlay_location.setter
    def camera_overlay_location(self, value: AppBroadcastCameraOverlayLocation) -> None: ...
    @_property
    def has_hardware_encoder(self) -> bool: ...
    @_property
    def is_broadcast_enabled(self) -> bool: ...
    @_property
    def is_disabled_by_policy(self) -> bool: ...
    @_property
    def is_gpu_constrained(self) -> bool: ...

@typing.final
class AppBroadcastHeartbeatRequestedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastHeartbeatRequestedEventArgs: ...
    @_property
    def handled(self) -> bool: ...
    @handled.setter
    def handled(self, value: bool) -> None: ...

@typing.final
class AppBroadcastManager_Static(type):
    def apply_global_settings(cls, value: typing.Optional[AppBroadcastGlobalSettings], /) -> None: ...
    def apply_provider_settings(cls, value: typing.Optional[AppBroadcastProviderSettings], /) -> None: ...
    def get_global_settings(cls) -> typing.Optional[AppBroadcastGlobalSettings]: ...
    def get_provider_settings(cls) -> typing.Optional[AppBroadcastProviderSettings]: ...

@typing.final
class AppBroadcastManager(winrt.system.Object, metaclass=AppBroadcastManager_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastManager: ...

@typing.final
class AppBroadcastMicrophoneCaptureStateChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastMicrophoneCaptureStateChangedEventArgs: ...
    @_property
    def error_code(self) -> winrt.system.UInt32: ...
    @_property
    def state(self) -> AppBroadcastMicrophoneCaptureState: ...

@typing.final
class AppBroadcastPlugIn(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastPlugIn: ...
    @_property
    def app_id(self) -> str: ...
    @_property
    def display_name(self) -> str: ...
    @_property
    def logo(self) -> typing.Optional[winrt.windows.storage.streams.IRandomAccessStreamReference]: ...
    @_property
    def provider_settings(self) -> typing.Optional[AppBroadcastProviderSettings]: ...

@typing.final
class AppBroadcastPlugInManager_Static(type):
    def get_default(cls) -> typing.Optional[AppBroadcastPlugInManager]: ...
    def get_for_user(cls, user: typing.Optional[winrt.windows.system.User], /) -> typing.Optional[AppBroadcastPlugInManager]: ...

@typing.final
class AppBroadcastPlugInManager(winrt.system.Object, metaclass=AppBroadcastPlugInManager_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastPlugInManager: ...
    @_property
    def default_plug_in(self) -> typing.Optional[AppBroadcastPlugIn]: ...
    @default_plug_in.setter
    def default_plug_in(self, value: typing.Optional[AppBroadcastPlugIn]) -> None: ...
    @_property
    def is_broadcast_provider_available(self) -> bool: ...
    @_property
    def plug_in_list(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[AppBroadcastPlugIn]]: ...

@typing.final
class AppBroadcastPlugInStateChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastPlugInStateChangedEventArgs: ...
    @_property
    def plug_in_state(self) -> AppBroadcastPlugInState: ...

@typing.final
class AppBroadcastPreview(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastPreview: ...
    def stop_preview(self) -> None: ...
    def add_preview_state_changed(self, value: winrt.windows.foundation.TypedEventHandler[AppBroadcastPreview, AppBroadcastPreviewStateChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_preview_state_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def error_code(self) -> typing.Optional[typing.Optional[winrt.system.UInt32]]: ...
    @_property
    def preview_state(self) -> AppBroadcastPreviewState: ...
    @_property
    def preview_stream_reader(self) -> typing.Optional[AppBroadcastPreviewStreamReader]: ...

@typing.final
class AppBroadcastPreviewStateChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastPreviewStateChangedEventArgs: ...
    @_property
    def error_code(self) -> winrt.system.UInt32: ...
    @_property
    def preview_state(self) -> AppBroadcastPreviewState: ...

@typing.final
class AppBroadcastPreviewStreamReader(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastPreviewStreamReader: ...
    def try_get_next_video_frame(self) -> typing.Optional[AppBroadcastPreviewStreamVideoFrame]: ...
    def add_video_frame_arrived(self, value: winrt.windows.foundation.TypedEventHandler[AppBroadcastPreviewStreamReader, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_video_frame_arrived(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def video_bitmap_alpha_mode(self) -> winrt.windows.graphics.imaging.BitmapAlphaMode: ...
    @_property
    def video_bitmap_pixel_format(self) -> winrt.windows.graphics.imaging.BitmapPixelFormat: ...
    @_property
    def video_height(self) -> winrt.system.UInt32: ...
    @_property
    def video_stride(self) -> winrt.system.UInt32: ...
    @_property
    def video_width(self) -> winrt.system.UInt32: ...

@typing.final
class AppBroadcastPreviewStreamVideoFrame(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastPreviewStreamVideoFrame: ...
    @_property
    def video_buffer(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def video_header(self) -> typing.Optional[AppBroadcastPreviewStreamVideoHeader]: ...

@typing.final
class AppBroadcastPreviewStreamVideoHeader(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastPreviewStreamVideoHeader: ...
    @_property
    def absolute_timestamp(self) -> datetime.datetime: ...
    @_property
    def duration(self) -> datetime.timedelta: ...
    @_property
    def frame_id(self) -> winrt.system.UInt64: ...
    @_property
    def relative_timestamp(self) -> datetime.timedelta: ...

@typing.final
class AppBroadcastProviderSettings(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastProviderSettings: ...
    @_property
    def video_encoding_resolution_mode(self) -> AppBroadcastVideoEncodingResolutionMode: ...
    @video_encoding_resolution_mode.setter
    def video_encoding_resolution_mode(self, value: AppBroadcastVideoEncodingResolutionMode) -> None: ...
    @_property
    def video_encoding_bitrate_mode(self) -> AppBroadcastVideoEncodingBitrateMode: ...
    @video_encoding_bitrate_mode.setter
    def video_encoding_bitrate_mode(self, value: AppBroadcastVideoEncodingBitrateMode) -> None: ...
    @_property
    def default_broadcast_title(self) -> str: ...
    @default_broadcast_title.setter
    def default_broadcast_title(self, value: str) -> None: ...
    @_property
    def custom_video_encoding_width(self) -> winrt.system.UInt32: ...
    @custom_video_encoding_width.setter
    def custom_video_encoding_width(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def custom_video_encoding_height(self) -> winrt.system.UInt32: ...
    @custom_video_encoding_height.setter
    def custom_video_encoding_height(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def custom_video_encoding_bitrate(self) -> winrt.system.UInt32: ...
    @custom_video_encoding_bitrate.setter
    def custom_video_encoding_bitrate(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def audio_encoding_bitrate(self) -> winrt.system.UInt32: ...
    @audio_encoding_bitrate.setter
    def audio_encoding_bitrate(self, value: winrt.system.UInt32) -> None: ...

@typing.final
class AppBroadcastServices(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastServices: ...
    def enter_broadcast_mode_async(self, plug_in: typing.Optional[AppBroadcastPlugIn], /) -> winrt.windows.foundation.IAsyncOperation[winrt.system.UInt32]: ...
    def exit_broadcast_mode(self, reason: AppBroadcastExitBroadcastModeReason, /) -> None: ...
    def pause_broadcast(self) -> None: ...
    def resume_broadcast(self) -> None: ...
    def start_broadcast(self) -> None: ...
    def start_preview(self, desired_size: winrt.windows.foundation.Size, /) -> typing.Optional[AppBroadcastPreview]: ...
    @_property
    def capture_target_type(self) -> AppBroadcastCaptureTargetType: ...
    @capture_target_type.setter
    def capture_target_type(self, value: AppBroadcastCaptureTargetType) -> None: ...
    @_property
    def broadcast_title(self) -> str: ...
    @broadcast_title.setter
    def broadcast_title(self, value: str) -> None: ...
    @_property
    def broadcast_language(self) -> str: ...
    @broadcast_language.setter
    def broadcast_language(self, value: str) -> None: ...
    @_property
    def can_capture(self) -> bool: ...
    @_property
    def state(self) -> typing.Optional[AppBroadcastState]: ...
    @_property
    def user_name(self) -> str: ...

@typing.final
class AppBroadcastSignInStateChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastSignInStateChangedEventArgs: ...
    @_property
    def result(self) -> AppBroadcastSignInResult: ...
    @_property
    def sign_in_state(self) -> AppBroadcastSignInState: ...

@typing.final
class AppBroadcastState(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastState: ...
    def restart_camera_capture(self) -> None: ...
    def restart_microphone_capture(self) -> None: ...
    def add_camera_capture_state_changed(self, value: winrt.windows.foundation.TypedEventHandler[AppBroadcastState, AppBroadcastCameraCaptureStateChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_camera_capture_state_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_capture_target_closed(self, value: winrt.windows.foundation.TypedEventHandler[AppBroadcastState, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_capture_target_closed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_microphone_capture_state_changed(self, value: winrt.windows.foundation.TypedEventHandler[AppBroadcastState, AppBroadcastMicrophoneCaptureStateChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_microphone_capture_state_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_plug_in_state_changed(self, handler: winrt.windows.foundation.TypedEventHandler[AppBroadcastState, AppBroadcastPlugInStateChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_plug_in_state_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_stream_state_changed(self, handler: winrt.windows.foundation.TypedEventHandler[AppBroadcastState, AppBroadcastStreamStateChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_stream_state_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_viewer_count_changed(self, value: winrt.windows.foundation.TypedEventHandler[AppBroadcastState, AppBroadcastViewerCountChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_viewer_count_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def sign_in_state(self) -> AppBroadcastSignInState: ...
    @sign_in_state.setter
    def sign_in_state(self, value: AppBroadcastSignInState) -> None: ...
    @_property
    def should_capture_microphone(self) -> bool: ...
    @should_capture_microphone.setter
    def should_capture_microphone(self, value: bool) -> None: ...
    @_property
    def should_capture_camera(self) -> bool: ...
    @should_capture_camera.setter
    def should_capture_camera(self, value: bool) -> None: ...
    @_property
    def authentication_result(self) -> typing.Optional[winrt.windows.security.authentication.web.WebAuthenticationResult]: ...
    @authentication_result.setter
    def authentication_result(self, value: typing.Optional[winrt.windows.security.authentication.web.WebAuthenticationResult]) -> None: ...
    @_property
    def is_capture_target_running(self) -> bool: ...
    @_property
    def microphone_capture_error(self) -> winrt.system.UInt32: ...
    @_property
    def microphone_capture_state(self) -> AppBroadcastMicrophoneCaptureState: ...
    @_property
    def o_auth_callback_uri(self) -> typing.Optional[winrt.windows.foundation.Uri]: ...
    @_property
    def o_auth_request_uri(self) -> typing.Optional[winrt.windows.foundation.Uri]: ...
    @_property
    def plug_in_state(self) -> AppBroadcastPlugInState: ...
    @_property
    def camera_capture_error(self) -> winrt.system.UInt32: ...
    @_property
    def camera_capture_state(self) -> AppBroadcastCameraCaptureState: ...
    @_property
    def encoded_video_size(self) -> winrt.windows.foundation.Size: ...
    @_property
    def stream_state(self) -> AppBroadcastStreamState: ...
    @_property
    def termination_reason(self) -> AppBroadcastTerminationReason: ...
    @_property
    def termination_reason_plug_in_specific(self) -> winrt.system.UInt32: ...
    @_property
    def viewer_count(self) -> winrt.system.UInt32: ...

@typing.final
class AppBroadcastStreamAudioFrame(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastStreamAudioFrame: ...
    @_property
    def audio_buffer(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def audio_header(self) -> typing.Optional[AppBroadcastStreamAudioHeader]: ...

@typing.final
class AppBroadcastStreamAudioHeader(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastStreamAudioHeader: ...
    @_property
    def absolute_timestamp(self) -> datetime.datetime: ...
    @_property
    def duration(self) -> datetime.timedelta: ...
    @_property
    def frame_id(self) -> winrt.system.UInt64: ...
    @_property
    def has_discontinuity(self) -> bool: ...
    @_property
    def relative_timestamp(self) -> datetime.timedelta: ...

@typing.final
class AppBroadcastStreamReader(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastStreamReader: ...
    def try_get_next_audio_frame(self) -> typing.Optional[AppBroadcastStreamAudioFrame]: ...
    def try_get_next_video_frame(self) -> typing.Optional[AppBroadcastStreamVideoFrame]: ...
    def add_audio_frame_arrived(self, value: winrt.windows.foundation.TypedEventHandler[AppBroadcastStreamReader, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_audio_frame_arrived(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_video_frame_arrived(self, value: winrt.windows.foundation.TypedEventHandler[AppBroadcastStreamReader, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_video_frame_arrived(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def audio_aac_sequence(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def audio_bitrate(self) -> winrt.system.UInt32: ...
    @_property
    def audio_channels(self) -> winrt.system.UInt32: ...
    @_property
    def audio_sample_rate(self) -> winrt.system.UInt32: ...
    @_property
    def video_bitrate(self) -> winrt.system.UInt32: ...
    @_property
    def video_height(self) -> winrt.system.UInt32: ...
    @_property
    def video_width(self) -> winrt.system.UInt32: ...

@typing.final
class AppBroadcastStreamStateChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastStreamStateChangedEventArgs: ...
    @_property
    def stream_state(self) -> AppBroadcastStreamState: ...

@typing.final
class AppBroadcastStreamVideoFrame(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastStreamVideoFrame: ...
    @_property
    def video_buffer(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def video_header(self) -> typing.Optional[AppBroadcastStreamVideoHeader]: ...

@typing.final
class AppBroadcastStreamVideoHeader(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastStreamVideoHeader: ...
    @_property
    def absolute_timestamp(self) -> datetime.datetime: ...
    @_property
    def duration(self) -> datetime.timedelta: ...
    @_property
    def frame_id(self) -> winrt.system.UInt64: ...
    @_property
    def has_discontinuity(self) -> bool: ...
    @_property
    def is_key_frame(self) -> bool: ...
    @_property
    def relative_timestamp(self) -> datetime.timedelta: ...

@typing.final
class AppBroadcastTriggerDetails(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastTriggerDetails: ...
    @_property
    def background_service(self) -> typing.Optional[AppBroadcastBackgroundService]: ...

@typing.final
class AppBroadcastViewerCountChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppBroadcastViewerCountChangedEventArgs: ...
    @_property
    def viewer_count(self) -> winrt.system.UInt32: ...

@typing.final
class AppCapture_Static(type):
    def get_for_current_view(cls) -> typing.Optional[AppCapture]: ...
    def set_allowed_async(cls, allowed: bool, /) -> winrt.windows.foundation.IAsyncAction: ...

@typing.final
class AppCapture(winrt.system.Object, metaclass=AppCapture_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppCapture: ...
    def add_capturing_changed(self, handler: winrt.windows.foundation.TypedEventHandler[AppCapture, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_capturing_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def is_capturing_audio(self) -> bool: ...
    @_property
    def is_capturing_video(self) -> bool: ...

@typing.final
class AppCaptureAlternateShortcutKeys(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppCaptureAlternateShortcutKeys: ...
    @_property
    def toggle_recording_key_modifiers(self) -> winrt.windows.system.VirtualKeyModifiers: ...
    @toggle_recording_key_modifiers.setter
    def toggle_recording_key_modifiers(self, value: winrt.windows.system.VirtualKeyModifiers) -> None: ...
    @_property
    def toggle_recording_key(self) -> winrt.windows.system.VirtualKey: ...
    @toggle_recording_key.setter
    def toggle_recording_key(self, value: winrt.windows.system.VirtualKey) -> None: ...
    @_property
    def toggle_recording_indicator_key_modifiers(self) -> winrt.windows.system.VirtualKeyModifiers: ...
    @toggle_recording_indicator_key_modifiers.setter
    def toggle_recording_indicator_key_modifiers(self, value: winrt.windows.system.VirtualKeyModifiers) -> None: ...
    @_property
    def toggle_recording_indicator_key(self) -> winrt.windows.system.VirtualKey: ...
    @toggle_recording_indicator_key.setter
    def toggle_recording_indicator_key(self, value: winrt.windows.system.VirtualKey) -> None: ...
    @_property
    def toggle_game_bar_key_modifiers(self) -> winrt.windows.system.VirtualKeyModifiers: ...
    @toggle_game_bar_key_modifiers.setter
    def toggle_game_bar_key_modifiers(self, value: winrt.windows.system.VirtualKeyModifiers) -> None: ...
    @_property
    def toggle_game_bar_key(self) -> winrt.windows.system.VirtualKey: ...
    @toggle_game_bar_key.setter
    def toggle_game_bar_key(self, value: winrt.windows.system.VirtualKey) -> None: ...
    @_property
    def take_screenshot_key_modifiers(self) -> winrt.windows.system.VirtualKeyModifiers: ...
    @take_screenshot_key_modifiers.setter
    def take_screenshot_key_modifiers(self, value: winrt.windows.system.VirtualKeyModifiers) -> None: ...
    @_property
    def take_screenshot_key(self) -> winrt.windows.system.VirtualKey: ...
    @take_screenshot_key.setter
    def take_screenshot_key(self, value: winrt.windows.system.VirtualKey) -> None: ...
    @_property
    def save_historical_video_key_modifiers(self) -> winrt.windows.system.VirtualKeyModifiers: ...
    @save_historical_video_key_modifiers.setter
    def save_historical_video_key_modifiers(self, value: winrt.windows.system.VirtualKeyModifiers) -> None: ...
    @_property
    def save_historical_video_key(self) -> winrt.windows.system.VirtualKey: ...
    @save_historical_video_key.setter
    def save_historical_video_key(self, value: winrt.windows.system.VirtualKey) -> None: ...
    @_property
    def toggle_microphone_capture_key_modifiers(self) -> winrt.windows.system.VirtualKeyModifiers: ...
    @toggle_microphone_capture_key_modifiers.setter
    def toggle_microphone_capture_key_modifiers(self, value: winrt.windows.system.VirtualKeyModifiers) -> None: ...
    @_property
    def toggle_microphone_capture_key(self) -> winrt.windows.system.VirtualKey: ...
    @toggle_microphone_capture_key.setter
    def toggle_microphone_capture_key(self, value: winrt.windows.system.VirtualKey) -> None: ...
    @_property
    def toggle_camera_capture_key_modifiers(self) -> winrt.windows.system.VirtualKeyModifiers: ...
    @toggle_camera_capture_key_modifiers.setter
    def toggle_camera_capture_key_modifiers(self, value: winrt.windows.system.VirtualKeyModifiers) -> None: ...
    @_property
    def toggle_camera_capture_key(self) -> winrt.windows.system.VirtualKey: ...
    @toggle_camera_capture_key.setter
    def toggle_camera_capture_key(self, value: winrt.windows.system.VirtualKey) -> None: ...
    @_property
    def toggle_broadcast_key_modifiers(self) -> winrt.windows.system.VirtualKeyModifiers: ...
    @toggle_broadcast_key_modifiers.setter
    def toggle_broadcast_key_modifiers(self, value: winrt.windows.system.VirtualKeyModifiers) -> None: ...
    @_property
    def toggle_broadcast_key(self) -> winrt.windows.system.VirtualKey: ...
    @toggle_broadcast_key.setter
    def toggle_broadcast_key(self, value: winrt.windows.system.VirtualKey) -> None: ...

@typing.final
class AppCaptureDurationGeneratedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppCaptureDurationGeneratedEventArgs: ...
    @_property
    def duration(self) -> datetime.timedelta: ...

@typing.final
class AppCaptureFileGeneratedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppCaptureFileGeneratedEventArgs: ...
    @_property
    def file(self) -> typing.Optional[winrt.windows.storage.StorageFile]: ...

@typing.final
class AppCaptureManager_Static(type):
    def apply_settings(cls, app_capture_settings: typing.Optional[AppCaptureSettings], /) -> None: ...
    def get_current_settings(cls) -> typing.Optional[AppCaptureSettings]: ...

@typing.final
class AppCaptureManager(winrt.system.Object, metaclass=AppCaptureManager_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppCaptureManager: ...

@typing.final
class AppCaptureMetadataWriter(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppCaptureMetadataWriter: ...
    def __new__(cls: typing.Type[AppCaptureMetadataWriter]) -> AppCaptureMetadataWriter:...
    def add_double_event(self, name: str, value: winrt.system.Double, priority: AppCaptureMetadataPriority, /) -> None: ...
    def add_int32_event(self, name: str, value: winrt.system.Int32, priority: AppCaptureMetadataPriority, /) -> None: ...
    def add_string_event(self, name: str, value: str, priority: AppCaptureMetadataPriority, /) -> None: ...
    def close(self) -> None: ...
    def start_double_state(self, name: str, value: winrt.system.Double, priority: AppCaptureMetadataPriority, /) -> None: ...
    def start_int32_state(self, name: str, value: winrt.system.Int32, priority: AppCaptureMetadataPriority, /) -> None: ...
    def start_string_state(self, name: str, value: str, priority: AppCaptureMetadataPriority, /) -> None: ...
    def stop_all_states(self) -> None: ...
    def stop_state(self, name: str, /) -> None: ...
    def add_metadata_purged(self, handler: winrt.windows.foundation.TypedEventHandler[AppCaptureMetadataWriter, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_metadata_purged(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def remaining_storage_bytes_available(self) -> winrt.system.UInt64: ...

@typing.final
class AppCaptureMicrophoneCaptureStateChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppCaptureMicrophoneCaptureStateChangedEventArgs: ...
    @_property
    def error_code(self) -> winrt.system.UInt32: ...
    @_property
    def state(self) -> AppCaptureMicrophoneCaptureState: ...

@typing.final
class AppCaptureRecordOperation(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppCaptureRecordOperation: ...
    def stop_recording(self) -> None: ...
    def add_duration_generated(self, value: winrt.windows.foundation.TypedEventHandler[AppCaptureRecordOperation, AppCaptureDurationGeneratedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_duration_generated(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_file_generated(self, value: winrt.windows.foundation.TypedEventHandler[AppCaptureRecordOperation, AppCaptureFileGeneratedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_file_generated(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_state_changed(self, value: winrt.windows.foundation.TypedEventHandler[AppCaptureRecordOperation, AppCaptureRecordingStateChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_state_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def duration(self) -> typing.Optional[typing.Optional[datetime.timedelta]]: ...
    @_property
    def error_code(self) -> typing.Optional[typing.Optional[winrt.system.UInt32]]: ...
    @_property
    def file(self) -> typing.Optional[winrt.windows.storage.StorageFile]: ...
    @_property
    def is_file_truncated(self) -> typing.Optional[typing.Optional[bool]]: ...
    @_property
    def state(self) -> AppCaptureRecordingState: ...

@typing.final
class AppCaptureRecordingStateChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppCaptureRecordingStateChangedEventArgs: ...
    @_property
    def error_code(self) -> winrt.system.UInt32: ...
    @_property
    def state(self) -> AppCaptureRecordingState: ...

@typing.final
class AppCaptureServices(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppCaptureServices: ...
    def record(self) -> typing.Optional[AppCaptureRecordOperation]: ...
    def record_time_span(self, start_time: datetime.datetime, duration: datetime.timedelta, /) -> typing.Optional[AppCaptureRecordOperation]: ...
    @_property
    def can_capture(self) -> bool: ...
    @_property
    def state(self) -> typing.Optional[AppCaptureState]: ...

@typing.final
class AppCaptureSettings(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppCaptureSettings: ...
    @_property
    def is_historical_capture_on_wireless_display_allowed(self) -> bool: ...
    @is_historical_capture_on_wireless_display_allowed.setter
    def is_historical_capture_on_wireless_display_allowed(self, value: bool) -> None: ...
    @_property
    def video_encoding_bitrate_mode(self) -> AppCaptureVideoEncodingBitrateMode: ...
    @video_encoding_bitrate_mode.setter
    def video_encoding_bitrate_mode(self, value: AppCaptureVideoEncodingBitrateMode) -> None: ...
    @_property
    def is_historical_capture_on_battery_allowed(self) -> bool: ...
    @is_historical_capture_on_battery_allowed.setter
    def is_historical_capture_on_battery_allowed(self, value: bool) -> None: ...
    @_property
    def is_audio_capture_enabled(self) -> bool: ...
    @is_audio_capture_enabled.setter
    def is_audio_capture_enabled(self, value: bool) -> None: ...
    @_property
    def is_app_capture_enabled(self) -> bool: ...
    @is_app_capture_enabled.setter
    def is_app_capture_enabled(self, value: bool) -> None: ...
    @_property
    def app_capture_destination_folder(self) -> typing.Optional[winrt.windows.storage.StorageFolder]: ...
    @app_capture_destination_folder.setter
    def app_capture_destination_folder(self, value: typing.Optional[winrt.windows.storage.StorageFolder]) -> None: ...
    @_property
    def historical_buffer_length(self) -> winrt.system.UInt32: ...
    @historical_buffer_length.setter
    def historical_buffer_length(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def is_historical_capture_enabled(self) -> bool: ...
    @is_historical_capture_enabled.setter
    def is_historical_capture_enabled(self, value: bool) -> None: ...
    @_property
    def custom_video_encoding_width(self) -> winrt.system.UInt32: ...
    @custom_video_encoding_width.setter
    def custom_video_encoding_width(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def custom_video_encoding_height(self) -> winrt.system.UInt32: ...
    @custom_video_encoding_height.setter
    def custom_video_encoding_height(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def custom_video_encoding_bitrate(self) -> winrt.system.UInt32: ...
    @custom_video_encoding_bitrate.setter
    def custom_video_encoding_bitrate(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def audio_encoding_bitrate(self) -> winrt.system.UInt32: ...
    @audio_encoding_bitrate.setter
    def audio_encoding_bitrate(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def historical_buffer_length_unit(self) -> AppCaptureHistoricalBufferLengthUnit: ...
    @historical_buffer_length_unit.setter
    def historical_buffer_length_unit(self, value: AppCaptureHistoricalBufferLengthUnit) -> None: ...
    @_property
    def video_encoding_resolution_mode(self) -> AppCaptureVideoEncodingResolutionMode: ...
    @video_encoding_resolution_mode.setter
    def video_encoding_resolution_mode(self, value: AppCaptureVideoEncodingResolutionMode) -> None: ...
    @_property
    def screenshot_destination_folder(self) -> typing.Optional[winrt.windows.storage.StorageFolder]: ...
    @screenshot_destination_folder.setter
    def screenshot_destination_folder(self, value: typing.Optional[winrt.windows.storage.StorageFolder]) -> None: ...
    @_property
    def maximum_record_length(self) -> datetime.timedelta: ...
    @maximum_record_length.setter
    def maximum_record_length(self, value: datetime.timedelta) -> None: ...
    @_property
    def has_hardware_encoder(self) -> bool: ...
    @_property
    def is_cpu_constrained(self) -> bool: ...
    @_property
    def is_memory_constrained(self) -> bool: ...
    @_property
    def is_disabled_by_policy(self) -> bool: ...
    @_property
    def alternate_shortcut_keys(self) -> typing.Optional[AppCaptureAlternateShortcutKeys]: ...
    @_property
    def is_gpu_constrained(self) -> bool: ...
    @_property
    def is_microphone_capture_enabled(self) -> bool: ...
    @is_microphone_capture_enabled.setter
    def is_microphone_capture_enabled(self, value: bool) -> None: ...
    @_property
    def video_encoding_frame_rate_mode(self) -> AppCaptureVideoEncodingFrameRateMode: ...
    @video_encoding_frame_rate_mode.setter
    def video_encoding_frame_rate_mode(self, value: AppCaptureVideoEncodingFrameRateMode) -> None: ...
    @_property
    def system_audio_gain(self) -> winrt.system.Double: ...
    @system_audio_gain.setter
    def system_audio_gain(self, value: winrt.system.Double) -> None: ...
    @_property
    def microphone_gain(self) -> winrt.system.Double: ...
    @microphone_gain.setter
    def microphone_gain(self, value: winrt.system.Double) -> None: ...
    @_property
    def is_microphone_capture_enabled_by_default(self) -> bool: ...
    @is_microphone_capture_enabled_by_default.setter
    def is_microphone_capture_enabled_by_default(self, value: bool) -> None: ...
    @_property
    def is_echo_cancellation_enabled(self) -> bool: ...
    @is_echo_cancellation_enabled.setter
    def is_echo_cancellation_enabled(self, value: bool) -> None: ...
    @_property
    def is_cursor_image_capture_enabled(self) -> bool: ...
    @is_cursor_image_capture_enabled.setter
    def is_cursor_image_capture_enabled(self, value: bool) -> None: ...

@typing.final
class AppCaptureState(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppCaptureState: ...
    def restart_microphone_capture(self) -> None: ...
    def add_capture_target_closed(self, value: winrt.windows.foundation.TypedEventHandler[AppCaptureState, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_capture_target_closed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_microphone_capture_state_changed(self, value: winrt.windows.foundation.TypedEventHandler[AppCaptureState, AppCaptureMicrophoneCaptureStateChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_microphone_capture_state_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def should_capture_microphone(self) -> bool: ...
    @should_capture_microphone.setter
    def should_capture_microphone(self, value: bool) -> None: ...
    @_property
    def is_historical_capture_enabled(self) -> bool: ...
    @_property
    def is_target_running(self) -> bool: ...
    @_property
    def microphone_capture_error(self) -> winrt.system.UInt32: ...
    @_property
    def microphone_capture_state(self) -> AppCaptureMicrophoneCaptureState: ...

@typing.final
class CameraCaptureUI(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CameraCaptureUI: ...
    def __new__(cls: typing.Type[CameraCaptureUI]) -> CameraCaptureUI:...
    def capture_file_async(self, mode: CameraCaptureUIMode, /) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.storage.StorageFile]: ...
    @_property
    def photo_settings(self) -> typing.Optional[CameraCaptureUIPhotoCaptureSettings]: ...
    @_property
    def video_settings(self) -> typing.Optional[CameraCaptureUIVideoCaptureSettings]: ...

@typing.final
class CameraCaptureUIPhotoCaptureSettings(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CameraCaptureUIPhotoCaptureSettings: ...
    @_property
    def max_resolution(self) -> CameraCaptureUIMaxPhotoResolution: ...
    @max_resolution.setter
    def max_resolution(self, value: CameraCaptureUIMaxPhotoResolution) -> None: ...
    @_property
    def format(self) -> CameraCaptureUIPhotoFormat: ...
    @format.setter
    def format(self, value: CameraCaptureUIPhotoFormat) -> None: ...
    @_property
    def cropped_size_in_pixels(self) -> winrt.windows.foundation.Size: ...
    @cropped_size_in_pixels.setter
    def cropped_size_in_pixels(self, value: winrt.windows.foundation.Size) -> None: ...
    @_property
    def cropped_aspect_ratio(self) -> winrt.windows.foundation.Size: ...
    @cropped_aspect_ratio.setter
    def cropped_aspect_ratio(self, value: winrt.windows.foundation.Size) -> None: ...
    @_property
    def allow_cropping(self) -> bool: ...
    @allow_cropping.setter
    def allow_cropping(self, value: bool) -> None: ...

@typing.final
class CameraCaptureUIVideoCaptureSettings(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CameraCaptureUIVideoCaptureSettings: ...
    @_property
    def max_resolution(self) -> CameraCaptureUIMaxVideoResolution: ...
    @max_resolution.setter
    def max_resolution(self, value: CameraCaptureUIMaxVideoResolution) -> None: ...
    @_property
    def max_duration_in_seconds(self) -> winrt.system.Single: ...
    @max_duration_in_seconds.setter
    def max_duration_in_seconds(self, value: winrt.system.Single) -> None: ...
    @_property
    def format(self) -> CameraCaptureUIVideoFormat: ...
    @format.setter
    def format(self, value: CameraCaptureUIVideoFormat) -> None: ...
    @_property
    def allow_trimming(self) -> bool: ...
    @allow_trimming.setter
    def allow_trimming(self, value: bool) -> None: ...

@typing.final
class CameraOptionsUI_Static(type):
    def show(cls, media_capture: typing.Optional[MediaCapture], /) -> None: ...

@typing.final
class CameraOptionsUI(winrt.system.Object, metaclass=CameraOptionsUI_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CameraOptionsUI: ...

@typing.final
class CapturedFrame(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CapturedFrame: ...
    def clone_stream(self) -> typing.Optional[winrt.windows.storage.streams.IRandomAccessStream]: ...
    def close(self) -> None: ...
    def flush_async(self) -> winrt.windows.foundation.IAsyncOperation[bool]: ...
    def get_input_stream_at(self, position: winrt.system.UInt64, /) -> typing.Optional[winrt.windows.storage.streams.IInputStream]: ...
    def get_output_stream_at(self, position: winrt.system.UInt64, /) -> typing.Optional[winrt.windows.storage.streams.IOutputStream]: ...
    def read_async(self, buffer: typing.Optional[winrt.windows.storage.streams.IBuffer], count: winrt.system.UInt32, options: winrt.windows.storage.streams.InputStreamOptions, /) -> winrt.windows.foundation.IAsyncOperationWithProgress[winrt.windows.storage.streams.IBuffer, winrt.system.UInt32]: ...
    def seek(self, position: winrt.system.UInt64, /) -> None: ...
    def write_async(self, buffer: typing.Optional[winrt.windows.storage.streams.IBuffer], /) -> winrt.windows.foundation.IAsyncOperationWithProgress[winrt.system.UInt32, winrt.system.UInt32]: ...
    @_property
    def height(self) -> winrt.system.UInt32: ...
    @_property
    def width(self) -> winrt.system.UInt32: ...
    @_property
    def bitmap_properties(self) -> typing.Optional[winrt.windows.graphics.imaging.BitmapPropertySet]: ...
    @_property
    def control_values(self) -> typing.Optional[CapturedFrameControlValues]: ...
    @_property
    def software_bitmap(self) -> typing.Optional[winrt.windows.graphics.imaging.SoftwareBitmap]: ...
    @_property
    def content_type(self) -> str: ...
    @_property
    def size(self) -> winrt.system.UInt64: ...
    @size.setter
    def size(self, value: winrt.system.UInt64) -> None: ...
    @_property
    def can_read(self) -> bool: ...
    @_property
    def can_write(self) -> bool: ...
    @_property
    def position(self) -> winrt.system.UInt64: ...

@typing.final
class CapturedFrameControlValues(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CapturedFrameControlValues: ...
    @_property
    def exposure(self) -> typing.Optional[typing.Optional[datetime.timedelta]]: ...
    @_property
    def exposure_compensation(self) -> typing.Optional[typing.Optional[winrt.system.Single]]: ...
    @_property
    def flash_power_percent(self) -> typing.Optional[typing.Optional[winrt.system.Single]]: ...
    @_property
    def flashed(self) -> typing.Optional[typing.Optional[bool]]: ...
    @_property
    def focus(self) -> typing.Optional[typing.Optional[winrt.system.UInt32]]: ...
    @_property
    def iso_speed(self) -> typing.Optional[typing.Optional[winrt.system.UInt32]]: ...
    @_property
    def scene_mode(self) -> typing.Optional[typing.Optional[winrt.windows.media.devices.CaptureSceneMode]]: ...
    @_property
    def white_balance(self) -> typing.Optional[typing.Optional[winrt.system.UInt32]]: ...
    @_property
    def zoom_factor(self) -> typing.Optional[typing.Optional[winrt.system.Single]]: ...
    @_property
    def focus_state(self) -> typing.Optional[typing.Optional[winrt.windows.media.devices.MediaCaptureFocusState]]: ...
    @_property
    def iso_analog_gain(self) -> typing.Optional[typing.Optional[winrt.system.Double]]: ...
    @_property
    def iso_digital_gain(self) -> typing.Optional[typing.Optional[winrt.system.Double]]: ...
    @_property
    def sensor_frame_rate(self) -> typing.Optional[winrt.windows.media.mediaproperties.MediaRatio]: ...
    @_property
    def white_balance_gain(self) -> typing.Optional[typing.Optional[WhiteBalanceGain]]: ...

@typing.final
class CapturedPhoto(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CapturedPhoto: ...
    @_property
    def frame(self) -> typing.Optional[CapturedFrame]: ...
    @_property
    def thumbnail(self) -> typing.Optional[CapturedFrame]: ...

@typing.final
class GameBarServices(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> GameBarServices: ...
    def disable_capture(self) -> None: ...
    def enable_capture(self) -> None: ...
    def add_command_received(self, value: winrt.windows.foundation.TypedEventHandler[GameBarServices, GameBarServicesCommandEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_command_received(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def app_broadcast_services(self) -> typing.Optional[AppBroadcastServices]: ...
    @_property
    def app_capture_services(self) -> typing.Optional[AppCaptureServices]: ...
    @_property
    def session_id(self) -> str: ...
    @_property
    def target_capture_policy(self) -> GameBarTargetCapturePolicy: ...
    @_property
    def target_info(self) -> typing.Optional[GameBarServicesTargetInfo]: ...

@typing.final
class GameBarServicesCommandEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> GameBarServicesCommandEventArgs: ...
    @_property
    def command(self) -> GameBarCommand: ...
    @_property
    def origin(self) -> GameBarCommandOrigin: ...

@typing.final
class GameBarServicesManager_Static(type):
    def get_default(cls) -> typing.Optional[GameBarServicesManager]: ...

@typing.final
class GameBarServicesManager(winrt.system.Object, metaclass=GameBarServicesManager_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> GameBarServicesManager: ...
    def add_game_bar_services_created(self, value: winrt.windows.foundation.TypedEventHandler[GameBarServicesManager, GameBarServicesManagerGameBarServicesCreatedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_game_bar_services_created(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...

@typing.final
class GameBarServicesManagerGameBarServicesCreatedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> GameBarServicesManagerGameBarServicesCreatedEventArgs: ...
    @_property
    def game_bar_services(self) -> typing.Optional[GameBarServices]: ...

@typing.final
class GameBarServicesTargetInfo(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> GameBarServicesTargetInfo: ...
    @_property
    def app_id(self) -> str: ...
    @_property
    def display_mode(self) -> GameBarServicesDisplayMode: ...
    @_property
    def display_name(self) -> str: ...
    @_property
    def title_id(self) -> str: ...

@typing.final
class LowLagMediaRecording(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> LowLagMediaRecording: ...
    def finish_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def pause_async(self, behavior: winrt.windows.media.devices.MediaCapturePauseBehavior, /) -> winrt.windows.foundation.IAsyncAction: ...
    def pause_with_result_async(self, behavior: winrt.windows.media.devices.MediaCapturePauseBehavior, /) -> winrt.windows.foundation.IAsyncOperation[MediaCapturePauseResult]: ...
    def resume_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def start_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def stop_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def stop_with_result_async(self) -> winrt.windows.foundation.IAsyncOperation[MediaCaptureStopResult]: ...

@typing.final
class LowLagPhotoCapture(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> LowLagPhotoCapture: ...
    def capture_async(self) -> winrt.windows.foundation.IAsyncOperation[CapturedPhoto]: ...
    def finish_async(self) -> winrt.windows.foundation.IAsyncAction: ...

@typing.final
class LowLagPhotoSequenceCapture(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> LowLagPhotoSequenceCapture: ...
    def finish_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def start_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def stop_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def add_photo_captured(self, handler: winrt.windows.foundation.TypedEventHandler[LowLagPhotoSequenceCapture, PhotoCapturedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_photo_captured(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...

@typing.final
class MediaCapture_Static(type):
    def find_all_video_profiles(cls, video_device_id: str, /) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[MediaCaptureVideoProfile]]: ...
    def find_concurrent_profiles(cls, video_device_id: str, /) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[MediaCaptureVideoProfile]]: ...
    def find_known_video_profiles(cls, video_device_id: str, name: KnownVideoProfile, /) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[MediaCaptureVideoProfile]]: ...
    def is_video_profile_supported(cls, video_device_id: str, /) -> bool: ...

@typing.final
class MediaCapture(winrt.system.Object, metaclass=MediaCapture_Static):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> MediaCapture: ...
    def __new__(cls: typing.Type[MediaCapture]) -> MediaCapture:...
    def add_audio_effect_async(self, definition: typing.Optional[winrt.windows.media.effects.IAudioEffectDefinition], /) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.media.IMediaExtension]: ...
    def add_effect_async(self, media_stream_type: MediaStreamType, effect_activation_i_d: str, effect_settings: typing.Optional[winrt.windows.foundation.collections.IPropertySet], /) -> winrt.windows.foundation.IAsyncAction: ...
    def add_video_effect_async(self, definition: typing.Optional[winrt.windows.media.effects.IVideoEffectDefinition], media_stream_type: MediaStreamType, /) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.media.IMediaExtension]: ...
    def capture_photo_to_storage_file_async(self, type: typing.Optional[winrt.windows.media.mediaproperties.ImageEncodingProperties], file: typing.Optional[winrt.windows.storage.IStorageFile], /) -> winrt.windows.foundation.IAsyncAction: ...
    def capture_photo_to_stream_async(self, type: typing.Optional[winrt.windows.media.mediaproperties.ImageEncodingProperties], stream: typing.Optional[winrt.windows.storage.streams.IRandomAccessStream], /) -> winrt.windows.foundation.IAsyncAction: ...
    def clear_effects_async(self, media_stream_type: MediaStreamType, /) -> winrt.windows.foundation.IAsyncAction: ...
    def close(self) -> None: ...
    @typing.overload
    def create_frame_reader_async(self, input_source: typing.Optional[winrt.windows.media.capture.frames.MediaFrameSource], /) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.media.capture.frames.MediaFrameReader]: ...
    @typing.overload
    def create_frame_reader_async(self, input_source: typing.Optional[winrt.windows.media.capture.frames.MediaFrameSource], output_subtype: str, /) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.media.capture.frames.MediaFrameReader]: ...
    @typing.overload
    def create_frame_reader_async(self, input_source: typing.Optional[winrt.windows.media.capture.frames.MediaFrameSource], output_subtype: str, output_size: winrt.windows.graphics.imaging.BitmapSize, /) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.media.capture.frames.MediaFrameReader]: ...
    def create_multi_source_frame_reader_async(self, input_sources: typing.Iterable[winrt.windows.media.capture.frames.MediaFrameSource], /) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.media.capture.frames.MultiSourceMediaFrameReader]: ...
    def create_relative_panel_watcher(self, capture_mode: StreamingCaptureMode, display_region: typing.Optional[winrt.windows.ui.windowmanagement.DisplayRegion], /) -> typing.Optional[MediaCaptureRelativePanelWatcher]: ...
    def get_encoder_property(self, media_stream_type: MediaStreamType, property_id: _uuid.UUID, /) -> typing.Optional[winrt.system.Object]: ...
    @typing.overload
    def get_preview_frame_async(self) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.media.VideoFrame]: ...
    @typing.overload
    def get_preview_frame_async(self, destination: typing.Optional[winrt.windows.media.VideoFrame], /) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.media.VideoFrame]: ...
    def get_preview_mirroring(self) -> bool: ...
    def get_preview_rotation(self) -> VideoRotation: ...
    def get_record_rotation(self) -> VideoRotation: ...
    @typing.overload
    def initialize_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def initialize_async(self, media_capture_initialization_settings: typing.Optional[MediaCaptureInitializationSettings], /) -> winrt.windows.foundation.IAsyncAction: ...
    def pause_record_async(self, behavior: winrt.windows.media.devices.MediaCapturePauseBehavior, /) -> winrt.windows.foundation.IAsyncAction: ...
    def pause_record_with_result_async(self, behavior: winrt.windows.media.devices.MediaCapturePauseBehavior, /) -> winrt.windows.foundation.IAsyncOperation[MediaCapturePauseResult]: ...
    def prepare_advanced_photo_capture_async(self, encoding_properties: typing.Optional[winrt.windows.media.mediaproperties.ImageEncodingProperties], /) -> winrt.windows.foundation.IAsyncOperation[AdvancedPhotoCapture]: ...
    def prepare_low_lag_photo_capture_async(self, type: typing.Optional[winrt.windows.media.mediaproperties.ImageEncodingProperties], /) -> winrt.windows.foundation.IAsyncOperation[LowLagPhotoCapture]: ...
    def prepare_low_lag_photo_sequence_capture_async(self, type: typing.Optional[winrt.windows.media.mediaproperties.ImageEncodingProperties], /) -> winrt.windows.foundation.IAsyncOperation[LowLagPhotoSequenceCapture]: ...
    @typing.overload
    def prepare_low_lag_record_to_custom_sink_async(self, encoding_profile: typing.Optional[winrt.windows.media.mediaproperties.MediaEncodingProfile], custom_media_sink: typing.Optional[winrt.windows.media.IMediaExtension], /) -> winrt.windows.foundation.IAsyncOperation[LowLagMediaRecording]: ...
    @typing.overload
    def prepare_low_lag_record_to_custom_sink_async(self, encoding_profile: typing.Optional[winrt.windows.media.mediaproperties.MediaEncodingProfile], custom_sink_activation_id: str, custom_sink_settings: typing.Optional[winrt.windows.foundation.collections.IPropertySet], /) -> winrt.windows.foundation.IAsyncOperation[LowLagMediaRecording]: ...
    def prepare_low_lag_record_to_storage_file_async(self, encoding_profile: typing.Optional[winrt.windows.media.mediaproperties.MediaEncodingProfile], file: typing.Optional[winrt.windows.storage.IStorageFile], /) -> winrt.windows.foundation.IAsyncOperation[LowLagMediaRecording]: ...
    def prepare_low_lag_record_to_stream_async(self, encoding_profile: typing.Optional[winrt.windows.media.mediaproperties.MediaEncodingProfile], stream: typing.Optional[winrt.windows.storage.streams.IRandomAccessStream], /) -> winrt.windows.foundation.IAsyncOperation[LowLagMediaRecording]: ...
    def prepare_variable_photo_sequence_capture_async(self, type: typing.Optional[winrt.windows.media.mediaproperties.ImageEncodingProperties], /) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.media.capture.core.VariablePhotoSequenceCapture]: ...
    def remove_effect_async(self, effect: typing.Optional[winrt.windows.media.IMediaExtension], /) -> winrt.windows.foundation.IAsyncAction: ...
    def resume_record_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def set_encoder_property(self, media_stream_type: MediaStreamType, property_id: _uuid.UUID, property_value: typing.Optional[winrt.system.Object], /) -> None: ...
    def set_encoding_properties_async(self, media_stream_type: MediaStreamType, media_encoding_properties: typing.Optional[winrt.windows.media.mediaproperties.IMediaEncodingProperties], encoder_properties: typing.Optional[winrt.windows.media.mediaproperties.MediaPropertySet], /) -> winrt.windows.foundation.IAsyncAction: ...
    def set_preview_mirroring(self, value: bool, /) -> None: ...
    def set_preview_rotation(self, value: VideoRotation, /) -> None: ...
    def set_record_rotation(self, value: VideoRotation, /) -> None: ...
    def start_preview_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def start_preview_to_custom_sink_async(self, encoding_profile: typing.Optional[winrt.windows.media.mediaproperties.MediaEncodingProfile], custom_media_sink: typing.Optional[winrt.windows.media.IMediaExtension], /) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def start_preview_to_custom_sink_async(self, encoding_profile: typing.Optional[winrt.windows.media.mediaproperties.MediaEncodingProfile], custom_sink_activation_id: str, custom_sink_settings: typing.Optional[winrt.windows.foundation.collections.IPropertySet], /) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def start_record_to_custom_sink_async(self, encoding_profile: typing.Optional[winrt.windows.media.mediaproperties.MediaEncodingProfile], custom_media_sink: typing.Optional[winrt.windows.media.IMediaExtension], /) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def start_record_to_custom_sink_async(self, encoding_profile: typing.Optional[winrt.windows.media.mediaproperties.MediaEncodingProfile], custom_sink_activation_id: str, custom_sink_settings: typing.Optional[winrt.windows.foundation.collections.IPropertySet], /) -> winrt.windows.foundation.IAsyncAction: ...
    def start_record_to_storage_file_async(self, encoding_profile: typing.Optional[winrt.windows.media.mediaproperties.MediaEncodingProfile], file: typing.Optional[winrt.windows.storage.IStorageFile], /) -> winrt.windows.foundation.IAsyncAction: ...
    def start_record_to_stream_async(self, encoding_profile: typing.Optional[winrt.windows.media.mediaproperties.MediaEncodingProfile], stream: typing.Optional[winrt.windows.storage.streams.IRandomAccessStream], /) -> winrt.windows.foundation.IAsyncAction: ...
    def stop_preview_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def stop_record_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def stop_record_with_result_async(self) -> winrt.windows.foundation.IAsyncOperation[MediaCaptureStopResult]: ...
    def add_failed(self, error_event_handler: typing.Optional[MediaCaptureFailedEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_failed(self, event_cookie: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_record_limitation_exceeded(self, record_limitation_exceeded_event_handler: typing.Optional[RecordLimitationExceededEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_record_limitation_exceeded(self, event_cookie: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_focus_changed(self, handler: winrt.windows.foundation.TypedEventHandler[MediaCapture, MediaCaptureFocusChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_focus_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_photo_confirmation_captured(self, handler: winrt.windows.foundation.TypedEventHandler[MediaCapture, PhotoConfirmationCapturedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_photo_confirmation_captured(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_camera_stream_state_changed(self, handler: winrt.windows.foundation.TypedEventHandler[MediaCapture, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_camera_stream_state_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_thermal_status_changed(self, handler: winrt.windows.foundation.TypedEventHandler[MediaCapture, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_thermal_status_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_capture_device_exclusive_control_status_changed(self, handler: winrt.windows.foundation.TypedEventHandler[MediaCapture, MediaCaptureDeviceExclusiveControlStatusChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_capture_device_exclusive_control_status_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def audio_device_controller(self) -> typing.Optional[winrt.windows.media.devices.AudioDeviceController]: ...
    @_property
    def media_capture_settings(self) -> typing.Optional[MediaCaptureSettings]: ...
    @_property
    def video_device_controller(self) -> typing.Optional[winrt.windows.media.devices.VideoDeviceController]: ...
    @_property
    def camera_stream_state(self) -> winrt.windows.media.devices.CameraStreamState: ...
    @_property
    def thermal_status(self) -> MediaCaptureThermalStatus: ...
    @_property
    def frame_sources(self) -> typing.Optional[winrt.windows.foundation.collections.IMapView[str, winrt.windows.media.capture.frames.MediaFrameSource]]: ...

@typing.final
class MediaCaptureDeviceExclusiveControlStatusChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> MediaCaptureDeviceExclusiveControlStatusChangedEventArgs: ...
    @_property
    def device_id(self) -> str: ...
    @_property
    def status(self) -> MediaCaptureDeviceExclusiveControlStatus: ...

@typing.final
class MediaCaptureFailedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> MediaCaptureFailedEventArgs: ...
    @_property
    def code(self) -> winrt.system.UInt32: ...
    @_property
    def message(self) -> str: ...

@typing.final
class MediaCaptureFocusChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> MediaCaptureFocusChangedEventArgs: ...
    @_property
    def focus_state(self) -> winrt.windows.media.devices.MediaCaptureFocusState: ...

@typing.final
class MediaCaptureInitializationSettings(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> MediaCaptureInitializationSettings: ...
    def __new__(cls: typing.Type[MediaCaptureInitializationSettings]) -> MediaCaptureInitializationSettings:...
    @_property
    def video_device_id(self) -> str: ...
    @video_device_id.setter
    def video_device_id(self, value: str) -> None: ...
    @_property
    def streaming_capture_mode(self) -> StreamingCaptureMode: ...
    @streaming_capture_mode.setter
    def streaming_capture_mode(self, value: StreamingCaptureMode) -> None: ...
    @_property
    def photo_capture_source(self) -> PhotoCaptureSource: ...
    @photo_capture_source.setter
    def photo_capture_source(self, value: PhotoCaptureSource) -> None: ...
    @_property
    def audio_device_id(self) -> str: ...
    @audio_device_id.setter
    def audio_device_id(self, value: str) -> None: ...
    @_property
    def media_category(self) -> MediaCategory: ...
    @media_category.setter
    def media_category(self, value: MediaCategory) -> None: ...
    @_property
    def audio_processing(self) -> winrt.windows.media.AudioProcessing: ...
    @audio_processing.setter
    def audio_processing(self, value: winrt.windows.media.AudioProcessing) -> None: ...
    @_property
    def video_source(self) -> typing.Optional[winrt.windows.media.core.IMediaSource]: ...
    @video_source.setter
    def video_source(self, value: typing.Optional[winrt.windows.media.core.IMediaSource]) -> None: ...
    @_property
    def audio_source(self) -> typing.Optional[winrt.windows.media.core.IMediaSource]: ...
    @audio_source.setter
    def audio_source(self, value: typing.Optional[winrt.windows.media.core.IMediaSource]) -> None: ...
    @_property
    def video_profile(self) -> typing.Optional[MediaCaptureVideoProfile]: ...
    @video_profile.setter
    def video_profile(self, value: typing.Optional[MediaCaptureVideoProfile]) -> None: ...
    @_property
    def record_media_description(self) -> typing.Optional[MediaCaptureVideoProfileMediaDescription]: ...
    @record_media_description.setter
    def record_media_description(self, value: typing.Optional[MediaCaptureVideoProfileMediaDescription]) -> None: ...
    @_property
    def preview_media_description(self) -> typing.Optional[MediaCaptureVideoProfileMediaDescription]: ...
    @preview_media_description.setter
    def preview_media_description(self, value: typing.Optional[MediaCaptureVideoProfileMediaDescription]) -> None: ...
    @_property
    def photo_media_description(self) -> typing.Optional[MediaCaptureVideoProfileMediaDescription]: ...
    @photo_media_description.setter
    def photo_media_description(self, value: typing.Optional[MediaCaptureVideoProfileMediaDescription]) -> None: ...
    @_property
    def source_group(self) -> typing.Optional[winrt.windows.media.capture.frames.MediaFrameSourceGroup]: ...
    @source_group.setter
    def source_group(self, value: typing.Optional[winrt.windows.media.capture.frames.MediaFrameSourceGroup]) -> None: ...
    @_property
    def sharing_mode(self) -> MediaCaptureSharingMode: ...
    @sharing_mode.setter
    def sharing_mode(self, value: MediaCaptureSharingMode) -> None: ...
    @_property
    def memory_preference(self) -> MediaCaptureMemoryPreference: ...
    @memory_preference.setter
    def memory_preference(self, value: MediaCaptureMemoryPreference) -> None: ...
    @_property
    def always_play_system_shutter_sound(self) -> bool: ...
    @always_play_system_shutter_sound.setter
    def always_play_system_shutter_sound(self, value: bool) -> None: ...
    @_property
    def device_uri_password_credential(self) -> typing.Optional[winrt.windows.security.credentials.PasswordCredential]: ...
    @device_uri_password_credential.setter
    def device_uri_password_credential(self, value: typing.Optional[winrt.windows.security.credentials.PasswordCredential]) -> None: ...
    @_property
    def device_uri(self) -> typing.Optional[winrt.windows.foundation.Uri]: ...
    @device_uri.setter
    def device_uri(self, value: typing.Optional[winrt.windows.foundation.Uri]) -> None: ...

@typing.final
class MediaCapturePauseResult(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> MediaCapturePauseResult: ...
    def close(self) -> None: ...
    @_property
    def last_frame(self) -> typing.Optional[winrt.windows.media.VideoFrame]: ...
    @_property
    def record_duration(self) -> datetime.timedelta: ...

@typing.final
class MediaCaptureRelativePanelWatcher(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> MediaCaptureRelativePanelWatcher: ...
    def close(self) -> None: ...
    def start(self) -> None: ...
    def stop(self) -> None: ...
    def add_changed(self, handler: winrt.windows.foundation.TypedEventHandler[MediaCaptureRelativePanelWatcher, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def relative_panel(self) -> winrt.windows.devices.enumeration.Panel: ...

@typing.final
class MediaCaptureSettings(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> MediaCaptureSettings: ...
    @_property
    def audio_device_id(self) -> str: ...
    @_property
    def photo_capture_source(self) -> PhotoCaptureSource: ...
    @_property
    def streaming_capture_mode(self) -> StreamingCaptureMode: ...
    @_property
    def video_device_characteristic(self) -> VideoDeviceCharacteristic: ...
    @_property
    def video_device_id(self) -> str: ...
    @_property
    def audio_processing(self) -> winrt.windows.media.AudioProcessing: ...
    @_property
    def camera_sound_required_for_region(self) -> bool: ...
    @_property
    def concurrent_record_and_photo_sequence_supported(self) -> bool: ...
    @_property
    def concurrent_record_and_photo_supported(self) -> bool: ...
    @_property
    def horizontal35mm_equivalent_focal_length(self) -> typing.Optional[typing.Optional[winrt.system.UInt32]]: ...
    @_property
    def media_category(self) -> MediaCategory: ...
    @_property
    def pitch_offset_degrees(self) -> typing.Optional[typing.Optional[winrt.system.Int32]]: ...
    @_property
    def vertical35mm_equivalent_focal_length(self) -> typing.Optional[typing.Optional[winrt.system.UInt32]]: ...
    @_property
    def direct3_d11_device(self) -> typing.Optional[winrt.windows.graphics.directx.direct3d11.IDirect3DDevice]: ...

@typing.final
class MediaCaptureStopResult(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> MediaCaptureStopResult: ...
    def close(self) -> None: ...
    @_property
    def last_frame(self) -> typing.Optional[winrt.windows.media.VideoFrame]: ...
    @_property
    def record_duration(self) -> datetime.timedelta: ...

@typing.final
class MediaCaptureVideoProfile(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> MediaCaptureVideoProfile: ...
    def get_concurrency(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[MediaCaptureVideoProfile]]: ...
    @_property
    def id(self) -> str: ...
    @_property
    def supported_photo_media_description(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[MediaCaptureVideoProfileMediaDescription]]: ...
    @_property
    def supported_preview_media_description(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[MediaCaptureVideoProfileMediaDescription]]: ...
    @_property
    def supported_record_media_description(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[MediaCaptureVideoProfileMediaDescription]]: ...
    @_property
    def video_device_id(self) -> str: ...
    @_property
    def frame_source_infos(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[winrt.windows.media.capture.frames.MediaFrameSourceInfo]]: ...
    @_property
    def properties(self) -> typing.Optional[winrt.windows.foundation.collections.IMapView[_uuid.UUID, winrt.system.Object]]: ...

@typing.final
class MediaCaptureVideoProfileMediaDescription(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> MediaCaptureVideoProfileMediaDescription: ...
    @_property
    def frame_rate(self) -> winrt.system.Double: ...
    @_property
    def height(self) -> winrt.system.UInt32: ...
    @_property
    def is_hdr_video_supported(self) -> bool: ...
    @_property
    def is_variable_photo_sequence_supported(self) -> bool: ...
    @_property
    def width(self) -> winrt.system.UInt32: ...
    @_property
    def properties(self) -> typing.Optional[winrt.windows.foundation.collections.IMapView[_uuid.UUID, winrt.system.Object]]: ...
    @_property
    def subtype(self) -> str: ...

@typing.final
class OptionalReferencePhotoCapturedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> OptionalReferencePhotoCapturedEventArgs: ...
    @_property
    def context(self) -> typing.Optional[winrt.system.Object]: ...
    @_property
    def frame(self) -> typing.Optional[CapturedFrame]: ...

@typing.final
class PhotoCapturedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoCapturedEventArgs: ...
    @_property
    def capture_time_offset(self) -> datetime.timedelta: ...
    @_property
    def frame(self) -> typing.Optional[CapturedFrame]: ...
    @_property
    def thumbnail(self) -> typing.Optional[CapturedFrame]: ...

@typing.final
class PhotoConfirmationCapturedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PhotoConfirmationCapturedEventArgs: ...
    @_property
    def capture_time_offset(self) -> datetime.timedelta: ...
    @_property
    def frame(self) -> typing.Optional[CapturedFrame]: ...

@typing.final
class ScreenCapture_Static(type):
    def get_for_current_view(cls) -> typing.Optional[ScreenCapture]: ...

@typing.final
class ScreenCapture(winrt.system.Object, metaclass=ScreenCapture_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> ScreenCapture: ...
    def add_source_suspension_changed(self, handler: winrt.windows.foundation.TypedEventHandler[ScreenCapture, SourceSuspensionChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_source_suspension_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def audio_source(self) -> typing.Optional[winrt.windows.media.core.IMediaSource]: ...
    @_property
    def is_audio_suspended(self) -> bool: ...
    @_property
    def is_video_suspended(self) -> bool: ...
    @_property
    def video_source(self) -> typing.Optional[winrt.windows.media.core.IMediaSource]: ...

@typing.final
class SourceSuspensionChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SourceSuspensionChangedEventArgs: ...
    @_property
    def is_audio_suspended(self) -> bool: ...
    @_property
    def is_video_suspended(self) -> bool: ...

@typing.final
class VideoStreamConfiguration(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> VideoStreamConfiguration: ...
    @_property
    def input_properties(self) -> typing.Optional[winrt.windows.media.mediaproperties.VideoEncodingProperties]: ...
    @_property
    def output_properties(self) -> typing.Optional[winrt.windows.media.mediaproperties.VideoEncodingProperties]: ...

