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

class NamedPolicyKind(enum.IntEnum):
    INVALID = 0
    BINARY = 1
    BOOLEAN = 2
    INT32 = 3
    INT64 = 4
    STRING = 5

Self = typing.TypeVar('Self')

class NamedPolicy(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> NamedPolicy: ...
    @staticmethod
    def get_policy_from_path(area: str, name: str, /) -> typing.Optional[NamedPolicyData]: ...
    @staticmethod
    def get_policy_from_path_for_user(user: typing.Optional[winsdk.windows.system.User], area: str, name: str, /) -> typing.Optional[NamedPolicyData]: ...

class NamedPolicyData(winsdk.system.Object):
    area: str
    is_managed: winsdk.system.Boolean
    is_user_policy: winsdk.system.Boolean
    kind: NamedPolicyKind
    name: str
    user: typing.Optional[winsdk.windows.system.User]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> NamedPolicyData: ...
    def get_binary(self) -> typing.Optional[winsdk.windows.storage.streams.IBuffer]: ...
    def get_boolean(self) -> winsdk.system.Boolean: ...
    def get_int32(self) -> winsdk.system.Int32: ...
    def get_int64(self) -> winsdk.system.Int64: ...
    def get_string(self) -> str: ...
    def add_changed(self, changed_handler: winsdk.windows.foundation.TypedEventHandler[NamedPolicyData, winsdk.system.Object], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_changed(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

