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

import enum
import sys
import types
import typing
import uuid

import winsdk._winrt as _winrt

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

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

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

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

try:
    import winsdk.windows.graphics.imaging
except Exception:
    pass

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

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

class PerceptionFrameSourceAccessStatus(enum.IntEnum):
    UNSPECIFIED = 0
    ALLOWED = 1
    DENIED_BY_USER = 2
    DENIED_BY_SYSTEM = 3

class PerceptionFrameSourcePropertyChangeStatus(enum.IntEnum):
    UNKNOWN = 0
    ACCEPTED = 1
    LOST_CONTROL = 2
    PROPERTY_NOT_SUPPORTED = 3
    PROPERTY_READ_ONLY = 4
    VALUE_OUT_OF_RANGE = 5

class KnownCameraIntrinsicsProperties(_winrt.Object):
    focal_length: str
    principal_point: str
    radial_distortion: str
    tangential_distortion: str
    @staticmethod
    def _from(obj: _winrt.Object) -> KnownCameraIntrinsicsProperties: ...

class KnownPerceptionColorFrameSourceProperties(_winrt.Object):
    auto_exposure_enabled: str
    exposure: str
    exposure_compensation: str
    @staticmethod
    def _from(obj: _winrt.Object) -> KnownPerceptionColorFrameSourceProperties: ...

class KnownPerceptionDepthFrameSourceProperties(_winrt.Object):
    max_depth: str
    min_depth: str
    @staticmethod
    def _from(obj: _winrt.Object) -> KnownPerceptionDepthFrameSourceProperties: ...

class KnownPerceptionFrameSourceProperties(_winrt.Object):
    device_model_version: str
    enclosure_location: str
    frame_kind: str
    id: str
    physical_device_ids: str
    device_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> KnownPerceptionFrameSourceProperties: ...

class KnownPerceptionInfraredFrameSourceProperties(_winrt.Object):
    active_illumination_enabled: str
    ambient_subtraction_enabled: str
    auto_exposure_enabled: str
    exposure: str
    exposure_compensation: str
    interleaved_illumination_enabled: str
    structure_light_pattern_enabled: str
    @staticmethod
    def _from(obj: _winrt.Object) -> KnownPerceptionInfraredFrameSourceProperties: ...

class KnownPerceptionVideoFrameSourceProperties(_winrt.Object):
    available_video_profiles: str
    camera_intrinsics: str
    is_mirrored: str
    supported_video_profiles: str
    video_profile: str
    @staticmethod
    def _from(obj: _winrt.Object) -> KnownPerceptionVideoFrameSourceProperties: ...

class KnownPerceptionVideoProfileProperties(_winrt.Object):
    bitmap_alpha_mode: str
    bitmap_pixel_format: str
    frame_duration: str
    height: str
    width: str
    @staticmethod
    def _from(obj: _winrt.Object) -> KnownPerceptionVideoProfileProperties: ...

class PerceptionColorFrame(winsdk.windows.foundation.IClosable, _winrt.Object):
    video_frame: winsdk.windows.media.VideoFrame
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionColorFrame: ...
    @typing.overload
    def close(self) -> None: ...

class PerceptionColorFrameArrivedEventArgs(_winrt.Object):
    relative_time: winsdk.windows.foundation.TimeSpan
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionColorFrameArrivedEventArgs: ...
    @typing.overload
    def try_open_frame(self) -> PerceptionColorFrame: ...

class PerceptionColorFrameReader(winsdk.windows.foundation.IClosable, _winrt.Object):
    is_paused: _winrt.Boolean
    source: PerceptionColorFrameSource
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionColorFrameReader: ...
    @typing.overload
    def close(self) -> None: ...
    @typing.overload
    def try_read_latest_frame(self) -> PerceptionColorFrame: ...
    @typing.overload
    def add_frame_arrived(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionColorFrameReader, PerceptionColorFrameArrivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_frame_arrived(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class PerceptionColorFrameSource(_winrt.Object):
    active: _winrt.Boolean
    available: _winrt.Boolean
    available_video_profiles: winsdk.windows.foundation.collections.IVectorView[PerceptionVideoProfile]
    camera_intrinsics: winsdk.windows.media.devices.core.CameraIntrinsics
    device_kind: str
    display_name: str
    id: str
    is_controlled: _winrt.Boolean
    properties: winsdk.windows.foundation.collections.IMapView[str, _winrt.Object]
    supported_video_profiles: winsdk.windows.foundation.collections.IVectorView[PerceptionVideoProfile]
    video_profile: PerceptionVideoProfile
    device_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionColorFrameSource: ...
    @typing.overload
    def acquire_control_session(self) -> PerceptionControlSession: ...
    @typing.overload
    def can_control_independently_from(self, target_id: str) -> _winrt.Boolean: ...
    @typing.overload
    @staticmethod
    def create_watcher() -> PerceptionColorFrameSourceWatcher: ...
    @typing.overload
    @staticmethod
    def find_all_async() -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[PerceptionColorFrameSource]]: ...
    @typing.overload
    @staticmethod
    def from_id_async(id: str) -> winsdk.windows.foundation.IAsyncOperation[PerceptionColorFrameSource]: ...
    @typing.overload
    def is_correlated_with(self, target_id: str) -> _winrt.Boolean: ...
    @typing.overload
    def open_reader(self) -> PerceptionColorFrameReader: ...
    @typing.overload
    @staticmethod
    def request_access_async() -> winsdk.windows.foundation.IAsyncOperation[PerceptionFrameSourceAccessStatus]: ...
    @typing.overload
    def try_get_depth_correlated_camera_intrinsics_async(self, correlated_depth_frame_source: PerceptionDepthFrameSource) -> winsdk.windows.foundation.IAsyncOperation[PerceptionDepthCorrelatedCameraIntrinsics]: ...
    @typing.overload
    def try_get_depth_correlated_coordinate_mapper_async(self, target_source_id: str, correlated_depth_frame_source: PerceptionDepthFrameSource) -> winsdk.windows.foundation.IAsyncOperation[PerceptionDepthCorrelatedCoordinateMapper]: ...
    @typing.overload
    def try_get_transform_to(self, target_id: str) -> typing.Tuple[_winrt.Boolean, winsdk.windows.foundation.numerics.Matrix4x4]: ...
    @typing.overload
    def try_set_video_profile_async(self, control_session: PerceptionControlSession, profile: PerceptionVideoProfile) -> winsdk.windows.foundation.IAsyncOperation[PerceptionFrameSourcePropertyChangeResult]: ...
    @typing.overload
    def add_active_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionColorFrameSource, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_active_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_available_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionColorFrameSource, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_available_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_camera_intrinsics_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionColorFrameSource, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_camera_intrinsics_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_properties_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionColorFrameSource, PerceptionFrameSourcePropertiesChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_properties_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_video_profile_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionColorFrameSource, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_video_profile_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class PerceptionColorFrameSourceAddedEventArgs(_winrt.Object):
    frame_source: PerceptionColorFrameSource
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionColorFrameSourceAddedEventArgs: ...

class PerceptionColorFrameSourceRemovedEventArgs(_winrt.Object):
    frame_source: PerceptionColorFrameSource
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionColorFrameSourceRemovedEventArgs: ...

class PerceptionColorFrameSourceWatcher(_winrt.Object):
    status: winsdk.windows.devices.enumeration.DeviceWatcherStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionColorFrameSourceWatcher: ...
    @typing.overload
    def start(self) -> None: ...
    @typing.overload
    def stop(self) -> None: ...
    @typing.overload
    def add_enumeration_completed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionColorFrameSourceWatcher, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_enumeration_completed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_source_added(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionColorFrameSourceWatcher, PerceptionColorFrameSourceAddedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_source_added(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_source_removed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionColorFrameSourceWatcher, PerceptionColorFrameSourceRemovedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_source_removed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_stopped(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionColorFrameSourceWatcher, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_stopped(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class PerceptionControlSession(winsdk.windows.foundation.IClosable, _winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionControlSession: ...
    @typing.overload
    def close(self) -> None: ...
    @typing.overload
    def try_set_property_async(self, name: str, value: _winrt.Object) -> winsdk.windows.foundation.IAsyncOperation[PerceptionFrameSourcePropertyChangeResult]: ...
    @typing.overload
    def add_control_lost(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionControlSession, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_control_lost(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class PerceptionDepthCorrelatedCameraIntrinsics(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionDepthCorrelatedCameraIntrinsics: ...
    @typing.overload
    def unproject_all_pixels_at_correlated_depth_async(self, depth_frame: PerceptionDepthFrame, results_size: _winrt.UInt32) -> typing.Tuple[winsdk.windows.foundation.IAsyncAction, typing.List[winsdk.windows.foundation.numerics.Vector3]]: ...
    @typing.overload
    def unproject_pixel_at_correlated_depth(self, pixel_coordinate: winsdk.windows.foundation.Point, depth_frame: PerceptionDepthFrame) -> winsdk.windows.foundation.numerics.Vector3: ...
    @typing.overload
    def unproject_pixels_at_correlated_depth(self, source_coordinates: typing.Sequence[winsdk.windows.foundation.Point], depth_frame: PerceptionDepthFrame, results_size: _winrt.UInt32) -> typing.List[winsdk.windows.foundation.numerics.Vector3]: ...
    @typing.overload
    def unproject_region_pixels_at_correlated_depth_async(self, region: winsdk.windows.foundation.Rect, depth_frame: PerceptionDepthFrame, results_size: _winrt.UInt32) -> typing.Tuple[winsdk.windows.foundation.IAsyncAction, typing.List[winsdk.windows.foundation.numerics.Vector3]]: ...

class PerceptionDepthCorrelatedCoordinateMapper(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionDepthCorrelatedCoordinateMapper: ...
    @typing.overload
    def map_all_pixels_to_target_async(self, depth_frame: PerceptionDepthFrame, target_coordinates_size: _winrt.UInt32) -> typing.Tuple[winsdk.windows.foundation.IAsyncAction, typing.List[winsdk.windows.foundation.Point]]: ...
    @typing.overload
    def map_pixel_to_target(self, source_pixel_coordinate: winsdk.windows.foundation.Point, depth_frame: PerceptionDepthFrame) -> winsdk.windows.foundation.Point: ...
    @typing.overload
    def map_pixels_to_target(self, source_coordinates: typing.Sequence[winsdk.windows.foundation.Point], depth_frame: PerceptionDepthFrame, results_size: _winrt.UInt32) -> typing.List[winsdk.windows.foundation.Point]: ...
    @typing.overload
    def map_region_of_pixels_to_target_async(self, region: winsdk.windows.foundation.Rect, depth_frame: PerceptionDepthFrame, target_coordinates_size: _winrt.UInt32) -> typing.Tuple[winsdk.windows.foundation.IAsyncAction, typing.List[winsdk.windows.foundation.Point]]: ...

class PerceptionDepthFrame(winsdk.windows.foundation.IClosable, _winrt.Object):
    video_frame: winsdk.windows.media.VideoFrame
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionDepthFrame: ...
    @typing.overload
    def close(self) -> None: ...

class PerceptionDepthFrameArrivedEventArgs(_winrt.Object):
    relative_time: winsdk.windows.foundation.TimeSpan
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionDepthFrameArrivedEventArgs: ...
    @typing.overload
    def try_open_frame(self) -> PerceptionDepthFrame: ...

class PerceptionDepthFrameReader(winsdk.windows.foundation.IClosable, _winrt.Object):
    is_paused: _winrt.Boolean
    source: PerceptionDepthFrameSource
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionDepthFrameReader: ...
    @typing.overload
    def close(self) -> None: ...
    @typing.overload
    def try_read_latest_frame(self) -> PerceptionDepthFrame: ...
    @typing.overload
    def add_frame_arrived(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionDepthFrameReader, PerceptionDepthFrameArrivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_frame_arrived(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class PerceptionDepthFrameSource(_winrt.Object):
    active: _winrt.Boolean
    available: _winrt.Boolean
    available_video_profiles: winsdk.windows.foundation.collections.IVectorView[PerceptionVideoProfile]
    camera_intrinsics: winsdk.windows.media.devices.core.CameraIntrinsics
    device_kind: str
    display_name: str
    id: str
    is_controlled: _winrt.Boolean
    properties: winsdk.windows.foundation.collections.IMapView[str, _winrt.Object]
    supported_video_profiles: winsdk.windows.foundation.collections.IVectorView[PerceptionVideoProfile]
    video_profile: PerceptionVideoProfile
    device_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionDepthFrameSource: ...
    @typing.overload
    def acquire_control_session(self) -> PerceptionControlSession: ...
    @typing.overload
    def can_control_independently_from(self, target_id: str) -> _winrt.Boolean: ...
    @typing.overload
    @staticmethod
    def create_watcher() -> PerceptionDepthFrameSourceWatcher: ...
    @typing.overload
    @staticmethod
    def find_all_async() -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[PerceptionDepthFrameSource]]: ...
    @typing.overload
    @staticmethod
    def from_id_async(id: str) -> winsdk.windows.foundation.IAsyncOperation[PerceptionDepthFrameSource]: ...
    @typing.overload
    def is_correlated_with(self, target_id: str) -> _winrt.Boolean: ...
    @typing.overload
    def open_reader(self) -> PerceptionDepthFrameReader: ...
    @typing.overload
    @staticmethod
    def request_access_async() -> winsdk.windows.foundation.IAsyncOperation[PerceptionFrameSourceAccessStatus]: ...
    @typing.overload
    def try_get_depth_correlated_camera_intrinsics_async(self, target: PerceptionDepthFrameSource) -> winsdk.windows.foundation.IAsyncOperation[PerceptionDepthCorrelatedCameraIntrinsics]: ...
    @typing.overload
    def try_get_depth_correlated_coordinate_mapper_async(self, target_id: str, depth_frame_source_to_map_with: PerceptionDepthFrameSource) -> winsdk.windows.foundation.IAsyncOperation[PerceptionDepthCorrelatedCoordinateMapper]: ...
    @typing.overload
    def try_get_transform_to(self, target_id: str) -> typing.Tuple[_winrt.Boolean, winsdk.windows.foundation.numerics.Matrix4x4]: ...
    @typing.overload
    def try_set_video_profile_async(self, control_session: PerceptionControlSession, profile: PerceptionVideoProfile) -> winsdk.windows.foundation.IAsyncOperation[PerceptionFrameSourcePropertyChangeResult]: ...
    @typing.overload
    def add_active_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionDepthFrameSource, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_active_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_available_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionDepthFrameSource, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_available_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_camera_intrinsics_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionDepthFrameSource, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_camera_intrinsics_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_properties_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionDepthFrameSource, PerceptionFrameSourcePropertiesChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_properties_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_video_profile_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionDepthFrameSource, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_video_profile_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class PerceptionDepthFrameSourceAddedEventArgs(_winrt.Object):
    frame_source: PerceptionDepthFrameSource
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionDepthFrameSourceAddedEventArgs: ...

class PerceptionDepthFrameSourceRemovedEventArgs(_winrt.Object):
    frame_source: PerceptionDepthFrameSource
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionDepthFrameSourceRemovedEventArgs: ...

class PerceptionDepthFrameSourceWatcher(_winrt.Object):
    status: winsdk.windows.devices.enumeration.DeviceWatcherStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionDepthFrameSourceWatcher: ...
    @typing.overload
    def start(self) -> None: ...
    @typing.overload
    def stop(self) -> None: ...
    @typing.overload
    def add_enumeration_completed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionDepthFrameSourceWatcher, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_enumeration_completed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_source_added(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionDepthFrameSourceWatcher, PerceptionDepthFrameSourceAddedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_source_added(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_source_removed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionDepthFrameSourceWatcher, PerceptionDepthFrameSourceRemovedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_source_removed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_stopped(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionDepthFrameSourceWatcher, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_stopped(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class PerceptionFrameSourcePropertiesChangedEventArgs(_winrt.Object):
    collection_change: winsdk.windows.foundation.collections.CollectionChange
    key: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionFrameSourcePropertiesChangedEventArgs: ...

class PerceptionFrameSourcePropertyChangeResult(_winrt.Object):
    new_value: _winrt.Object
    status: PerceptionFrameSourcePropertyChangeStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionFrameSourcePropertyChangeResult: ...

class PerceptionInfraredFrame(winsdk.windows.foundation.IClosable, _winrt.Object):
    video_frame: winsdk.windows.media.VideoFrame
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionInfraredFrame: ...
    @typing.overload
    def close(self) -> None: ...

class PerceptionInfraredFrameArrivedEventArgs(_winrt.Object):
    relative_time: winsdk.windows.foundation.TimeSpan
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionInfraredFrameArrivedEventArgs: ...
    @typing.overload
    def try_open_frame(self) -> PerceptionInfraredFrame: ...

class PerceptionInfraredFrameReader(winsdk.windows.foundation.IClosable, _winrt.Object):
    is_paused: _winrt.Boolean
    source: PerceptionInfraredFrameSource
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionInfraredFrameReader: ...
    @typing.overload
    def close(self) -> None: ...
    @typing.overload
    def try_read_latest_frame(self) -> PerceptionInfraredFrame: ...
    @typing.overload
    def add_frame_arrived(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionInfraredFrameReader, PerceptionInfraredFrameArrivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_frame_arrived(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class PerceptionInfraredFrameSource(_winrt.Object):
    active: _winrt.Boolean
    available: _winrt.Boolean
    available_video_profiles: winsdk.windows.foundation.collections.IVectorView[PerceptionVideoProfile]
    camera_intrinsics: winsdk.windows.media.devices.core.CameraIntrinsics
    device_kind: str
    display_name: str
    id: str
    is_controlled: _winrt.Boolean
    properties: winsdk.windows.foundation.collections.IMapView[str, _winrt.Object]
    supported_video_profiles: winsdk.windows.foundation.collections.IVectorView[PerceptionVideoProfile]
    video_profile: PerceptionVideoProfile
    device_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionInfraredFrameSource: ...
    @typing.overload
    def acquire_control_session(self) -> PerceptionControlSession: ...
    @typing.overload
    def can_control_independently_from(self, target_id: str) -> _winrt.Boolean: ...
    @typing.overload
    @staticmethod
    def create_watcher() -> PerceptionInfraredFrameSourceWatcher: ...
    @typing.overload
    @staticmethod
    def find_all_async() -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[PerceptionInfraredFrameSource]]: ...
    @typing.overload
    @staticmethod
    def from_id_async(id: str) -> winsdk.windows.foundation.IAsyncOperation[PerceptionInfraredFrameSource]: ...
    @typing.overload
    def is_correlated_with(self, target_id: str) -> _winrt.Boolean: ...
    @typing.overload
    def open_reader(self) -> PerceptionInfraredFrameReader: ...
    @typing.overload
    @staticmethod
    def request_access_async() -> winsdk.windows.foundation.IAsyncOperation[PerceptionFrameSourceAccessStatus]: ...
    @typing.overload
    def try_get_depth_correlated_camera_intrinsics_async(self, target: PerceptionDepthFrameSource) -> winsdk.windows.foundation.IAsyncOperation[PerceptionDepthCorrelatedCameraIntrinsics]: ...
    @typing.overload
    def try_get_depth_correlated_coordinate_mapper_async(self, target_id: str, depth_frame_source_to_map_with: PerceptionDepthFrameSource) -> winsdk.windows.foundation.IAsyncOperation[PerceptionDepthCorrelatedCoordinateMapper]: ...
    @typing.overload
    def try_get_transform_to(self, target_id: str) -> typing.Tuple[_winrt.Boolean, winsdk.windows.foundation.numerics.Matrix4x4]: ...
    @typing.overload
    def try_set_video_profile_async(self, control_session: PerceptionControlSession, profile: PerceptionVideoProfile) -> winsdk.windows.foundation.IAsyncOperation[PerceptionFrameSourcePropertyChangeResult]: ...
    @typing.overload
    def add_active_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionInfraredFrameSource, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_active_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_available_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionInfraredFrameSource, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_available_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_camera_intrinsics_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionInfraredFrameSource, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_camera_intrinsics_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_properties_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionInfraredFrameSource, PerceptionFrameSourcePropertiesChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_properties_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_video_profile_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionInfraredFrameSource, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_video_profile_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class PerceptionInfraredFrameSourceAddedEventArgs(_winrt.Object):
    frame_source: PerceptionInfraredFrameSource
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionInfraredFrameSourceAddedEventArgs: ...

class PerceptionInfraredFrameSourceRemovedEventArgs(_winrt.Object):
    frame_source: PerceptionInfraredFrameSource
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionInfraredFrameSourceRemovedEventArgs: ...

class PerceptionInfraredFrameSourceWatcher(_winrt.Object):
    status: winsdk.windows.devices.enumeration.DeviceWatcherStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionInfraredFrameSourceWatcher: ...
    @typing.overload
    def start(self) -> None: ...
    @typing.overload
    def stop(self) -> None: ...
    @typing.overload
    def add_enumeration_completed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionInfraredFrameSourceWatcher, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_enumeration_completed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_source_added(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionInfraredFrameSourceWatcher, PerceptionInfraredFrameSourceAddedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_source_added(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_source_removed(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionInfraredFrameSourceWatcher, PerceptionInfraredFrameSourceRemovedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_source_removed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_stopped(self, handler: winsdk.windows.foundation.TypedEventHandler[PerceptionInfraredFrameSourceWatcher, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_stopped(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class PerceptionVideoProfile(_winrt.Object):
    bitmap_alpha_mode: winsdk.windows.graphics.imaging.BitmapAlphaMode
    bitmap_pixel_format: winsdk.windows.graphics.imaging.BitmapPixelFormat
    frame_duration: winsdk.windows.foundation.TimeSpan
    height: _winrt.Int32
    width: _winrt.Int32
    @staticmethod
    def _from(obj: _winrt.Object) -> PerceptionVideoProfile: ...
    @typing.overload
    def is_equal(self, other: PerceptionVideoProfile) -> _winrt.Boolean: ...

