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

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.streams
import winsdk.windows.system

class PlatformDataCollectionLevel(enum.IntEnum):
    SECURITY = 0
    BASIC = 1
    ENHANCED = 2
    FULL = 3

class SystemIdentificationSource(enum.IntEnum):
    NONE = 0
    TPM = 1
    UEFI = 2
    REGISTRY = 3

class SystemOutOfBoxExperienceState(enum.IntEnum):
    NOT_STARTED = 0
    IN_PROGRESS = 1
    COMPLETED = 2

class UnsupportedAppRequirementReasons(enum.IntFlag):
    UNKNOWN = 0
    DENIED_BY_SYSTEM = 0x1

Self = typing.TypeVar('Self')

class AnalyticsInfo(winsdk.system.Object):
    device_form: typing.ClassVar[str]
    version_info: typing.ClassVar[typing.Optional[AnalyticsVersionInfo]]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AnalyticsInfo: ...
    @staticmethod
    def get_system_properties_async(attribute_names: typing.Iterable[str], /) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IMapView[str, str]]: ...

class AnalyticsVersionInfo(winsdk.system.Object):
    device_family: str
    device_family_version: str
    product_name: str
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AnalyticsVersionInfo: ...

class AppApplicability(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppApplicability: ...
    @staticmethod
    def get_unsupported_app_requirements(capabilities: typing.Iterable[str], /) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[UnsupportedAppRequirement]]: ...

class EducationSettings(winsdk.system.Object):
    is_education_environment: typing.ClassVar[winsdk.system.Boolean]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> EducationSettings: ...

class HardwareIdentification(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> HardwareIdentification: ...
    @staticmethod
    def get_package_specific_token(nonce: typing.Optional[winsdk.windows.storage.streams.IBuffer], /) -> typing.Optional[HardwareToken]: ...

class HardwareToken(winsdk.system.Object):
    certificate: typing.Optional[winsdk.windows.storage.streams.IBuffer]
    id: typing.Optional[winsdk.windows.storage.streams.IBuffer]
    signature: typing.Optional[winsdk.windows.storage.streams.IBuffer]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> HardwareToken: ...

class KnownRetailInfoProperties(winsdk.system.Object):
    battery_life_description: typing.ClassVar[str]
    display_description: typing.ClassVar[str]
    display_model_name: typing.ClassVar[str]
    form_factor: typing.ClassVar[str]
    front_camera_description: typing.ClassVar[str]
    graphics_description: typing.ClassVar[str]
    has_nfc: typing.ClassVar[str]
    has_optical_drive: typing.ClassVar[str]
    has_sd_slot: typing.ClassVar[str]
    is_featured: typing.ClassVar[str]
    is_office_installed: typing.ClassVar[str]
    manufacturer_name: typing.ClassVar[str]
    memory: typing.ClassVar[str]
    model_name: typing.ClassVar[str]
    price: typing.ClassVar[str]
    processor_description: typing.ClassVar[str]
    rear_camera_description: typing.ClassVar[str]
    retail_access_code: typing.ClassVar[str]
    screen_size: typing.ClassVar[str]
    storage_description: typing.ClassVar[str]
    weight: typing.ClassVar[str]
    windows_edition: typing.ClassVar[str]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> KnownRetailInfoProperties: ...

class PlatformDiagnosticsAndUsageDataSettings(winsdk.system.Object):
    collection_level: typing.ClassVar[PlatformDataCollectionLevel]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PlatformDiagnosticsAndUsageDataSettings: ...
    @staticmethod
    def can_collect_diagnostics(level: PlatformDataCollectionLevel, /) -> winsdk.system.Boolean: ...
    @staticmethod
    def add_collection_level_changed(handler: winsdk.windows.foundation.EventHandler[winsdk.system.Object], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_collection_level_changed(token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

class RetailInfo(winsdk.system.Object):
    is_demo_mode_enabled: typing.ClassVar[winsdk.system.Boolean]
    properties: typing.ClassVar[typing.Optional[winsdk.windows.foundation.collections.IMapView[str, winsdk.system.Object]]]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> RetailInfo: ...

class SharedModeSettings(winsdk.system.Object):
    is_enabled: typing.ClassVar[winsdk.system.Boolean]
    should_avoid_local_storage: typing.ClassVar[winsdk.system.Boolean]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> SharedModeSettings: ...

class SmartAppControlPolicy(winsdk.system.Object):
    is_enabled: typing.ClassVar[winsdk.system.Boolean]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> SmartAppControlPolicy: ...
    @staticmethod
    def add_changed(handler: winsdk.windows.foundation.EventHandler[winsdk.system.Object], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_changed(token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

class SystemIdentification(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> SystemIdentification: ...
    @staticmethod
    def get_system_id_for_publisher() -> typing.Optional[SystemIdentificationInfo]: ...
    @staticmethod
    def get_system_id_for_user(user: typing.Optional[winsdk.windows.system.User], /) -> typing.Optional[SystemIdentificationInfo]: ...

class SystemIdentificationInfo(winsdk.system.Object):
    id: typing.Optional[winsdk.windows.storage.streams.IBuffer]
    source: SystemIdentificationSource
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> SystemIdentificationInfo: ...

class SystemSetupInfo(winsdk.system.Object):
    out_of_box_experience_state: typing.ClassVar[SystemOutOfBoxExperienceState]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> SystemSetupInfo: ...
    @staticmethod
    def add_out_of_box_experience_state_changed(handler: winsdk.windows.foundation.EventHandler[winsdk.system.Object], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_out_of_box_experience_state_changed(token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

class UnsupportedAppRequirement(winsdk.system.Object):
    reasons: UnsupportedAppRequirementReasons
    requirement: str
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> UnsupportedAppRequirement: ...

class WindowsIntegrityPolicy(winsdk.system.Object):
    can_disable: typing.ClassVar[winsdk.system.Boolean]
    is_disable_supported: typing.ClassVar[winsdk.system.Boolean]
    is_enabled: typing.ClassVar[winsdk.system.Boolean]
    is_enabled_for_trial: typing.ClassVar[winsdk.system.Boolean]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> WindowsIntegrityPolicy: ...
    @staticmethod
    def add_policy_changed(handler: winsdk.windows.foundation.EventHandler[winsdk.system.Object], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_policy_changed(token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

