# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.2.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.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.graphics.imaging as windows_graphics_imaging
import winrt.windows.media as windows_media

Self = typing.TypeVar('Self')

@typing.final
class DetectedFace(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DetectedFace: ...
    @_property
    def face_box(self) -> windows_graphics_imaging.BitmapBounds: ...

@typing.final
class FaceDetector_Static(type):
    def create_async(cls) -> windows_foundation.IAsyncOperation[FaceDetector]: ...
    def get_supported_bitmap_pixel_formats(cls) -> typing.Optional[windows_foundation_collections.IVectorView[windows_graphics_imaging.BitmapPixelFormat]]: ...
    def is_bitmap_pixel_format_supported(cls, bitmap_pixel_format: windows_graphics_imaging.BitmapPixelFormat, /) -> bool: ...
    @_property
    def is_supported(cls) -> bool: ...

@typing.final
class FaceDetector(winrt.system.Object, metaclass=FaceDetector_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> FaceDetector: ...
    @typing.overload
    def detect_faces_async(self, image: typing.Optional[windows_graphics_imaging.SoftwareBitmap], /) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVector[DetectedFace]]: ...
    @typing.overload
    def detect_faces_async(self, image: typing.Optional[windows_graphics_imaging.SoftwareBitmap], search_area: windows_graphics_imaging.BitmapBounds, /) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVector[DetectedFace]]: ...
    @_property
    def min_detectable_face_size(self) -> windows_graphics_imaging.BitmapSize: ...
    @min_detectable_face_size.setter
    def min_detectable_face_size(self, value: windows_graphics_imaging.BitmapSize) -> None: ...
    @_property
    def max_detectable_face_size(self) -> windows_graphics_imaging.BitmapSize: ...
    @max_detectable_face_size.setter
    def max_detectable_face_size(self, value: windows_graphics_imaging.BitmapSize) -> None: ...

@typing.final
class FaceTracker_Static(type):
    def create_async(cls) -> windows_foundation.IAsyncOperation[FaceTracker]: ...
    def get_supported_bitmap_pixel_formats(cls) -> typing.Optional[windows_foundation_collections.IVectorView[windows_graphics_imaging.BitmapPixelFormat]]: ...
    def is_bitmap_pixel_format_supported(cls, bitmap_pixel_format: windows_graphics_imaging.BitmapPixelFormat, /) -> bool: ...
    @_property
    def is_supported(cls) -> bool: ...

@typing.final
class FaceTracker(winrt.system.Object, metaclass=FaceTracker_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> FaceTracker: ...
    def process_next_frame_async(self, video_frame: typing.Optional[windows_media.VideoFrame], /) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVector[DetectedFace]]: ...
    @_property
    def min_detectable_face_size(self) -> windows_graphics_imaging.BitmapSize: ...
    @min_detectable_face_size.setter
    def min_detectable_face_size(self, value: windows_graphics_imaging.BitmapSize) -> None: ...
    @_property
    def max_detectable_face_size(self) -> windows_graphics_imaging.BitmapSize: ...
    @max_detectable_face_size.setter
    def max_detectable_face_size(self, value: windows_graphics_imaging.BitmapSize) -> None: ...

