# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.0.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):
    # Windows.Graphics.Imaging.BitmapBounds Windows.Media.FaceAnalysis.DetectedFace::get_FaceBox()
    @_property
    def face_box(self) -> windows_graphics_imaging.BitmapBounds: ...

@typing.final
class FaceDetector_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Media.FaceAnalysis.FaceDetector> Windows.Media.FaceAnalysis.FaceDetector::CreateAsync()
    def create_async(cls) -> windows_foundation.IAsyncOperation[FaceDetector]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Graphics.Imaging.BitmapPixelFormat> Windows.Media.FaceAnalysis.FaceDetector::GetSupportedBitmapPixelFormats()
    def get_supported_bitmap_pixel_formats(cls) -> typing.Sequence[windows_graphics_imaging.BitmapPixelFormat]: ...
    # System.Boolean Windows.Media.FaceAnalysis.FaceDetector::IsBitmapPixelFormatSupported(Windows.Graphics.Imaging.BitmapPixelFormat)
    def is_bitmap_pixel_format_supported(cls, bitmap_pixel_format: windows_graphics_imaging.BitmapPixelFormat, /) -> bool: ...
    # System.Boolean Windows.Media.FaceAnalysis.FaceDetector::get_IsSupported()
    @_property
    def is_supported(cls) -> bool: ...

@typing.final
class FaceDetector(winrt.system.Object, metaclass=FaceDetector_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVector`1<Windows.Media.FaceAnalysis.DetectedFace>> Windows.Media.FaceAnalysis.FaceDetector::DetectFacesAsync(Windows.Graphics.Imaging.SoftwareBitmap)
    def detect_faces_async(self, image: windows_graphics_imaging.SoftwareBitmap, /) -> windows_foundation.IAsyncOperation[typing.MutableSequence[DetectedFace]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVector`1<Windows.Media.FaceAnalysis.DetectedFace>> Windows.Media.FaceAnalysis.FaceDetector::DetectFacesAsync(Windows.Graphics.Imaging.SoftwareBitmap,Windows.Graphics.Imaging.BitmapBounds)
    def detect_faces_with_search_area_async(self, image: windows_graphics_imaging.SoftwareBitmap, search_area: typing.Union[windows_graphics_imaging.BitmapBounds, typing.Tuple[winrt.system.UInt32, winrt.system.UInt32, winrt.system.UInt32, winrt.system.UInt32]], /) -> windows_foundation.IAsyncOperation[typing.MutableSequence[DetectedFace]]: ...
    # Windows.Graphics.Imaging.BitmapSize Windows.Media.FaceAnalysis.FaceDetector::get_MinDetectableFaceSize()
    @_property
    def min_detectable_face_size(self) -> windows_graphics_imaging.BitmapSize: ...
    # System.Void Windows.Media.FaceAnalysis.FaceDetector::put_MinDetectableFaceSize(Windows.Graphics.Imaging.BitmapSize)
    @min_detectable_face_size.setter
    def min_detectable_face_size(self, value: typing.Union[windows_graphics_imaging.BitmapSize, typing.Tuple[winrt.system.UInt32, winrt.system.UInt32]]) -> None: ...
    # Windows.Graphics.Imaging.BitmapSize Windows.Media.FaceAnalysis.FaceDetector::get_MaxDetectableFaceSize()
    @_property
    def max_detectable_face_size(self) -> windows_graphics_imaging.BitmapSize: ...
    # System.Void Windows.Media.FaceAnalysis.FaceDetector::put_MaxDetectableFaceSize(Windows.Graphics.Imaging.BitmapSize)
    @max_detectable_face_size.setter
    def max_detectable_face_size(self, value: typing.Union[windows_graphics_imaging.BitmapSize, typing.Tuple[winrt.system.UInt32, winrt.system.UInt32]]) -> None: ...

@typing.final
class FaceTracker_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Media.FaceAnalysis.FaceTracker> Windows.Media.FaceAnalysis.FaceTracker::CreateAsync()
    def create_async(cls) -> windows_foundation.IAsyncOperation[FaceTracker]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Graphics.Imaging.BitmapPixelFormat> Windows.Media.FaceAnalysis.FaceTracker::GetSupportedBitmapPixelFormats()
    def get_supported_bitmap_pixel_formats(cls) -> typing.Sequence[windows_graphics_imaging.BitmapPixelFormat]: ...
    # System.Boolean Windows.Media.FaceAnalysis.FaceTracker::IsBitmapPixelFormatSupported(Windows.Graphics.Imaging.BitmapPixelFormat)
    def is_bitmap_pixel_format_supported(cls, bitmap_pixel_format: windows_graphics_imaging.BitmapPixelFormat, /) -> bool: ...
    # System.Boolean Windows.Media.FaceAnalysis.FaceTracker::get_IsSupported()
    @_property
    def is_supported(cls) -> bool: ...

@typing.final
class FaceTracker(winrt.system.Object, metaclass=FaceTracker_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVector`1<Windows.Media.FaceAnalysis.DetectedFace>> Windows.Media.FaceAnalysis.FaceTracker::ProcessNextFrameAsync(Windows.Media.VideoFrame)
    def process_next_frame_async(self, video_frame: windows_media.VideoFrame, /) -> windows_foundation.IAsyncOperation[typing.MutableSequence[DetectedFace]]: ...
    # Windows.Graphics.Imaging.BitmapSize Windows.Media.FaceAnalysis.FaceTracker::get_MinDetectableFaceSize()
    @_property
    def min_detectable_face_size(self) -> windows_graphics_imaging.BitmapSize: ...
    # System.Void Windows.Media.FaceAnalysis.FaceTracker::put_MinDetectableFaceSize(Windows.Graphics.Imaging.BitmapSize)
    @min_detectable_face_size.setter
    def min_detectable_face_size(self, value: typing.Union[windows_graphics_imaging.BitmapSize, typing.Tuple[winrt.system.UInt32, winrt.system.UInt32]]) -> None: ...
    # Windows.Graphics.Imaging.BitmapSize Windows.Media.FaceAnalysis.FaceTracker::get_MaxDetectableFaceSize()
    @_property
    def max_detectable_face_size(self) -> windows_graphics_imaging.BitmapSize: ...
    # System.Void Windows.Media.FaceAnalysis.FaceTracker::put_MaxDetectableFaceSize(Windows.Graphics.Imaging.BitmapSize)
    @max_detectable_face_size.setter
    def max_detectable_face_size(self, value: typing.Union[windows_graphics_imaging.BitmapSize, typing.Tuple[winrt.system.UInt32, winrt.system.UInt32]]) -> None: ...

