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

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 as windows_devices_enumeration
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.foundation.numerics as windows_foundation_numerics
import winrt.windows.graphics.imaging as windows_graphics_imaging
import winrt.windows.media as windows_media
import winrt.windows.media.devices.core as windows_media_devices_core

from winrt.windows.devices.perception import PerceptionFrameSourceAccessStatus, PerceptionFrameSourcePropertyChangeStatus

Self = typing.TypeVar('Self')

@typing.final
class KnownCameraIntrinsicsProperties_Static(type):
    @_property
    def focal_length(cls) -> str: ...
    @_property
    def principal_point(cls) -> str: ...
    @_property
    def radial_distortion(cls) -> str: ...
    @_property
    def tangential_distortion(cls) -> str: ...

@typing.final
class KnownCameraIntrinsicsProperties(winrt.system.Object, metaclass=KnownCameraIntrinsicsProperties_Static):
    pass

@typing.final
class KnownPerceptionColorFrameSourceProperties_Static(type):
    @_property
    def auto_exposure_enabled(cls) -> str: ...
    @_property
    def exposure(cls) -> str: ...
    @_property
    def exposure_compensation(cls) -> str: ...

@typing.final
class KnownPerceptionColorFrameSourceProperties(winrt.system.Object, metaclass=KnownPerceptionColorFrameSourceProperties_Static):
    pass

@typing.final
class KnownPerceptionDepthFrameSourceProperties_Static(type):
    @_property
    def max_depth(cls) -> str: ...
    @_property
    def min_depth(cls) -> str: ...

@typing.final
class KnownPerceptionDepthFrameSourceProperties(winrt.system.Object, metaclass=KnownPerceptionDepthFrameSourceProperties_Static):
    pass

@typing.final
class KnownPerceptionFrameSourceProperties_Static(type):
    @_property
    def device_model_version(cls) -> str: ...
    @_property
    def enclosure_location(cls) -> str: ...
    @_property
    def frame_kind(cls) -> str: ...
    @_property
    def id(cls) -> str: ...
    @_property
    def physical_device_ids(cls) -> str: ...
    @_property
    def device_id(cls) -> str: ...

@typing.final
class KnownPerceptionFrameSourceProperties(winrt.system.Object, metaclass=KnownPerceptionFrameSourceProperties_Static):
    pass

@typing.final
class KnownPerceptionInfraredFrameSourceProperties_Static(type):
    @_property
    def active_illumination_enabled(cls) -> str: ...
    @_property
    def ambient_subtraction_enabled(cls) -> str: ...
    @_property
    def auto_exposure_enabled(cls) -> str: ...
    @_property
    def exposure(cls) -> str: ...
    @_property
    def exposure_compensation(cls) -> str: ...
    @_property
    def interleaved_illumination_enabled(cls) -> str: ...
    @_property
    def structure_light_pattern_enabled(cls) -> str: ...

@typing.final
class KnownPerceptionInfraredFrameSourceProperties(winrt.system.Object, metaclass=KnownPerceptionInfraredFrameSourceProperties_Static):
    pass

@typing.final
class KnownPerceptionVideoFrameSourceProperties_Static(type):
    @_property
    def available_video_profiles(cls) -> str: ...
    @_property
    def camera_intrinsics(cls) -> str: ...
    @_property
    def is_mirrored(cls) -> str: ...
    @_property
    def supported_video_profiles(cls) -> str: ...
    @_property
    def video_profile(cls) -> str: ...

@typing.final
class KnownPerceptionVideoFrameSourceProperties(winrt.system.Object, metaclass=KnownPerceptionVideoFrameSourceProperties_Static):
    pass

@typing.final
class KnownPerceptionVideoProfileProperties_Static(type):
    @_property
    def bitmap_alpha_mode(cls) -> str: ...
    @_property
    def bitmap_pixel_format(cls) -> str: ...
    @_property
    def frame_duration(cls) -> str: ...
    @_property
    def height(cls) -> str: ...
    @_property
    def width(cls) -> str: ...

@typing.final
class KnownPerceptionVideoProfileProperties(winrt.system.Object, metaclass=KnownPerceptionVideoProfileProperties_Static):
    pass

@typing.final
class PerceptionColorFrame(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionColorFrame: ...
    def close(self) -> None: ...
    @_property
    def video_frame(self) -> typing.Optional[windows_media.VideoFrame]: ...

@typing.final
class PerceptionColorFrameArrivedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionColorFrameArrivedEventArgs: ...
    def try_open_frame(self) -> typing.Optional[PerceptionColorFrame]: ...
    @_property
    def relative_time(self) -> datetime.timedelta: ...

@typing.final
class PerceptionColorFrameReader(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionColorFrameReader: ...
    def close(self) -> None: ...
    def try_read_latest_frame(self) -> typing.Optional[PerceptionColorFrame]: ...
    def add_frame_arrived(self, handler: windows_foundation.TypedEventHandler[PerceptionColorFrameReader, PerceptionColorFrameArrivedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_frame_arrived(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def is_paused(self) -> bool: ...
    @is_paused.setter
    def is_paused(self, value: bool) -> None: ...
    @_property
    def source(self) -> typing.Optional[PerceptionColorFrameSource]: ...

@typing.final
class PerceptionColorFrameSource_Static(type):
    def create_watcher(cls) -> typing.Optional[PerceptionColorFrameSourceWatcher]: ...
    def find_all_async(cls) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[PerceptionColorFrameSource]]: ...
    def from_id_async(cls, id: str, /) -> windows_foundation.IAsyncOperation[PerceptionColorFrameSource]: ...
    def request_access_async(cls) -> windows_foundation.IAsyncOperation[PerceptionFrameSourceAccessStatus]: ...

@typing.final
class PerceptionColorFrameSource(winrt.system.Object, metaclass=PerceptionColorFrameSource_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionColorFrameSource: ...
    def acquire_control_session(self) -> typing.Optional[PerceptionControlSession]: ...
    def can_control_independently_from(self, target_id: str, /) -> bool: ...
    def is_correlated_with(self, target_id: str, /) -> bool: ...
    def open_reader(self) -> typing.Optional[PerceptionColorFrameReader]: ...
    def try_get_depth_correlated_camera_intrinsics_async(self, correlated_depth_frame_source: typing.Optional[PerceptionDepthFrameSource], /) -> windows_foundation.IAsyncOperation[PerceptionDepthCorrelatedCameraIntrinsics]: ...
    def try_get_depth_correlated_coordinate_mapper_async(self, target_source_id: str, correlated_depth_frame_source: typing.Optional[PerceptionDepthFrameSource], /) -> windows_foundation.IAsyncOperation[PerceptionDepthCorrelatedCoordinateMapper]: ...
    def try_get_transform_to(self, target_id: str, /) -> typing.Tuple[bool, windows_foundation_numerics.Matrix4x4]: ...
    def try_set_video_profile_async(self, control_session: typing.Optional[PerceptionControlSession], profile: typing.Optional[PerceptionVideoProfile], /) -> windows_foundation.IAsyncOperation[PerceptionFrameSourcePropertyChangeResult]: ...
    def add_active_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionColorFrameSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_active_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_available_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionColorFrameSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_available_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_camera_intrinsics_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionColorFrameSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_camera_intrinsics_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_properties_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionColorFrameSource, PerceptionFrameSourcePropertiesChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_properties_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_video_profile_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionColorFrameSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_video_profile_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def active(self) -> bool: ...
    @_property
    def available(self) -> bool: ...
    @_property
    def available_video_profiles(self) -> typing.Optional[windows_foundation_collections.IVectorView[PerceptionVideoProfile]]: ...
    @_property
    def camera_intrinsics(self) -> typing.Optional[windows_media_devices_core.CameraIntrinsics]: ...
    @_property
    def device_kind(self) -> str: ...
    @_property
    def display_name(self) -> str: ...
    @_property
    def id(self) -> str: ...
    @_property
    def is_controlled(self) -> bool: ...
    @_property
    def properties(self) -> typing.Optional[windows_foundation_collections.IMapView[str, winrt.system.Object]]: ...
    @_property
    def supported_video_profiles(self) -> typing.Optional[windows_foundation_collections.IVectorView[PerceptionVideoProfile]]: ...
    @_property
    def video_profile(self) -> typing.Optional[PerceptionVideoProfile]: ...
    @_property
    def device_id(self) -> str: ...

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

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

@typing.final
class PerceptionColorFrameSourceWatcher(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionColorFrameSourceWatcher: ...
    def start(self) -> None: ...
    def stop(self) -> None: ...
    def add_enumeration_completed(self, handler: windows_foundation.TypedEventHandler[PerceptionColorFrameSourceWatcher, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_enumeration_completed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_source_added(self, handler: windows_foundation.TypedEventHandler[PerceptionColorFrameSourceWatcher, PerceptionColorFrameSourceAddedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_source_added(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_source_removed(self, handler: windows_foundation.TypedEventHandler[PerceptionColorFrameSourceWatcher, PerceptionColorFrameSourceRemovedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_source_removed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_stopped(self, handler: windows_foundation.TypedEventHandler[PerceptionColorFrameSourceWatcher, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_stopped(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def status(self) -> windows_devices_enumeration.DeviceWatcherStatus: ...

@typing.final
class PerceptionControlSession(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionControlSession: ...
    def close(self) -> None: ...
    def try_set_property_async(self, name: str, value: typing.Optional[winrt.system.Object], /) -> windows_foundation.IAsyncOperation[PerceptionFrameSourcePropertyChangeResult]: ...
    def add_control_lost(self, handler: windows_foundation.TypedEventHandler[PerceptionControlSession, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_control_lost(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...

@typing.final
class PerceptionDepthCorrelatedCameraIntrinsics(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionDepthCorrelatedCameraIntrinsics: ...
    def unproject_all_pixels_at_correlated_depth_async(self, depth_frame: typing.Optional[PerceptionDepthFrame], results: typing.Union[winrt.system.Array[windows_foundation_numerics.Vector3], winrt.system.WriteableBuffer], /) -> windows_foundation.IAsyncAction: ...
    def unproject_pixel_at_correlated_depth(self, pixel_coordinate: windows_foundation.Point, depth_frame: typing.Optional[PerceptionDepthFrame], /) -> windows_foundation_numerics.Vector3: ...
    def unproject_pixels_at_correlated_depth(self, source_coordinates: typing.Union[winrt.system.Array[windows_foundation.Point], winrt.system.ReadableBuffer], depth_frame: typing.Optional[PerceptionDepthFrame], results: typing.Union[winrt.system.Array[windows_foundation_numerics.Vector3], winrt.system.WriteableBuffer], /) -> None: ...
    def unproject_region_pixels_at_correlated_depth_async(self, region: windows_foundation.Rect, depth_frame: typing.Optional[PerceptionDepthFrame], results: typing.Union[winrt.system.Array[windows_foundation_numerics.Vector3], winrt.system.WriteableBuffer], /) -> windows_foundation.IAsyncAction: ...

@typing.final
class PerceptionDepthCorrelatedCoordinateMapper(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionDepthCorrelatedCoordinateMapper: ...
    def map_all_pixels_to_target_async(self, depth_frame: typing.Optional[PerceptionDepthFrame], target_coordinates: typing.Union[winrt.system.Array[windows_foundation.Point], winrt.system.WriteableBuffer], /) -> windows_foundation.IAsyncAction: ...
    def map_pixel_to_target(self, source_pixel_coordinate: windows_foundation.Point, depth_frame: typing.Optional[PerceptionDepthFrame], /) -> windows_foundation.Point: ...
    def map_pixels_to_target(self, source_coordinates: typing.Union[winrt.system.Array[windows_foundation.Point], winrt.system.ReadableBuffer], depth_frame: typing.Optional[PerceptionDepthFrame], results: typing.Union[winrt.system.Array[windows_foundation.Point], winrt.system.WriteableBuffer], /) -> None: ...
    def map_region_of_pixels_to_target_async(self, region: windows_foundation.Rect, depth_frame: typing.Optional[PerceptionDepthFrame], target_coordinates: typing.Union[winrt.system.Array[windows_foundation.Point], winrt.system.WriteableBuffer], /) -> windows_foundation.IAsyncAction: ...

@typing.final
class PerceptionDepthFrame(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionDepthFrame: ...
    def close(self) -> None: ...
    @_property
    def video_frame(self) -> typing.Optional[windows_media.VideoFrame]: ...

@typing.final
class PerceptionDepthFrameArrivedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionDepthFrameArrivedEventArgs: ...
    def try_open_frame(self) -> typing.Optional[PerceptionDepthFrame]: ...
    @_property
    def relative_time(self) -> datetime.timedelta: ...

@typing.final
class PerceptionDepthFrameReader(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionDepthFrameReader: ...
    def close(self) -> None: ...
    def try_read_latest_frame(self) -> typing.Optional[PerceptionDepthFrame]: ...
    def add_frame_arrived(self, handler: windows_foundation.TypedEventHandler[PerceptionDepthFrameReader, PerceptionDepthFrameArrivedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_frame_arrived(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def is_paused(self) -> bool: ...
    @is_paused.setter
    def is_paused(self, value: bool) -> None: ...
    @_property
    def source(self) -> typing.Optional[PerceptionDepthFrameSource]: ...

@typing.final
class PerceptionDepthFrameSource_Static(type):
    def create_watcher(cls) -> typing.Optional[PerceptionDepthFrameSourceWatcher]: ...
    def find_all_async(cls) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[PerceptionDepthFrameSource]]: ...
    def from_id_async(cls, id: str, /) -> windows_foundation.IAsyncOperation[PerceptionDepthFrameSource]: ...
    def request_access_async(cls) -> windows_foundation.IAsyncOperation[PerceptionFrameSourceAccessStatus]: ...

@typing.final
class PerceptionDepthFrameSource(winrt.system.Object, metaclass=PerceptionDepthFrameSource_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionDepthFrameSource: ...
    def acquire_control_session(self) -> typing.Optional[PerceptionControlSession]: ...
    def can_control_independently_from(self, target_id: str, /) -> bool: ...
    def is_correlated_with(self, target_id: str, /) -> bool: ...
    def open_reader(self) -> typing.Optional[PerceptionDepthFrameReader]: ...
    def try_get_depth_correlated_camera_intrinsics_async(self, target: typing.Optional[PerceptionDepthFrameSource], /) -> windows_foundation.IAsyncOperation[PerceptionDepthCorrelatedCameraIntrinsics]: ...
    def try_get_depth_correlated_coordinate_mapper_async(self, target_id: str, depth_frame_source_to_map_with: typing.Optional[PerceptionDepthFrameSource], /) -> windows_foundation.IAsyncOperation[PerceptionDepthCorrelatedCoordinateMapper]: ...
    def try_get_transform_to(self, target_id: str, /) -> typing.Tuple[bool, windows_foundation_numerics.Matrix4x4]: ...
    def try_set_video_profile_async(self, control_session: typing.Optional[PerceptionControlSession], profile: typing.Optional[PerceptionVideoProfile], /) -> windows_foundation.IAsyncOperation[PerceptionFrameSourcePropertyChangeResult]: ...
    def add_active_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionDepthFrameSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_active_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_available_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionDepthFrameSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_available_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_camera_intrinsics_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionDepthFrameSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_camera_intrinsics_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_properties_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionDepthFrameSource, PerceptionFrameSourcePropertiesChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_properties_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_video_profile_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionDepthFrameSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_video_profile_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def active(self) -> bool: ...
    @_property
    def available(self) -> bool: ...
    @_property
    def available_video_profiles(self) -> typing.Optional[windows_foundation_collections.IVectorView[PerceptionVideoProfile]]: ...
    @_property
    def camera_intrinsics(self) -> typing.Optional[windows_media_devices_core.CameraIntrinsics]: ...
    @_property
    def device_kind(self) -> str: ...
    @_property
    def display_name(self) -> str: ...
    @_property
    def id(self) -> str: ...
    @_property
    def is_controlled(self) -> bool: ...
    @_property
    def properties(self) -> typing.Optional[windows_foundation_collections.IMapView[str, winrt.system.Object]]: ...
    @_property
    def supported_video_profiles(self) -> typing.Optional[windows_foundation_collections.IVectorView[PerceptionVideoProfile]]: ...
    @_property
    def video_profile(self) -> typing.Optional[PerceptionVideoProfile]: ...
    @_property
    def device_id(self) -> str: ...

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

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

@typing.final
class PerceptionDepthFrameSourceWatcher(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionDepthFrameSourceWatcher: ...
    def start(self) -> None: ...
    def stop(self) -> None: ...
    def add_enumeration_completed(self, handler: windows_foundation.TypedEventHandler[PerceptionDepthFrameSourceWatcher, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_enumeration_completed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_source_added(self, handler: windows_foundation.TypedEventHandler[PerceptionDepthFrameSourceWatcher, PerceptionDepthFrameSourceAddedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_source_added(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_source_removed(self, handler: windows_foundation.TypedEventHandler[PerceptionDepthFrameSourceWatcher, PerceptionDepthFrameSourceRemovedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_source_removed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_stopped(self, handler: windows_foundation.TypedEventHandler[PerceptionDepthFrameSourceWatcher, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_stopped(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def status(self) -> windows_devices_enumeration.DeviceWatcherStatus: ...

@typing.final
class PerceptionFrameSourcePropertiesChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionFrameSourcePropertiesChangedEventArgs: ...
    @_property
    def collection_change(self) -> windows_foundation_collections.CollectionChange: ...
    @_property
    def key(self) -> str: ...

@typing.final
class PerceptionFrameSourcePropertyChangeResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionFrameSourcePropertyChangeResult: ...
    @_property
    def new_value(self) -> typing.Optional[winrt.system.Object]: ...
    @_property
    def status(self) -> PerceptionFrameSourcePropertyChangeStatus: ...

@typing.final
class PerceptionInfraredFrame(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionInfraredFrame: ...
    def close(self) -> None: ...
    @_property
    def video_frame(self) -> typing.Optional[windows_media.VideoFrame]: ...

@typing.final
class PerceptionInfraredFrameArrivedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionInfraredFrameArrivedEventArgs: ...
    def try_open_frame(self) -> typing.Optional[PerceptionInfraredFrame]: ...
    @_property
    def relative_time(self) -> datetime.timedelta: ...

@typing.final
class PerceptionInfraredFrameReader(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionInfraredFrameReader: ...
    def close(self) -> None: ...
    def try_read_latest_frame(self) -> typing.Optional[PerceptionInfraredFrame]: ...
    def add_frame_arrived(self, handler: windows_foundation.TypedEventHandler[PerceptionInfraredFrameReader, PerceptionInfraredFrameArrivedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_frame_arrived(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def is_paused(self) -> bool: ...
    @is_paused.setter
    def is_paused(self, value: bool) -> None: ...
    @_property
    def source(self) -> typing.Optional[PerceptionInfraredFrameSource]: ...

@typing.final
class PerceptionInfraredFrameSource_Static(type):
    def create_watcher(cls) -> typing.Optional[PerceptionInfraredFrameSourceWatcher]: ...
    def find_all_async(cls) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[PerceptionInfraredFrameSource]]: ...
    def from_id_async(cls, id: str, /) -> windows_foundation.IAsyncOperation[PerceptionInfraredFrameSource]: ...
    def request_access_async(cls) -> windows_foundation.IAsyncOperation[PerceptionFrameSourceAccessStatus]: ...

@typing.final
class PerceptionInfraredFrameSource(winrt.system.Object, metaclass=PerceptionInfraredFrameSource_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionInfraredFrameSource: ...
    def acquire_control_session(self) -> typing.Optional[PerceptionControlSession]: ...
    def can_control_independently_from(self, target_id: str, /) -> bool: ...
    def is_correlated_with(self, target_id: str, /) -> bool: ...
    def open_reader(self) -> typing.Optional[PerceptionInfraredFrameReader]: ...
    def try_get_depth_correlated_camera_intrinsics_async(self, target: typing.Optional[PerceptionDepthFrameSource], /) -> windows_foundation.IAsyncOperation[PerceptionDepthCorrelatedCameraIntrinsics]: ...
    def try_get_depth_correlated_coordinate_mapper_async(self, target_id: str, depth_frame_source_to_map_with: typing.Optional[PerceptionDepthFrameSource], /) -> windows_foundation.IAsyncOperation[PerceptionDepthCorrelatedCoordinateMapper]: ...
    def try_get_transform_to(self, target_id: str, /) -> typing.Tuple[bool, windows_foundation_numerics.Matrix4x4]: ...
    def try_set_video_profile_async(self, control_session: typing.Optional[PerceptionControlSession], profile: typing.Optional[PerceptionVideoProfile], /) -> windows_foundation.IAsyncOperation[PerceptionFrameSourcePropertyChangeResult]: ...
    def add_active_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionInfraredFrameSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_active_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_available_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionInfraredFrameSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_available_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_camera_intrinsics_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionInfraredFrameSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_camera_intrinsics_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_properties_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionInfraredFrameSource, PerceptionFrameSourcePropertiesChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_properties_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_video_profile_changed(self, handler: windows_foundation.TypedEventHandler[PerceptionInfraredFrameSource, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_video_profile_changed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def active(self) -> bool: ...
    @_property
    def available(self) -> bool: ...
    @_property
    def available_video_profiles(self) -> typing.Optional[windows_foundation_collections.IVectorView[PerceptionVideoProfile]]: ...
    @_property
    def camera_intrinsics(self) -> typing.Optional[windows_media_devices_core.CameraIntrinsics]: ...
    @_property
    def device_kind(self) -> str: ...
    @_property
    def display_name(self) -> str: ...
    @_property
    def id(self) -> str: ...
    @_property
    def is_controlled(self) -> bool: ...
    @_property
    def properties(self) -> typing.Optional[windows_foundation_collections.IMapView[str, winrt.system.Object]]: ...
    @_property
    def supported_video_profiles(self) -> typing.Optional[windows_foundation_collections.IVectorView[PerceptionVideoProfile]]: ...
    @_property
    def video_profile(self) -> typing.Optional[PerceptionVideoProfile]: ...
    @_property
    def device_id(self) -> str: ...

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

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

@typing.final
class PerceptionInfraredFrameSourceWatcher(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionInfraredFrameSourceWatcher: ...
    def start(self) -> None: ...
    def stop(self) -> None: ...
    def add_enumeration_completed(self, handler: windows_foundation.TypedEventHandler[PerceptionInfraredFrameSourceWatcher, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_enumeration_completed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_source_added(self, handler: windows_foundation.TypedEventHandler[PerceptionInfraredFrameSourceWatcher, PerceptionInfraredFrameSourceAddedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_source_added(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_source_removed(self, handler: windows_foundation.TypedEventHandler[PerceptionInfraredFrameSourceWatcher, PerceptionInfraredFrameSourceRemovedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_source_removed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_stopped(self, handler: windows_foundation.TypedEventHandler[PerceptionInfraredFrameSourceWatcher, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_stopped(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def status(self) -> windows_devices_enumeration.DeviceWatcherStatus: ...

@typing.final
class PerceptionVideoProfile(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PerceptionVideoProfile: ...
    def is_equal(self, other: typing.Optional[PerceptionVideoProfile], /) -> bool: ...
    @_property
    def bitmap_alpha_mode(self) -> windows_graphics_imaging.BitmapAlphaMode: ...
    @_property
    def bitmap_pixel_format(self) -> windows_graphics_imaging.BitmapPixelFormat: ...
    @_property
    def frame_duration(self) -> datetime.timedelta: ...
    @_property
    def height(self) -> winrt.system.Int32: ...
    @_property
    def width(self) -> winrt.system.Int32: ...

