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

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.devices.enumeration as windows_devices_enumeration
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.media.capture as windows_media_capture
import winrt.windows.media.devices.core as windows_media_devices_core
import winrt.windows.media.effects as windows_media_effects
import winrt.windows.media.mediaproperties as windows_media_mediaproperties
import winrt.windows.storage.streams as windows_storage_streams

from winrt.windows.media.devices import AdvancedPhotoMode, AudioDeviceRole, AutoFocusRange, CameraOcclusionKind, CameraStreamState, CaptureSceneMode, CaptureUse, ColorTemperaturePreset, DigitalWindowMode, FocusMode, FocusPreset, HdrVideoMode, InfraredTorchMode, IsoSpeedPreset, ManualFocusDistance, MediaCaptureFocusState, MediaCaptureOptimization, MediaCapturePauseBehavior, OpticalImageStabilizationMode, RegionOfInterestType, SendCommandStatus, TelephonyKey, VideoDeviceControllerGetDevicePropertyStatus, VideoDeviceControllerSetDevicePropertyStatus, VideoTemporalDenoisingMode, ZoomTransitionMode
from winrt.windows.media.devices import CallControlEventHandler, DialRequestedEventHandler, KeypadPressedEventHandler, RedialRequestedEventHandler

Self = typing.TypeVar('Self')

@typing.final
class AdvancedPhotoCaptureSettings(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Media.Devices.AdvancedPhotoMode Windows.Media.Devices.AdvancedPhotoCaptureSettings::get_Mode()
    @_property
    def mode(self) -> AdvancedPhotoMode: ...
    # System.Void Windows.Media.Devices.AdvancedPhotoCaptureSettings::put_Mode(Windows.Media.Devices.AdvancedPhotoMode)
    @mode.setter
    def mode(self, value: AdvancedPhotoMode) -> None: ...

@typing.final
class AdvancedPhotoControl(winrt.system.Object):
    # System.Void Windows.Media.Devices.AdvancedPhotoControl::Configure(Windows.Media.Devices.AdvancedPhotoCaptureSettings)
    def configure(self, settings: AdvancedPhotoCaptureSettings, /) -> None: ...
    # Windows.Media.Devices.AdvancedPhotoMode Windows.Media.Devices.AdvancedPhotoControl::get_Mode()
    @_property
    def mode(self) -> AdvancedPhotoMode: ...
    # System.Boolean Windows.Media.Devices.AdvancedPhotoControl::get_Supported()
    @_property
    def supported(self) -> bool: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.AdvancedPhotoMode> Windows.Media.Devices.AdvancedPhotoControl::get_SupportedModes()
    @_property
    def supported_modes(self) -> typing.Sequence[AdvancedPhotoMode]: ...

@typing.final
class AudioDeviceController(winrt.system.Object, IMediaDeviceController):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.MediaProperties.IMediaEncodingProperties> Windows.Media.Devices.AudioDeviceController::GetAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType)
    def get_available_media_stream_properties(self, media_stream_type: windows_media_capture.MediaStreamType, /) -> typing.Sequence[windows_media_mediaproperties.IMediaEncodingProperties]: ...
    # Windows.Media.MediaProperties.IMediaEncodingProperties Windows.Media.Devices.AudioDeviceController::GetMediaStreamProperties(Windows.Media.Capture.MediaStreamType)
    def get_media_stream_properties(self, media_stream_type: windows_media_capture.MediaStreamType, /) -> windows_media_mediaproperties.IMediaEncodingProperties: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.AudioDeviceController::SetMediaStreamPropertiesAsync(Windows.Media.Capture.MediaStreamType,Windows.Media.MediaProperties.IMediaEncodingProperties)
    def set_media_stream_properties_async(self, media_stream_type: windows_media_capture.MediaStreamType, media_encoding_properties: windows_media_mediaproperties.IMediaEncodingProperties, /) -> windows_foundation.IAsyncAction: ...
    # System.Single Windows.Media.Devices.AudioDeviceController::get_VolumePercent()
    @_property
    def volume_percent(self) -> winrt.system.Single: ...
    # System.Void Windows.Media.Devices.AudioDeviceController::put_VolumePercent(System.Single)
    @volume_percent.setter
    def volume_percent(self, value: winrt.system.Single) -> None: ...
    # System.Boolean Windows.Media.Devices.AudioDeviceController::get_Muted()
    @_property
    def muted(self) -> bool: ...
    # System.Void Windows.Media.Devices.AudioDeviceController::put_Muted(System.Boolean)
    @muted.setter
    def muted(self, value: bool) -> None: ...
    # Windows.Media.Effects.AudioCaptureEffectsManager Windows.Media.Devices.AudioDeviceController::get_AudioCaptureEffectsManager()
    @_property
    def audio_capture_effects_manager(self) -> windows_media_effects.AudioCaptureEffectsManager: ...

@typing.final
class AudioDeviceModule(winrt.system.Object):
    # Windows.Foundation.IAsyncOperation`1<Windows.Media.Devices.ModuleCommandResult> Windows.Media.Devices.AudioDeviceModule::SendCommandAsync(Windows.Storage.Streams.IBuffer)
    def send_command_async(self, command: winrt.system.Buffer, /) -> windows_foundation.IAsyncOperation[ModuleCommandResult]: ...
    # System.String Windows.Media.Devices.AudioDeviceModule::get_ClassId()
    @_property
    def class_id(self) -> str: ...
    # System.String Windows.Media.Devices.AudioDeviceModule::get_DisplayName()
    @_property
    def display_name(self) -> str: ...
    # System.UInt32 Windows.Media.Devices.AudioDeviceModule::get_InstanceId()
    @_property
    def instance_id(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Media.Devices.AudioDeviceModule::get_MajorVersion()
    @_property
    def major_version(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Media.Devices.AudioDeviceModule::get_MinorVersion()
    @_property
    def minor_version(self) -> winrt.system.UInt32: ...

@typing.final
class AudioDeviceModuleNotificationEventArgs(winrt.system.Object):
    # Windows.Media.Devices.AudioDeviceModule Windows.Media.Devices.AudioDeviceModuleNotificationEventArgs::get_Module()
    @_property
    def module(self) -> AudioDeviceModule: ...
    # Windows.Storage.Streams.IBuffer Windows.Media.Devices.AudioDeviceModuleNotificationEventArgs::get_NotificationData()
    @_property
    def notification_data(self) -> winrt.system.Buffer: ...

@typing.final
class AudioDeviceModulesManager(winrt.system.Object):
    def __new__(cls: typing.Type[Self], device_id: str) -> Self: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.AudioDeviceModule> Windows.Media.Devices.AudioDeviceModulesManager::FindAll()
    def find_all(self) -> typing.Sequence[AudioDeviceModule]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.AudioDeviceModule> Windows.Media.Devices.AudioDeviceModulesManager::FindAllById(System.String)
    def find_all_by_id(self, module_id: str, /) -> typing.Sequence[AudioDeviceModule]: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Devices.AudioDeviceModulesManager::add_ModuleNotificationReceived(Windows.Foundation.TypedEventHandler`2<Windows.Media.Devices.AudioDeviceModulesManager,Windows.Media.Devices.AudioDeviceModuleNotificationEventArgs>)
    def add_module_notification_received(self, handler: windows_foundation.TypedEventHandler[AudioDeviceModulesManager, AudioDeviceModuleNotificationEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Devices.AudioDeviceModulesManager::remove_ModuleNotificationReceived(Windows.Foundation.EventRegistrationToken)
    def remove_module_notification_received(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

@typing.final
class CallControl_Static(winrt._winrt.IInspectable_Static):
    # Windows.Media.Devices.CallControl Windows.Media.Devices.CallControl::FromId(System.String)
    def from_id(cls, device_id: str, /) -> CallControl: ...
    # Windows.Media.Devices.CallControl Windows.Media.Devices.CallControl::GetDefault()
    def get_default(cls) -> CallControl: ...

@typing.final
class CallControl(winrt.system.Object, metaclass=CallControl_Static):
    # System.Void Windows.Media.Devices.CallControl::EndCall(System.UInt64)
    def end_call(self, call_token: winrt.system.UInt64, /) -> None: ...
    # System.Void Windows.Media.Devices.CallControl::IndicateActiveCall(System.UInt64)
    def indicate_active_call(self, call_token: winrt.system.UInt64, /) -> None: ...
    # System.UInt64 Windows.Media.Devices.CallControl::IndicateNewIncomingCall(System.Boolean,System.String)
    def indicate_new_incoming_call(self, enable_ringer: bool, caller_id: str, /) -> winrt.system.UInt64: ...
    # System.UInt64 Windows.Media.Devices.CallControl::IndicateNewOutgoingCall()
    def indicate_new_outgoing_call(self) -> winrt.system.UInt64: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Devices.CallControl::add_AnswerRequested(Windows.Media.Devices.CallControlEventHandler)
    def add_answer_requested(self, handler: CallControlEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Devices.CallControl::remove_AnswerRequested(Windows.Foundation.EventRegistrationToken)
    def remove_answer_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Devices.CallControl::add_AudioTransferRequested(Windows.Media.Devices.CallControlEventHandler)
    def add_audio_transfer_requested(self, handler: CallControlEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Devices.CallControl::remove_AudioTransferRequested(Windows.Foundation.EventRegistrationToken)
    def remove_audio_transfer_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Devices.CallControl::add_DialRequested(Windows.Media.Devices.DialRequestedEventHandler)
    def add_dial_requested(self, handler: DialRequestedEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Devices.CallControl::remove_DialRequested(Windows.Foundation.EventRegistrationToken)
    def remove_dial_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Devices.CallControl::add_HangUpRequested(Windows.Media.Devices.CallControlEventHandler)
    def add_hang_up_requested(self, handler: CallControlEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Devices.CallControl::remove_HangUpRequested(Windows.Foundation.EventRegistrationToken)
    def remove_hang_up_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Devices.CallControl::add_KeypadPressed(Windows.Media.Devices.KeypadPressedEventHandler)
    def add_keypad_pressed(self, handler: KeypadPressedEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Devices.CallControl::remove_KeypadPressed(Windows.Foundation.EventRegistrationToken)
    def remove_keypad_pressed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Devices.CallControl::add_RedialRequested(Windows.Media.Devices.RedialRequestedEventHandler)
    def add_redial_requested(self, handler: RedialRequestedEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Devices.CallControl::remove_RedialRequested(Windows.Foundation.EventRegistrationToken)
    def remove_redial_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.Boolean Windows.Media.Devices.CallControl::get_HasRinger()
    @_property
    def has_ringer(self) -> bool: ...

@typing.final
class CameraOcclusionInfo(winrt.system.Object):
    # Windows.Media.Devices.CameraOcclusionState Windows.Media.Devices.CameraOcclusionInfo::GetState()
    def get_state(self) -> CameraOcclusionState: ...
    # System.Boolean Windows.Media.Devices.CameraOcclusionInfo::IsOcclusionKindSupported(Windows.Media.Devices.CameraOcclusionKind)
    def is_occlusion_kind_supported(self, occlusion_kind: CameraOcclusionKind, /) -> bool: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Devices.CameraOcclusionInfo::add_StateChanged(Windows.Foundation.TypedEventHandler`2<Windows.Media.Devices.CameraOcclusionInfo,Windows.Media.Devices.CameraOcclusionStateChangedEventArgs>)
    def add_state_changed(self, handler: windows_foundation.TypedEventHandler[CameraOcclusionInfo, CameraOcclusionStateChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Devices.CameraOcclusionInfo::remove_StateChanged(Windows.Foundation.EventRegistrationToken)
    def remove_state_changed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

@typing.final
class CameraOcclusionState(winrt.system.Object):
    # System.Boolean Windows.Media.Devices.CameraOcclusionState::IsOcclusionKind(Windows.Media.Devices.CameraOcclusionKind)
    def is_occlusion_kind(self, occlusion_kind: CameraOcclusionKind, /) -> bool: ...
    # System.Boolean Windows.Media.Devices.CameraOcclusionState::get_IsOccluded()
    @_property
    def is_occluded(self) -> bool: ...

@typing.final
class CameraOcclusionStateChangedEventArgs(winrt.system.Object):
    # Windows.Media.Devices.CameraOcclusionState Windows.Media.Devices.CameraOcclusionStateChangedEventArgs::get_State()
    @_property
    def state(self) -> CameraOcclusionState: ...

@typing.final
class DefaultAudioCaptureDeviceChangedEventArgs(winrt.system.Object, IDefaultAudioDeviceChangedEventArgs):
    # System.String Windows.Media.Devices.DefaultAudioCaptureDeviceChangedEventArgs::get_Id()
    @_property
    def id(self) -> str: ...
    # Windows.Media.Devices.AudioDeviceRole Windows.Media.Devices.DefaultAudioCaptureDeviceChangedEventArgs::get_Role()
    @_property
    def role(self) -> AudioDeviceRole: ...

@typing.final
class DefaultAudioRenderDeviceChangedEventArgs(winrt.system.Object, IDefaultAudioDeviceChangedEventArgs):
    # System.String Windows.Media.Devices.DefaultAudioRenderDeviceChangedEventArgs::get_Id()
    @_property
    def id(self) -> str: ...
    # Windows.Media.Devices.AudioDeviceRole Windows.Media.Devices.DefaultAudioRenderDeviceChangedEventArgs::get_Role()
    @_property
    def role(self) -> AudioDeviceRole: ...

@typing.final
class DialRequestedEventArgs(winrt.system.Object):
    # System.Void Windows.Media.Devices.DialRequestedEventArgs::Handled()
    def handled(self) -> None: ...
    # System.Object Windows.Media.Devices.DialRequestedEventArgs::get_Contact()
    @_property
    def contact(self) -> winrt.system.Object: ...

@typing.final
class DigitalWindowBounds(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Double Windows.Media.Devices.DigitalWindowBounds::get_Scale()
    @_property
    def scale(self) -> winrt.system.Double: ...
    # System.Void Windows.Media.Devices.DigitalWindowBounds::put_Scale(System.Double)
    @scale.setter
    def scale(self, value: winrt.system.Double) -> None: ...
    # System.Double Windows.Media.Devices.DigitalWindowBounds::get_NormalizedOriginTop()
    @_property
    def normalized_origin_top(self) -> winrt.system.Double: ...
    # System.Void Windows.Media.Devices.DigitalWindowBounds::put_NormalizedOriginTop(System.Double)
    @normalized_origin_top.setter
    def normalized_origin_top(self, value: winrt.system.Double) -> None: ...
    # System.Double Windows.Media.Devices.DigitalWindowBounds::get_NormalizedOriginLeft()
    @_property
    def normalized_origin_left(self) -> winrt.system.Double: ...
    # System.Void Windows.Media.Devices.DigitalWindowBounds::put_NormalizedOriginLeft(System.Double)
    @normalized_origin_left.setter
    def normalized_origin_left(self, value: winrt.system.Double) -> None: ...

@typing.final
class DigitalWindowCapability(winrt.system.Object):
    # System.Int32 Windows.Media.Devices.DigitalWindowCapability::get_Height()
    @_property
    def height(self) -> winrt.system.Int32: ...
    # System.Double Windows.Media.Devices.DigitalWindowCapability::get_MaxScaleValue()
    @_property
    def max_scale_value(self) -> winrt.system.Double: ...
    # System.Double Windows.Media.Devices.DigitalWindowCapability::get_MinScaleValue()
    @_property
    def min_scale_value(self) -> winrt.system.Double: ...
    # System.Double Windows.Media.Devices.DigitalWindowCapability::get_MinScaleValueWithoutUpsampling()
    @_property
    def min_scale_value_without_upsampling(self) -> winrt.system.Double: ...
    # Windows.Foundation.Rect Windows.Media.Devices.DigitalWindowCapability::get_NormalizedFieldOfViewLimit()
    @_property
    def normalized_field_of_view_limit(self) -> windows_foundation.Rect: ...
    # System.Int32 Windows.Media.Devices.DigitalWindowCapability::get_Width()
    @_property
    def width(self) -> winrt.system.Int32: ...

@typing.final
class DigitalWindowControl(winrt.system.Object):
    # System.Void Windows.Media.Devices.DigitalWindowControl::Configure(Windows.Media.Devices.DigitalWindowMode)
    def configure(self, digital_window_mode: DigitalWindowMode, /) -> None: ...
    # System.Void Windows.Media.Devices.DigitalWindowControl::Configure(Windows.Media.Devices.DigitalWindowMode,Windows.Media.Devices.DigitalWindowBounds)
    def configure_with_bounds(self, digital_window_mode: DigitalWindowMode, digital_window_bounds: DigitalWindowBounds, /) -> None: ...
    # Windows.Media.Devices.DigitalWindowBounds Windows.Media.Devices.DigitalWindowControl::GetBounds()
    def get_bounds(self) -> DigitalWindowBounds: ...
    # Windows.Media.Devices.DigitalWindowCapability Windows.Media.Devices.DigitalWindowControl::GetCapabilityForSize(System.Int32,System.Int32)
    def get_capability_for_size(self, width: winrt.system.Int32, height: winrt.system.Int32, /) -> DigitalWindowCapability: ...
    # Windows.Media.Devices.DigitalWindowMode Windows.Media.Devices.DigitalWindowControl::get_CurrentMode()
    @_property
    def current_mode(self) -> DigitalWindowMode: ...
    # System.Boolean Windows.Media.Devices.DigitalWindowControl::get_IsSupported()
    @_property
    def is_supported(self) -> bool: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.DigitalWindowCapability> Windows.Media.Devices.DigitalWindowControl::get_SupportedCapabilities()
    @_property
    def supported_capabilities(self) -> typing.Sequence[DigitalWindowCapability]: ...
    # Windows.Media.Devices.DigitalWindowMode[] Windows.Media.Devices.DigitalWindowControl::get_SupportedModes()
    @_property
    def supported_modes(self) -> DigitalWindowMode: ...

@typing.final
class ExposureCompensationControl(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.ExposureCompensationControl::SetValueAsync(System.Single)
    def set_value_async(self, value: winrt.system.Single, /) -> windows_foundation.IAsyncAction: ...
    # System.Single Windows.Media.Devices.ExposureCompensationControl::get_Max()
    @_property
    def max(self) -> winrt.system.Single: ...
    # System.Single Windows.Media.Devices.ExposureCompensationControl::get_Min()
    @_property
    def min(self) -> winrt.system.Single: ...
    # System.Single Windows.Media.Devices.ExposureCompensationControl::get_Step()
    @_property
    def step(self) -> winrt.system.Single: ...
    # System.Boolean Windows.Media.Devices.ExposureCompensationControl::get_Supported()
    @_property
    def supported(self) -> bool: ...
    # System.Single Windows.Media.Devices.ExposureCompensationControl::get_Value()
    @_property
    def value(self) -> winrt.system.Single: ...

@typing.final
class ExposureControl(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.ExposureControl::SetAutoAsync(System.Boolean)
    def set_auto_async(self, value: bool, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.ExposureControl::SetValueAsync(Windows.Foundation.TimeSpan)
    def set_value_async(self, shutter_duration: datetime.timedelta, /) -> windows_foundation.IAsyncAction: ...
    # System.Boolean Windows.Media.Devices.ExposureControl::get_Auto()
    @_property
    def auto(self) -> bool: ...
    # Windows.Foundation.TimeSpan Windows.Media.Devices.ExposureControl::get_Max()
    @_property
    def max(self) -> datetime.timedelta: ...
    # Windows.Foundation.TimeSpan Windows.Media.Devices.ExposureControl::get_Min()
    @_property
    def min(self) -> datetime.timedelta: ...
    # Windows.Foundation.TimeSpan Windows.Media.Devices.ExposureControl::get_Step()
    @_property
    def step(self) -> datetime.timedelta: ...
    # System.Boolean Windows.Media.Devices.ExposureControl::get_Supported()
    @_property
    def supported(self) -> bool: ...
    # Windows.Foundation.TimeSpan Windows.Media.Devices.ExposureControl::get_Value()
    @_property
    def value(self) -> datetime.timedelta: ...

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

@typing.final
class FlashControl(winrt.system.Object):
    # System.Boolean Windows.Media.Devices.FlashControl::get_RedEyeReduction()
    @_property
    def red_eye_reduction(self) -> bool: ...
    # System.Void Windows.Media.Devices.FlashControl::put_RedEyeReduction(System.Boolean)
    @red_eye_reduction.setter
    def red_eye_reduction(self, value: bool) -> None: ...
    # System.Single Windows.Media.Devices.FlashControl::get_PowerPercent()
    @_property
    def power_percent(self) -> winrt.system.Single: ...
    # System.Void Windows.Media.Devices.FlashControl::put_PowerPercent(System.Single)
    @power_percent.setter
    def power_percent(self, value: winrt.system.Single) -> None: ...
    # System.Boolean Windows.Media.Devices.FlashControl::get_Enabled()
    @_property
    def enabled(self) -> bool: ...
    # System.Void Windows.Media.Devices.FlashControl::put_Enabled(System.Boolean)
    @enabled.setter
    def enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Media.Devices.FlashControl::get_Auto()
    @_property
    def auto(self) -> bool: ...
    # System.Void Windows.Media.Devices.FlashControl::put_Auto(System.Boolean)
    @auto.setter
    def auto(self, value: bool) -> None: ...
    # System.Boolean Windows.Media.Devices.FlashControl::get_PowerSupported()
    @_property
    def power_supported(self) -> bool: ...
    # System.Boolean Windows.Media.Devices.FlashControl::get_RedEyeReductionSupported()
    @_property
    def red_eye_reduction_supported(self) -> bool: ...
    # System.Boolean Windows.Media.Devices.FlashControl::get_Supported()
    @_property
    def supported(self) -> bool: ...
    # System.Boolean Windows.Media.Devices.FlashControl::get_AssistantLightEnabled()
    @_property
    def assistant_light_enabled(self) -> bool: ...
    # System.Void Windows.Media.Devices.FlashControl::put_AssistantLightEnabled(System.Boolean)
    @assistant_light_enabled.setter
    def assistant_light_enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Media.Devices.FlashControl::get_AssistantLightSupported()
    @_property
    def assistant_light_supported(self) -> bool: ...

@typing.final
class FocusControl(winrt.system.Object):
    # System.Void Windows.Media.Devices.FocusControl::Configure(Windows.Media.Devices.FocusSettings)
    def configure(self, settings: FocusSettings, /) -> None: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.FocusControl::FocusAsync()
    def focus_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.FocusControl::LockAsync()
    def lock_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.FocusControl::SetPresetAsync(Windows.Media.Devices.FocusPreset)
    def set_preset_async(self, preset: FocusPreset, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.FocusControl::SetPresetAsync(Windows.Media.Devices.FocusPreset,System.Boolean)
    def set_preset_with_completion_option_async(self, preset: FocusPreset, complete_before_focus: bool, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.FocusControl::SetValueAsync(System.UInt32)
    def set_value_async(self, focus: winrt.system.UInt32, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.FocusControl::UnlockAsync()
    def unlock_async(self) -> windows_foundation.IAsyncAction: ...
    # System.UInt32 Windows.Media.Devices.FocusControl::get_Max()
    @_property
    def max(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Media.Devices.FocusControl::get_Min()
    @_property
    def min(self) -> winrt.system.UInt32: ...
    # Windows.Media.Devices.FocusPreset Windows.Media.Devices.FocusControl::get_Preset()
    @_property
    def preset(self) -> FocusPreset: ...
    # System.UInt32 Windows.Media.Devices.FocusControl::get_Step()
    @_property
    def step(self) -> winrt.system.UInt32: ...
    # System.Boolean Windows.Media.Devices.FocusControl::get_Supported()
    @_property
    def supported(self) -> bool: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.FocusPreset> Windows.Media.Devices.FocusControl::get_SupportedPresets()
    @_property
    def supported_presets(self) -> typing.Sequence[FocusPreset]: ...
    # System.UInt32 Windows.Media.Devices.FocusControl::get_Value()
    @_property
    def value(self) -> winrt.system.UInt32: ...
    # System.Boolean Windows.Media.Devices.FocusControl::get_FocusChangedSupported()
    @_property
    def focus_changed_supported(self) -> bool: ...
    # Windows.Media.Devices.MediaCaptureFocusState Windows.Media.Devices.FocusControl::get_FocusState()
    @_property
    def focus_state(self) -> MediaCaptureFocusState: ...
    # Windows.Media.Devices.FocusMode Windows.Media.Devices.FocusControl::get_Mode()
    @_property
    def mode(self) -> FocusMode: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.ManualFocusDistance> Windows.Media.Devices.FocusControl::get_SupportedFocusDistances()
    @_property
    def supported_focus_distances(self) -> typing.Sequence[ManualFocusDistance]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.FocusMode> Windows.Media.Devices.FocusControl::get_SupportedFocusModes()
    @_property
    def supported_focus_modes(self) -> typing.Sequence[FocusMode]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.AutoFocusRange> Windows.Media.Devices.FocusControl::get_SupportedFocusRanges()
    @_property
    def supported_focus_ranges(self) -> typing.Sequence[AutoFocusRange]: ...
    # System.Boolean Windows.Media.Devices.FocusControl::get_WaitForFocusSupported()
    @_property
    def wait_for_focus_supported(self) -> bool: ...

@typing.final
class FocusSettings(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Boolean Windows.Media.Devices.FocusSettings::get_WaitForFocus()
    @_property
    def wait_for_focus(self) -> bool: ...
    # System.Void Windows.Media.Devices.FocusSettings::put_WaitForFocus(System.Boolean)
    @wait_for_focus.setter
    def wait_for_focus(self, value: bool) -> None: ...
    # Windows.Foundation.IReference`1<System.UInt32> Windows.Media.Devices.FocusSettings::get_Value()
    @_property
    def value(self) -> typing.Optional[winrt.system.UInt32]: ...
    # System.Void Windows.Media.Devices.FocusSettings::put_Value(Windows.Foundation.IReference`1<System.UInt32>)
    @value.setter
    def value(self, value: typing.Optional[winrt.system.UInt32]) -> None: ...
    # Windows.Media.Devices.FocusMode Windows.Media.Devices.FocusSettings::get_Mode()
    @_property
    def mode(self) -> FocusMode: ...
    # System.Void Windows.Media.Devices.FocusSettings::put_Mode(Windows.Media.Devices.FocusMode)
    @mode.setter
    def mode(self, value: FocusMode) -> None: ...
    # Windows.Foundation.IReference`1<Windows.Media.Devices.ManualFocusDistance> Windows.Media.Devices.FocusSettings::get_Distance()
    @_property
    def distance(self) -> typing.Optional[ManualFocusDistance]: ...
    # System.Void Windows.Media.Devices.FocusSettings::put_Distance(Windows.Foundation.IReference`1<Windows.Media.Devices.ManualFocusDistance>)
    @distance.setter
    def distance(self, value: typing.Optional[ManualFocusDistance]) -> None: ...
    # System.Boolean Windows.Media.Devices.FocusSettings::get_DisableDriverFallback()
    @_property
    def disable_driver_fallback(self) -> bool: ...
    # System.Void Windows.Media.Devices.FocusSettings::put_DisableDriverFallback(System.Boolean)
    @disable_driver_fallback.setter
    def disable_driver_fallback(self, value: bool) -> None: ...
    # Windows.Media.Devices.AutoFocusRange Windows.Media.Devices.FocusSettings::get_AutoFocusRange()
    @_property
    def auto_focus_range(self) -> AutoFocusRange: ...
    # System.Void Windows.Media.Devices.FocusSettings::put_AutoFocusRange(Windows.Media.Devices.AutoFocusRange)
    @auto_focus_range.setter
    def auto_focus_range(self, value: AutoFocusRange) -> None: ...

@typing.final
class HdrVideoControl(winrt.system.Object):
    # Windows.Media.Devices.HdrVideoMode Windows.Media.Devices.HdrVideoControl::get_Mode()
    @_property
    def mode(self) -> HdrVideoMode: ...
    # System.Void Windows.Media.Devices.HdrVideoControl::put_Mode(Windows.Media.Devices.HdrVideoMode)
    @mode.setter
    def mode(self, value: HdrVideoMode) -> None: ...
    # System.Boolean Windows.Media.Devices.HdrVideoControl::get_Supported()
    @_property
    def supported(self) -> bool: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.HdrVideoMode> Windows.Media.Devices.HdrVideoControl::get_SupportedModes()
    @_property
    def supported_modes(self) -> typing.Sequence[HdrVideoMode]: ...

@typing.final
class InfraredTorchControl(winrt.system.Object):
    # System.Int32 Windows.Media.Devices.InfraredTorchControl::get_Power()
    @_property
    def power(self) -> winrt.system.Int32: ...
    # System.Void Windows.Media.Devices.InfraredTorchControl::put_Power(System.Int32)
    @power.setter
    def power(self, value: winrt.system.Int32) -> None: ...
    # Windows.Media.Devices.InfraredTorchMode Windows.Media.Devices.InfraredTorchControl::get_CurrentMode()
    @_property
    def current_mode(self) -> InfraredTorchMode: ...
    # System.Void Windows.Media.Devices.InfraredTorchControl::put_CurrentMode(Windows.Media.Devices.InfraredTorchMode)
    @current_mode.setter
    def current_mode(self, value: InfraredTorchMode) -> None: ...
    # System.Boolean Windows.Media.Devices.InfraredTorchControl::get_IsSupported()
    @_property
    def is_supported(self) -> bool: ...
    # System.Int32 Windows.Media.Devices.InfraredTorchControl::get_MaxPower()
    @_property
    def max_power(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Media.Devices.InfraredTorchControl::get_MinPower()
    @_property
    def min_power(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Media.Devices.InfraredTorchControl::get_PowerStep()
    @_property
    def power_step(self) -> winrt.system.Int32: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.InfraredTorchMode> Windows.Media.Devices.InfraredTorchControl::get_SupportedModes()
    @_property
    def supported_modes(self) -> typing.Sequence[InfraredTorchMode]: ...

@typing.final
class IsoSpeedControl(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.IsoSpeedControl::SetAutoAsync()
    def set_auto_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.IsoSpeedControl::SetPresetAsync(Windows.Media.Devices.IsoSpeedPreset)
    # @deprecated("SetPresetAsync may not be available in future versions of Windows Phone. Starting with Windows Phone 8.1, use SetAutoAsync, Auto, SetValueAsync, and Value instead")
    def set_preset_async(self, preset: IsoSpeedPreset, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.IsoSpeedControl::SetValueAsync(System.UInt32)
    def set_value_async(self, iso_speed: winrt.system.UInt32, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Media.Devices.IsoSpeedPreset Windows.Media.Devices.IsoSpeedControl::get_Preset()
    @_property
    def preset(self) -> IsoSpeedPreset: ...
    # System.Boolean Windows.Media.Devices.IsoSpeedControl::get_Supported()
    @_property
    def supported(self) -> bool: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.IsoSpeedPreset> Windows.Media.Devices.IsoSpeedControl::get_SupportedPresets()
    @_property
    def supported_presets(self) -> typing.Sequence[IsoSpeedPreset]: ...
    # System.Boolean Windows.Media.Devices.IsoSpeedControl::get_Auto()
    @_property
    def auto(self) -> bool: ...
    # System.UInt32 Windows.Media.Devices.IsoSpeedControl::get_Max()
    @_property
    def max(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Media.Devices.IsoSpeedControl::get_Min()
    @_property
    def min(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Media.Devices.IsoSpeedControl::get_Step()
    @_property
    def step(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Media.Devices.IsoSpeedControl::get_Value()
    @_property
    def value(self) -> winrt.system.UInt32: ...

@typing.final
class KeypadPressedEventArgs(winrt.system.Object):
    # Windows.Media.Devices.TelephonyKey Windows.Media.Devices.KeypadPressedEventArgs::get_TelephonyKey()
    @_property
    def telephony_key(self) -> TelephonyKey: ...

@typing.final
class LowLagPhotoControl(winrt.system.Object):
    # Windows.Media.MediaProperties.MediaRatio Windows.Media.Devices.LowLagPhotoControl::GetCurrentFrameRate()
    def get_current_frame_rate(self) -> windows_media_mediaproperties.MediaRatio: ...
    # Windows.Media.MediaProperties.MediaRatio Windows.Media.Devices.LowLagPhotoControl::GetHighestConcurrentFrameRate(Windows.Media.MediaProperties.IMediaEncodingProperties)
    def get_highest_concurrent_frame_rate(self, capture_properties: windows_media_mediaproperties.IMediaEncodingProperties, /) -> windows_media_mediaproperties.MediaRatio: ...
    # Windows.Media.MediaProperties.MediaThumbnailFormat Windows.Media.Devices.LowLagPhotoControl::get_ThumbnailFormat()
    @_property
    def thumbnail_format(self) -> windows_media_mediaproperties.MediaThumbnailFormat: ...
    # System.Void Windows.Media.Devices.LowLagPhotoControl::put_ThumbnailFormat(Windows.Media.MediaProperties.MediaThumbnailFormat)
    @thumbnail_format.setter
    def thumbnail_format(self, value: windows_media_mediaproperties.MediaThumbnailFormat) -> None: ...
    # System.Boolean Windows.Media.Devices.LowLagPhotoControl::get_ThumbnailEnabled()
    @_property
    def thumbnail_enabled(self) -> bool: ...
    # System.Void Windows.Media.Devices.LowLagPhotoControl::put_ThumbnailEnabled(System.Boolean)
    @thumbnail_enabled.setter
    def thumbnail_enabled(self, value: bool) -> None: ...
    # System.UInt32 Windows.Media.Devices.LowLagPhotoControl::get_DesiredThumbnailSize()
    @_property
    def desired_thumbnail_size(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Media.Devices.LowLagPhotoControl::put_DesiredThumbnailSize(System.UInt32)
    @desired_thumbnail_size.setter
    def desired_thumbnail_size(self, value: winrt.system.UInt32) -> None: ...
    # System.UInt32 Windows.Media.Devices.LowLagPhotoControl::get_HardwareAcceleratedThumbnailSupported()
    @_property
    def hardware_accelerated_thumbnail_supported(self) -> winrt.system.UInt32: ...

@typing.final
class LowLagPhotoSequenceControl(winrt.system.Object):
    # Windows.Media.MediaProperties.MediaRatio Windows.Media.Devices.LowLagPhotoSequenceControl::GetCurrentFrameRate()
    def get_current_frame_rate(self) -> windows_media_mediaproperties.MediaRatio: ...
    # Windows.Media.MediaProperties.MediaRatio Windows.Media.Devices.LowLagPhotoSequenceControl::GetHighestConcurrentFrameRate(Windows.Media.MediaProperties.IMediaEncodingProperties)
    def get_highest_concurrent_frame_rate(self, capture_properties: windows_media_mediaproperties.IMediaEncodingProperties, /) -> windows_media_mediaproperties.MediaRatio: ...
    # Windows.Media.MediaProperties.MediaThumbnailFormat Windows.Media.Devices.LowLagPhotoSequenceControl::get_ThumbnailFormat()
    @_property
    def thumbnail_format(self) -> windows_media_mediaproperties.MediaThumbnailFormat: ...
    # System.Void Windows.Media.Devices.LowLagPhotoSequenceControl::put_ThumbnailFormat(Windows.Media.MediaProperties.MediaThumbnailFormat)
    @thumbnail_format.setter
    def thumbnail_format(self, value: windows_media_mediaproperties.MediaThumbnailFormat) -> None: ...
    # System.Boolean Windows.Media.Devices.LowLagPhotoSequenceControl::get_ThumbnailEnabled()
    @_property
    def thumbnail_enabled(self) -> bool: ...
    # System.Void Windows.Media.Devices.LowLagPhotoSequenceControl::put_ThumbnailEnabled(System.Boolean)
    @thumbnail_enabled.setter
    def thumbnail_enabled(self, value: bool) -> None: ...
    # System.Single Windows.Media.Devices.LowLagPhotoSequenceControl::get_PhotosPerSecondLimit()
    @_property
    def photos_per_second_limit(self) -> winrt.system.Single: ...
    # System.Void Windows.Media.Devices.LowLagPhotoSequenceControl::put_PhotosPerSecondLimit(System.Single)
    @photos_per_second_limit.setter
    def photos_per_second_limit(self, value: winrt.system.Single) -> None: ...
    # System.UInt32 Windows.Media.Devices.LowLagPhotoSequenceControl::get_PastPhotoLimit()
    @_property
    def past_photo_limit(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Media.Devices.LowLagPhotoSequenceControl::put_PastPhotoLimit(System.UInt32)
    @past_photo_limit.setter
    def past_photo_limit(self, value: winrt.system.UInt32) -> None: ...
    # System.UInt32 Windows.Media.Devices.LowLagPhotoSequenceControl::get_DesiredThumbnailSize()
    @_property
    def desired_thumbnail_size(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Media.Devices.LowLagPhotoSequenceControl::put_DesiredThumbnailSize(System.UInt32)
    @desired_thumbnail_size.setter
    def desired_thumbnail_size(self, value: winrt.system.UInt32) -> None: ...
    # System.UInt32 Windows.Media.Devices.LowLagPhotoSequenceControl::get_HardwareAcceleratedThumbnailSupported()
    @_property
    def hardware_accelerated_thumbnail_supported(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Media.Devices.LowLagPhotoSequenceControl::get_MaxPastPhotos()
    @_property
    def max_past_photos(self) -> winrt.system.UInt32: ...
    # System.Single Windows.Media.Devices.LowLagPhotoSequenceControl::get_MaxPhotosPerSecond()
    @_property
    def max_photos_per_second(self) -> winrt.system.Single: ...
    # System.Boolean Windows.Media.Devices.LowLagPhotoSequenceControl::get_Supported()
    @_property
    def supported(self) -> bool: ...

@typing.final
class MediaDevice_Static(winrt._winrt.IInspectable_Static):
    # System.String Windows.Media.Devices.MediaDevice::GetAudioCaptureSelector()
    def get_audio_capture_selector(cls) -> str: ...
    # System.String Windows.Media.Devices.MediaDevice::GetAudioRenderSelector()
    def get_audio_render_selector(cls) -> str: ...
    # System.String Windows.Media.Devices.MediaDevice::GetDefaultAudioCaptureId(Windows.Media.Devices.AudioDeviceRole)
    def get_default_audio_capture_id(cls, role: AudioDeviceRole, /) -> str: ...
    # System.String Windows.Media.Devices.MediaDevice::GetDefaultAudioRenderId(Windows.Media.Devices.AudioDeviceRole)
    def get_default_audio_render_id(cls, role: AudioDeviceRole, /) -> str: ...
    # System.String Windows.Media.Devices.MediaDevice::GetVideoCaptureSelector()
    def get_video_capture_selector(cls) -> str: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Devices.MediaDevice::add_DefaultAudioCaptureDeviceChanged(Windows.Foundation.TypedEventHandler`2<System.Object,Windows.Media.Devices.DefaultAudioCaptureDeviceChangedEventArgs>)
    def add_default_audio_capture_device_changed(cls, handler: windows_foundation.TypedEventHandler[winrt.system.Object, DefaultAudioCaptureDeviceChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Devices.MediaDevice::remove_DefaultAudioCaptureDeviceChanged(Windows.Foundation.EventRegistrationToken)
    def remove_default_audio_capture_device_changed(cls, cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.Devices.MediaDevice::add_DefaultAudioRenderDeviceChanged(Windows.Foundation.TypedEventHandler`2<System.Object,Windows.Media.Devices.DefaultAudioRenderDeviceChangedEventArgs>)
    def add_default_audio_render_device_changed(cls, handler: windows_foundation.TypedEventHandler[winrt.system.Object, DefaultAudioRenderDeviceChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.Devices.MediaDevice::remove_DefaultAudioRenderDeviceChanged(Windows.Foundation.EventRegistrationToken)
    def remove_default_audio_render_device_changed(cls, cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

@typing.final
class MediaDevice(winrt.system.Object, metaclass=MediaDevice_Static):
    pass

@typing.final
class MediaDeviceControl(winrt.system.Object):
    # System.Boolean Windows.Media.Devices.MediaDeviceControl::TryGetAuto(System.Boolean&)
    def try_get_auto(self) -> typing.Tuple[bool, bool]: ...
    # System.Boolean Windows.Media.Devices.MediaDeviceControl::TryGetValue(System.Double&)
    def try_get_value(self) -> typing.Tuple[bool, winrt.system.Double]: ...
    # System.Boolean Windows.Media.Devices.MediaDeviceControl::TrySetAuto(System.Boolean)
    def try_set_auto(self, value: bool, /) -> bool: ...
    # System.Boolean Windows.Media.Devices.MediaDeviceControl::TrySetValue(System.Double)
    def try_set_value(self, value: winrt.system.Double, /) -> bool: ...
    # Windows.Media.Devices.MediaDeviceControlCapabilities Windows.Media.Devices.MediaDeviceControl::get_Capabilities()
    @_property
    def capabilities(self) -> MediaDeviceControlCapabilities: ...

@typing.final
class MediaDeviceControlCapabilities(winrt.system.Object):
    # System.Boolean Windows.Media.Devices.MediaDeviceControlCapabilities::get_AutoModeSupported()
    @_property
    def auto_mode_supported(self) -> bool: ...
    # System.Double Windows.Media.Devices.MediaDeviceControlCapabilities::get_Default()
    @_property
    def default(self) -> winrt.system.Double: ...
    # System.Double Windows.Media.Devices.MediaDeviceControlCapabilities::get_Max()
    @_property
    def max(self) -> winrt.system.Double: ...
    # System.Double Windows.Media.Devices.MediaDeviceControlCapabilities::get_Min()
    @_property
    def min(self) -> winrt.system.Double: ...
    # System.Double Windows.Media.Devices.MediaDeviceControlCapabilities::get_Step()
    @_property
    def step(self) -> winrt.system.Double: ...
    # System.Boolean Windows.Media.Devices.MediaDeviceControlCapabilities::get_Supported()
    @_property
    def supported(self) -> bool: ...

@typing.final
class ModuleCommandResult(winrt.system.Object):
    # Windows.Storage.Streams.IBuffer Windows.Media.Devices.ModuleCommandResult::get_Result()
    @_property
    def result(self) -> winrt.system.Buffer: ...
    # Windows.Media.Devices.SendCommandStatus Windows.Media.Devices.ModuleCommandResult::get_Status()
    @_property
    def status(self) -> SendCommandStatus: ...

@typing.final
class OpticalImageStabilizationControl(winrt.system.Object):
    # Windows.Media.Devices.OpticalImageStabilizationMode Windows.Media.Devices.OpticalImageStabilizationControl::get_Mode()
    @_property
    def mode(self) -> OpticalImageStabilizationMode: ...
    # System.Void Windows.Media.Devices.OpticalImageStabilizationControl::put_Mode(Windows.Media.Devices.OpticalImageStabilizationMode)
    @mode.setter
    def mode(self, value: OpticalImageStabilizationMode) -> None: ...
    # System.Boolean Windows.Media.Devices.OpticalImageStabilizationControl::get_Supported()
    @_property
    def supported(self) -> bool: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.OpticalImageStabilizationMode> Windows.Media.Devices.OpticalImageStabilizationControl::get_SupportedModes()
    @_property
    def supported_modes(self) -> typing.Sequence[OpticalImageStabilizationMode]: ...

@typing.final
class PanelBasedOptimizationControl(winrt.system.Object):
    # Windows.Devices.Enumeration.Panel Windows.Media.Devices.PanelBasedOptimizationControl::get_Panel()
    @_property
    def panel(self) -> windows_devices_enumeration.Panel: ...
    # System.Void Windows.Media.Devices.PanelBasedOptimizationControl::put_Panel(Windows.Devices.Enumeration.Panel)
    @panel.setter
    def panel(self, value: windows_devices_enumeration.Panel) -> None: ...
    # System.Boolean Windows.Media.Devices.PanelBasedOptimizationControl::get_IsSupported()
    @_property
    def is_supported(self) -> bool: ...

@typing.final
class PhotoConfirmationControl(winrt.system.Object):
    # Windows.Media.MediaProperties.MediaPixelFormat Windows.Media.Devices.PhotoConfirmationControl::get_PixelFormat()
    @_property
    def pixel_format(self) -> windows_media_mediaproperties.MediaPixelFormat: ...
    # System.Void Windows.Media.Devices.PhotoConfirmationControl::put_PixelFormat(Windows.Media.MediaProperties.MediaPixelFormat)
    @pixel_format.setter
    def pixel_format(self, value: windows_media_mediaproperties.MediaPixelFormat) -> None: ...
    # System.Boolean Windows.Media.Devices.PhotoConfirmationControl::get_Enabled()
    @_property
    def enabled(self) -> bool: ...
    # System.Void Windows.Media.Devices.PhotoConfirmationControl::put_Enabled(System.Boolean)
    @enabled.setter
    def enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Media.Devices.PhotoConfirmationControl::get_Supported()
    @_property
    def supported(self) -> bool: ...

@typing.final
class RedialRequestedEventArgs(winrt.system.Object):
    # System.Void Windows.Media.Devices.RedialRequestedEventArgs::Handled()
    def handled(self) -> None: ...

@typing.final
class RegionOfInterest(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Rect Windows.Media.Devices.RegionOfInterest::get_Bounds()
    @_property
    def bounds(self) -> windows_foundation.Rect: ...
    # System.Void Windows.Media.Devices.RegionOfInterest::put_Bounds(Windows.Foundation.Rect)
    @bounds.setter
    def bounds(self, value: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]]) -> None: ...
    # System.Boolean Windows.Media.Devices.RegionOfInterest::get_AutoWhiteBalanceEnabled()
    @_property
    def auto_white_balance_enabled(self) -> bool: ...
    # System.Void Windows.Media.Devices.RegionOfInterest::put_AutoWhiteBalanceEnabled(System.Boolean)
    @auto_white_balance_enabled.setter
    def auto_white_balance_enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Media.Devices.RegionOfInterest::get_AutoFocusEnabled()
    @_property
    def auto_focus_enabled(self) -> bool: ...
    # System.Void Windows.Media.Devices.RegionOfInterest::put_AutoFocusEnabled(System.Boolean)
    @auto_focus_enabled.setter
    def auto_focus_enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Media.Devices.RegionOfInterest::get_AutoExposureEnabled()
    @_property
    def auto_exposure_enabled(self) -> bool: ...
    # System.Void Windows.Media.Devices.RegionOfInterest::put_AutoExposureEnabled(System.Boolean)
    @auto_exposure_enabled.setter
    def auto_exposure_enabled(self, value: bool) -> None: ...
    # System.UInt32 Windows.Media.Devices.RegionOfInterest::get_Weight()
    @_property
    def weight(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Media.Devices.RegionOfInterest::put_Weight(System.UInt32)
    @weight.setter
    def weight(self, value: winrt.system.UInt32) -> None: ...
    # Windows.Media.Devices.RegionOfInterestType Windows.Media.Devices.RegionOfInterest::get_Type()
    @_property
    def type(self) -> RegionOfInterestType: ...
    # System.Void Windows.Media.Devices.RegionOfInterest::put_Type(Windows.Media.Devices.RegionOfInterestType)
    @type.setter
    def type(self, value: RegionOfInterestType) -> None: ...
    # System.Boolean Windows.Media.Devices.RegionOfInterest::get_BoundsNormalized()
    @_property
    def bounds_normalized(self) -> bool: ...
    # System.Void Windows.Media.Devices.RegionOfInterest::put_BoundsNormalized(System.Boolean)
    @bounds_normalized.setter
    def bounds_normalized(self, value: bool) -> None: ...

@typing.final
class RegionsOfInterestControl(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.RegionsOfInterestControl::ClearRegionsAsync()
    def clear_regions_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.RegionsOfInterestControl::SetRegionsAsync(Windows.Foundation.Collections.IIterable`1<Windows.Media.Devices.RegionOfInterest>)
    def set_regions_async(self, regions: typing.Iterable[RegionOfInterest], /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.RegionsOfInterestControl::SetRegionsAsync(Windows.Foundation.Collections.IIterable`1<Windows.Media.Devices.RegionOfInterest>,System.Boolean)
    def set_regions_with_lock_async(self, regions: typing.Iterable[RegionOfInterest], lock_values: bool, /) -> windows_foundation.IAsyncAction: ...
    # System.Boolean Windows.Media.Devices.RegionsOfInterestControl::get_AutoExposureSupported()
    @_property
    def auto_exposure_supported(self) -> bool: ...
    # System.Boolean Windows.Media.Devices.RegionsOfInterestControl::get_AutoFocusSupported()
    @_property
    def auto_focus_supported(self) -> bool: ...
    # System.Boolean Windows.Media.Devices.RegionsOfInterestControl::get_AutoWhiteBalanceSupported()
    @_property
    def auto_white_balance_supported(self) -> bool: ...
    # System.UInt32 Windows.Media.Devices.RegionsOfInterestControl::get_MaxRegions()
    @_property
    def max_regions(self) -> winrt.system.UInt32: ...

@typing.final
class SceneModeControl(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.SceneModeControl::SetValueAsync(Windows.Media.Devices.CaptureSceneMode)
    def set_value_async(self, scene_mode: CaptureSceneMode, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.CaptureSceneMode> Windows.Media.Devices.SceneModeControl::get_SupportedModes()
    @_property
    def supported_modes(self) -> typing.Sequence[CaptureSceneMode]: ...
    # Windows.Media.Devices.CaptureSceneMode Windows.Media.Devices.SceneModeControl::get_Value()
    @_property
    def value(self) -> CaptureSceneMode: ...

@typing.final
class TorchControl(winrt.system.Object):
    # System.Single Windows.Media.Devices.TorchControl::get_PowerPercent()
    @_property
    def power_percent(self) -> winrt.system.Single: ...
    # System.Void Windows.Media.Devices.TorchControl::put_PowerPercent(System.Single)
    @power_percent.setter
    def power_percent(self, value: winrt.system.Single) -> None: ...
    # System.Boolean Windows.Media.Devices.TorchControl::get_Enabled()
    @_property
    def enabled(self) -> bool: ...
    # System.Void Windows.Media.Devices.TorchControl::put_Enabled(System.Boolean)
    @enabled.setter
    def enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Media.Devices.TorchControl::get_PowerSupported()
    @_property
    def power_supported(self) -> bool: ...
    # System.Boolean Windows.Media.Devices.TorchControl::get_Supported()
    @_property
    def supported(self) -> bool: ...

@typing.final
class VideoDeviceController(winrt.system.Object, IMediaDeviceController):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.MediaProperties.IMediaEncodingProperties> Windows.Media.Devices.VideoDeviceController::GetAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType)
    def get_available_media_stream_properties(self, media_stream_type: windows_media_capture.MediaStreamType, /) -> typing.Sequence[windows_media_mediaproperties.IMediaEncodingProperties]: ...
    # System.Object Windows.Media.Devices.VideoDeviceController::GetDeviceProperty(System.String)
    def get_device_property(self, property_id: str, /) -> winrt.system.Object: ...
    # Windows.Media.Devices.VideoDeviceControllerGetDevicePropertyResult Windows.Media.Devices.VideoDeviceController::GetDevicePropertyByExtendedId(System.Byte[],Windows.Foundation.IReference`1<System.UInt32>)
    def get_device_property_by_extended_id(self, extended_property_id: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer], max_property_value_size: typing.Optional[winrt.system.UInt32], /) -> VideoDeviceControllerGetDevicePropertyResult: ...
    # Windows.Media.Devices.VideoDeviceControllerGetDevicePropertyResult Windows.Media.Devices.VideoDeviceController::GetDevicePropertyById(System.String,Windows.Foundation.IReference`1<System.UInt32>)
    def get_device_property_by_id(self, property_id: str, max_property_value_size: typing.Optional[winrt.system.UInt32], /) -> VideoDeviceControllerGetDevicePropertyResult: ...
    # Windows.Media.MediaProperties.IMediaEncodingProperties Windows.Media.Devices.VideoDeviceController::GetMediaStreamProperties(Windows.Media.Capture.MediaStreamType)
    def get_media_stream_properties(self, media_stream_type: windows_media_capture.MediaStreamType, /) -> windows_media_mediaproperties.IMediaEncodingProperties: ...
    # System.Void Windows.Media.Devices.VideoDeviceController::SetDeviceProperty(System.String,System.Object)
    def set_device_property(self, property_id: str, property_value: winrt.system.Object, /) -> None: ...
    # Windows.Media.Devices.VideoDeviceControllerSetDevicePropertyStatus Windows.Media.Devices.VideoDeviceController::SetDevicePropertyByExtendedId(System.Byte[],System.Byte[])
    def set_device_property_by_extended_id(self, extended_property_id: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer], property_value: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer], /) -> VideoDeviceControllerSetDevicePropertyStatus: ...
    # Windows.Media.Devices.VideoDeviceControllerSetDevicePropertyStatus Windows.Media.Devices.VideoDeviceController::SetDevicePropertyById(System.String,System.Object)
    def set_device_property_by_id(self, property_id: str, property_value: winrt.system.Object, /) -> VideoDeviceControllerSetDevicePropertyStatus: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.VideoDeviceController::SetMediaStreamPropertiesAsync(Windows.Media.Capture.MediaStreamType,Windows.Media.MediaProperties.IMediaEncodingProperties)
    def set_media_stream_properties_async(self, media_stream_type: windows_media_capture.MediaStreamType, media_encoding_properties: windows_media_mediaproperties.IMediaEncodingProperties, /) -> windows_foundation.IAsyncAction: ...
    # System.Boolean Windows.Media.Devices.VideoDeviceController::TryAcquireExclusiveControl(System.String,Windows.Media.Capture.MediaCaptureDeviceExclusiveControlReleaseMode)
    def try_acquire_exclusive_control(self, device_id: str, mode: windows_media_capture.MediaCaptureDeviceExclusiveControlReleaseMode, /) -> bool: ...
    # System.Boolean Windows.Media.Devices.VideoDeviceController::TryGetPowerlineFrequency(Windows.Media.Capture.PowerlineFrequency&)
    def try_get_powerline_frequency(self) -> typing.Tuple[bool, windows_media_capture.PowerlineFrequency]: ...
    # System.Boolean Windows.Media.Devices.VideoDeviceController::TrySetPowerlineFrequency(Windows.Media.Capture.PowerlineFrequency)
    def try_set_powerline_frequency(self, value: windows_media_capture.PowerlineFrequency, /) -> bool: ...
    # Windows.Media.Devices.CameraOcclusionInfo Windows.Media.Devices.VideoDeviceController::get_CameraOcclusionInfo()
    @_property
    def camera_occlusion_info(self) -> CameraOcclusionInfo: ...
    # Windows.Media.Devices.CaptureUse Windows.Media.Devices.VideoDeviceController::get_PrimaryUse()
    @_property
    def primary_use(self) -> CaptureUse: ...
    # System.Void Windows.Media.Devices.VideoDeviceController::put_PrimaryUse(Windows.Media.Devices.CaptureUse)
    @primary_use.setter
    def primary_use(self, value: CaptureUse) -> None: ...
    # Windows.Media.Devices.FocusControl Windows.Media.Devices.VideoDeviceController::get_FocusControl()
    @_property
    def focus_control(self) -> FocusControl: ...
    # Windows.Media.Devices.IsoSpeedControl Windows.Media.Devices.VideoDeviceController::get_IsoSpeedControl()
    @_property
    def iso_speed_control(self) -> IsoSpeedControl: ...
    # Windows.Media.Devices.LowLagPhotoControl Windows.Media.Devices.VideoDeviceController::get_LowLagPhoto()
    @_property
    def low_lag_photo(self) -> LowLagPhotoControl: ...
    # Windows.Media.Devices.WhiteBalanceControl Windows.Media.Devices.VideoDeviceController::get_WhiteBalanceControl()
    @_property
    def white_balance_control(self) -> WhiteBalanceControl: ...
    # Windows.Media.Devices.TorchControl Windows.Media.Devices.VideoDeviceController::get_TorchControl()
    @_property
    def torch_control(self) -> TorchControl: ...
    # Windows.Media.Devices.SceneModeControl Windows.Media.Devices.VideoDeviceController::get_SceneModeControl()
    @_property
    def scene_mode_control(self) -> SceneModeControl: ...
    # Windows.Media.Devices.RegionsOfInterestControl Windows.Media.Devices.VideoDeviceController::get_RegionsOfInterestControl()
    @_property
    def regions_of_interest_control(self) -> RegionsOfInterestControl: ...
    # Windows.Media.Devices.FlashControl Windows.Media.Devices.VideoDeviceController::get_FlashControl()
    @_property
    def flash_control(self) -> FlashControl: ...
    # Windows.Media.Devices.LowLagPhotoSequenceControl Windows.Media.Devices.VideoDeviceController::get_LowLagPhotoSequence()
    @_property
    def low_lag_photo_sequence(self) -> LowLagPhotoSequenceControl: ...
    # Windows.Media.Devices.ExposureCompensationControl Windows.Media.Devices.VideoDeviceController::get_ExposureCompensationControl()
    @_property
    def exposure_compensation_control(self) -> ExposureCompensationControl: ...
    # Windows.Media.Devices.ExposureControl Windows.Media.Devices.VideoDeviceController::get_ExposureControl()
    @_property
    def exposure_control(self) -> ExposureControl: ...
    # Windows.Media.Devices.ZoomControl Windows.Media.Devices.VideoDeviceController::get_ZoomControl()
    @_property
    def zoom_control(self) -> ZoomControl: ...
    # Windows.Media.Devices.PhotoConfirmationControl Windows.Media.Devices.VideoDeviceController::get_PhotoConfirmationControl()
    @_property
    def photo_confirmation_control(self) -> PhotoConfirmationControl: ...
    # Windows.Media.Devices.Core.VariablePhotoSequenceController Windows.Media.Devices.VideoDeviceController::get_VariablePhotoSequenceController()
    @_property
    def variable_photo_sequence_controller(self) -> windows_media_devices_core.VariablePhotoSequenceController: ...
    # Windows.Media.Devices.MediaCaptureOptimization Windows.Media.Devices.VideoDeviceController::get_DesiredOptimization()
    @_property
    def desired_optimization(self) -> MediaCaptureOptimization: ...
    # System.Void Windows.Media.Devices.VideoDeviceController::put_DesiredOptimization(Windows.Media.Devices.MediaCaptureOptimization)
    @desired_optimization.setter
    def desired_optimization(self, value: MediaCaptureOptimization) -> None: ...
    # Windows.Media.Devices.AdvancedPhotoControl Windows.Media.Devices.VideoDeviceController::get_AdvancedPhotoControl()
    @_property
    def advanced_photo_control(self) -> AdvancedPhotoControl: ...
    # Windows.Media.Devices.ExposurePriorityVideoControl Windows.Media.Devices.VideoDeviceController::get_ExposurePriorityVideoControl()
    @_property
    def exposure_priority_video_control(self) -> ExposurePriorityVideoControl: ...
    # Windows.Media.Devices.HdrVideoControl Windows.Media.Devices.VideoDeviceController::get_HdrVideoControl()
    @_property
    def hdr_video_control(self) -> HdrVideoControl: ...
    # Windows.Media.Devices.OpticalImageStabilizationControl Windows.Media.Devices.VideoDeviceController::get_OpticalImageStabilizationControl()
    @_property
    def optical_image_stabilization_control(self) -> OpticalImageStabilizationControl: ...
    # System.String Windows.Media.Devices.VideoDeviceController::get_Id()
    @_property
    def id(self) -> str: ...
    # Windows.Media.Devices.VideoTemporalDenoisingControl Windows.Media.Devices.VideoDeviceController::get_VideoTemporalDenoisingControl()
    @_property
    def video_temporal_denoising_control(self) -> VideoTemporalDenoisingControl: ...
    # Windows.Media.Devices.InfraredTorchControl Windows.Media.Devices.VideoDeviceController::get_InfraredTorchControl()
    @_property
    def infrared_torch_control(self) -> InfraredTorchControl: ...
    # Windows.Media.Devices.PanelBasedOptimizationControl Windows.Media.Devices.VideoDeviceController::get_PanelBasedOptimizationControl()
    @_property
    def panel_based_optimization_control(self) -> PanelBasedOptimizationControl: ...
    # Windows.Media.Devices.DigitalWindowControl Windows.Media.Devices.VideoDeviceController::get_DigitalWindowControl()
    @_property
    def digital_window_control(self) -> DigitalWindowControl: ...
    # Windows.Media.Devices.MediaDeviceControl Windows.Media.Devices.VideoDeviceController::get_Zoom()
    @_property
    def zoom(self) -> MediaDeviceControl: ...
    # Windows.Media.Devices.MediaDeviceControl Windows.Media.Devices.VideoDeviceController::get_Contrast()
    @_property
    def contrast(self) -> MediaDeviceControl: ...
    # Windows.Media.Devices.MediaDeviceControl Windows.Media.Devices.VideoDeviceController::get_BacklightCompensation()
    @_property
    def backlight_compensation(self) -> MediaDeviceControl: ...
    # Windows.Media.Devices.MediaDeviceControl Windows.Media.Devices.VideoDeviceController::get_WhiteBalance()
    @_property
    def white_balance(self) -> MediaDeviceControl: ...
    # Windows.Media.Devices.MediaDeviceControl Windows.Media.Devices.VideoDeviceController::get_Brightness()
    @_property
    def brightness(self) -> MediaDeviceControl: ...
    # Windows.Media.Devices.MediaDeviceControl Windows.Media.Devices.VideoDeviceController::get_Exposure()
    @_property
    def exposure(self) -> MediaDeviceControl: ...
    # Windows.Media.Devices.MediaDeviceControl Windows.Media.Devices.VideoDeviceController::get_Tilt()
    @_property
    def tilt(self) -> MediaDeviceControl: ...
    # Windows.Media.Devices.MediaDeviceControl Windows.Media.Devices.VideoDeviceController::get_Roll()
    @_property
    def roll(self) -> MediaDeviceControl: ...
    # Windows.Media.Devices.MediaDeviceControl Windows.Media.Devices.VideoDeviceController::get_Hue()
    @_property
    def hue(self) -> MediaDeviceControl: ...
    # Windows.Media.Devices.MediaDeviceControl Windows.Media.Devices.VideoDeviceController::get_Pan()
    @_property
    def pan(self) -> MediaDeviceControl: ...
    # Windows.Media.Devices.MediaDeviceControl Windows.Media.Devices.VideoDeviceController::get_Focus()
    @_property
    def focus(self) -> MediaDeviceControl: ...

@typing.final
class VideoDeviceControllerGetDevicePropertyResult(winrt.system.Object):
    # Windows.Media.Devices.VideoDeviceControllerGetDevicePropertyStatus Windows.Media.Devices.VideoDeviceControllerGetDevicePropertyResult::get_Status()
    @_property
    def status(self) -> VideoDeviceControllerGetDevicePropertyStatus: ...
    # System.Object Windows.Media.Devices.VideoDeviceControllerGetDevicePropertyResult::get_Value()
    @_property
    def value(self) -> winrt.system.Object: ...

@typing.final
class VideoTemporalDenoisingControl(winrt.system.Object):
    # Windows.Media.Devices.VideoTemporalDenoisingMode Windows.Media.Devices.VideoTemporalDenoisingControl::get_Mode()
    @_property
    def mode(self) -> VideoTemporalDenoisingMode: ...
    # System.Void Windows.Media.Devices.VideoTemporalDenoisingControl::put_Mode(Windows.Media.Devices.VideoTemporalDenoisingMode)
    @mode.setter
    def mode(self, value: VideoTemporalDenoisingMode) -> None: ...
    # System.Boolean Windows.Media.Devices.VideoTemporalDenoisingControl::get_Supported()
    @_property
    def supported(self) -> bool: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.VideoTemporalDenoisingMode> Windows.Media.Devices.VideoTemporalDenoisingControl::get_SupportedModes()
    @_property
    def supported_modes(self) -> typing.Sequence[VideoTemporalDenoisingMode]: ...

@typing.final
class WhiteBalanceControl(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.WhiteBalanceControl::SetPresetAsync(Windows.Media.Devices.ColorTemperaturePreset)
    def set_preset_async(self, preset: ColorTemperaturePreset, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.WhiteBalanceControl::SetValueAsync(System.UInt32)
    def set_value_async(self, temperature: winrt.system.UInt32, /) -> windows_foundation.IAsyncAction: ...
    # System.UInt32 Windows.Media.Devices.WhiteBalanceControl::get_Max()
    @_property
    def max(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Media.Devices.WhiteBalanceControl::get_Min()
    @_property
    def min(self) -> winrt.system.UInt32: ...
    # Windows.Media.Devices.ColorTemperaturePreset Windows.Media.Devices.WhiteBalanceControl::get_Preset()
    @_property
    def preset(self) -> ColorTemperaturePreset: ...
    # System.UInt32 Windows.Media.Devices.WhiteBalanceControl::get_Step()
    @_property
    def step(self) -> winrt.system.UInt32: ...
    # System.Boolean Windows.Media.Devices.WhiteBalanceControl::get_Supported()
    @_property
    def supported(self) -> bool: ...
    # System.UInt32 Windows.Media.Devices.WhiteBalanceControl::get_Value()
    @_property
    def value(self) -> winrt.system.UInt32: ...

@typing.final
class ZoomControl(winrt.system.Object):
    # System.Void Windows.Media.Devices.ZoomControl::Configure(Windows.Media.Devices.ZoomSettings)
    def configure(self, settings: ZoomSettings, /) -> None: ...
    # System.Single Windows.Media.Devices.ZoomControl::get_Value()
    @_property
    def value(self) -> winrt.system.Single: ...
    # System.Void Windows.Media.Devices.ZoomControl::put_Value(System.Single)
    @value.setter
    def value(self, value: winrt.system.Single) -> None: ...
    # System.Single Windows.Media.Devices.ZoomControl::get_Max()
    @_property
    def max(self) -> winrt.system.Single: ...
    # System.Single Windows.Media.Devices.ZoomControl::get_Min()
    @_property
    def min(self) -> winrt.system.Single: ...
    # System.Single Windows.Media.Devices.ZoomControl::get_Step()
    @_property
    def step(self) -> winrt.system.Single: ...
    # System.Boolean Windows.Media.Devices.ZoomControl::get_Supported()
    @_property
    def supported(self) -> bool: ...
    # Windows.Media.Devices.ZoomTransitionMode Windows.Media.Devices.ZoomControl::get_Mode()
    @_property
    def mode(self) -> ZoomTransitionMode: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.Devices.ZoomTransitionMode> Windows.Media.Devices.ZoomControl::get_SupportedModes()
    @_property
    def supported_modes(self) -> typing.Sequence[ZoomTransitionMode]: ...

@typing.final
class ZoomSettings(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Single Windows.Media.Devices.ZoomSettings::get_Value()
    @_property
    def value(self) -> winrt.system.Single: ...
    # System.Void Windows.Media.Devices.ZoomSettings::put_Value(System.Single)
    @value.setter
    def value(self, value: winrt.system.Single) -> None: ...
    # Windows.Media.Devices.ZoomTransitionMode Windows.Media.Devices.ZoomSettings::get_Mode()
    @_property
    def mode(self) -> ZoomTransitionMode: ...
    # System.Void Windows.Media.Devices.ZoomSettings::put_Mode(Windows.Media.Devices.ZoomTransitionMode)
    @mode.setter
    def mode(self, value: ZoomTransitionMode) -> None: ...

@typing.final
class _IDefaultAudioDeviceChangedEventArgs: ...

class IDefaultAudioDeviceChangedEventArgs(winrt._winrt.IInspectable):
    # System.String Windows.Media.Devices.IDefaultAudioDeviceChangedEventArgs::get_Id()
    @_property
    @abstractmethod
    def id(self) -> str: ...
    # Windows.Media.Devices.AudioDeviceRole Windows.Media.Devices.IDefaultAudioDeviceChangedEventArgs::get_Role()
    @_property
    @abstractmethod
    def role(self) -> AudioDeviceRole: ...

@typing.final
class _IMediaDeviceController: ...

class IMediaDeviceController(winrt._winrt.IInspectable):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Media.MediaProperties.IMediaEncodingProperties> Windows.Media.Devices.IMediaDeviceController::GetAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType)
    @abstractmethod
    def get_available_media_stream_properties(self, media_stream_type: windows_media_capture.MediaStreamType, /) -> typing.Sequence[windows_media_mediaproperties.IMediaEncodingProperties]: ...
    # Windows.Media.MediaProperties.IMediaEncodingProperties Windows.Media.Devices.IMediaDeviceController::GetMediaStreamProperties(Windows.Media.Capture.MediaStreamType)
    @abstractmethod
    def get_media_stream_properties(self, media_stream_type: windows_media_capture.MediaStreamType, /) -> windows_media_mediaproperties.IMediaEncodingProperties: ...
    # Windows.Foundation.IAsyncAction Windows.Media.Devices.IMediaDeviceController::SetMediaStreamPropertiesAsync(Windows.Media.Capture.MediaStreamType,Windows.Media.MediaProperties.IMediaEncodingProperties)
    @abstractmethod
    def set_media_stream_properties_async(self, media_stream_type: windows_media_capture.MediaStreamType, media_encoding_properties: windows_media_mediaproperties.IMediaEncodingProperties, /) -> windows_foundation.IAsyncAction: ...

