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

import enum
import datetime
import sys
import types
import typing

import winsdk.system
import winsdk.windows.foundation
import winsdk.windows.foundation.collections
import winsdk.windows.storage

class AppRecordingSaveScreenshotOption(enum.IntEnum):
    NONE = 0
    HDR_CONTENT_VISIBLE = 1

Self = typing.TypeVar('Self')

class AppRecordingManager(winsdk.system.Object):
    supported_screenshot_media_encoding_subtypes: typing.Optional[winsdk.windows.foundation.collections.IVectorView[str]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> AppRecordingManager: ...
    @staticmethod
    def get_default() -> typing.Optional[AppRecordingManager]: ...
    def get_status(self) -> typing.Optional[AppRecordingStatus]: ...
    def record_time_span_to_file_async(self, start_time: datetime.datetime, duration: datetime.timedelta, file: typing.Optional[winsdk.windows.storage.StorageFile]) -> winsdk.windows.foundation.IAsyncOperation[AppRecordingResult]: ...
    def save_screenshot_to_files_async(self, folder: typing.Optional[winsdk.windows.storage.StorageFolder], filename_prefix: str, option: AppRecordingSaveScreenshotOption, requested_formats: typing.Iterable[str]) -> winsdk.windows.foundation.IAsyncOperation[AppRecordingSaveScreenshotResult]: ...
    def start_recording_to_file_async(self, file: typing.Optional[winsdk.windows.storage.StorageFile]) -> winsdk.windows.foundation.IAsyncOperation[AppRecordingResult]: ...

class AppRecordingResult(winsdk.system.Object):
    duration: datetime.timedelta
    extended_error: winsdk.windows.foundation.HResult
    is_file_truncated: winsdk.system.Boolean
    succeeded: winsdk.system.Boolean
    @staticmethod
    def _from(obj: winsdk.system.Object) -> AppRecordingResult: ...

class AppRecordingSaveScreenshotResult(winsdk.system.Object):
    extended_error: winsdk.windows.foundation.HResult
    saved_screenshot_infos: typing.Optional[winsdk.windows.foundation.collections.IVectorView[AppRecordingSavedScreenshotInfo]]
    succeeded: winsdk.system.Boolean
    @staticmethod
    def _from(obj: winsdk.system.Object) -> AppRecordingSaveScreenshotResult: ...

class AppRecordingSavedScreenshotInfo(winsdk.system.Object):
    file: typing.Optional[winsdk.windows.storage.StorageFile]
    media_encoding_subtype: str
    @staticmethod
    def _from(obj: winsdk.system.Object) -> AppRecordingSavedScreenshotInfo: ...

class AppRecordingStatus(winsdk.system.Object):
    can_record: winsdk.system.Boolean
    can_record_time_span: winsdk.system.Boolean
    details: typing.Optional[AppRecordingStatusDetails]
    historical_buffer_duration: datetime.timedelta
    @staticmethod
    def _from(obj: winsdk.system.Object) -> AppRecordingStatus: ...

class AppRecordingStatusDetails(winsdk.system.Object):
    is_any_app_broadcasting: winsdk.system.Boolean
    is_app_inactive: winsdk.system.Boolean
    is_blocked_for_app: winsdk.system.Boolean
    is_capture_resource_unavailable: winsdk.system.Boolean
    is_disabled_by_system: winsdk.system.Boolean
    is_disabled_by_user: winsdk.system.Boolean
    is_game_stream_in_progress: winsdk.system.Boolean
    is_gpu_constrained: winsdk.system.Boolean
    is_time_span_recording_disabled: winsdk.system.Boolean
    @staticmethod
    def _from(obj: winsdk.system.Object) -> AppRecordingStatusDetails: ...

