# 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.streams

class ContentAccessRestrictionLevel(enum.IntEnum):
    ALLOW = 0
    WARN = 1
    BLOCK = 2
    HIDE = 3

class RatedContentCategory(enum.IntEnum):
    GENERAL = 0
    APPLICATION = 1
    GAME = 2
    MOVIE = 3
    TELEVISION = 4
    MUSIC = 5

Self = typing.TypeVar('Self')

class ContentRestrictionsBrowsePolicy(winsdk.system.Object):
    geographic_region: str
    max_browsable_age_rating: typing.Optional[typing.Optional[winsdk.system.UInt32]]
    preferred_age_rating: typing.Optional[typing.Optional[winsdk.system.UInt32]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> ContentRestrictionsBrowsePolicy: ...

class RatedContentDescription(winsdk.system.Object):
    title: str
    ratings: typing.Optional[winsdk.windows.foundation.collections.IVector[str]]
    image: typing.Optional[winsdk.windows.storage.streams.IRandomAccessStreamReference]
    id: str
    category: RatedContentCategory
    @staticmethod
    def _from(obj: winsdk.system.Object) -> RatedContentDescription: ...
    def __new__(cls: typing.Type[RatedContentDescription], id: str, title: str, category: RatedContentCategory) -> RatedContentDescription:...

class RatedContentRestrictions(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object) -> RatedContentRestrictions: ...
    @typing.overload
    def __new__(cls: typing.Type[RatedContentRestrictions], max_age_rating: winsdk.system.UInt32) -> RatedContentRestrictions:...
    @typing.overload
    def __new__(cls: typing.Type[RatedContentRestrictions]) -> RatedContentRestrictions:...
    def get_browse_policy_async(self) -> winsdk.windows.foundation.IAsyncOperation[ContentRestrictionsBrowsePolicy]: ...
    def get_restriction_level_async(self, rated_content_description: typing.Optional[RatedContentDescription]) -> winsdk.windows.foundation.IAsyncOperation[ContentAccessRestrictionLevel]: ...
    def request_content_access_async(self, rated_content_description: typing.Optional[RatedContentDescription]) -> winsdk.windows.foundation.IAsyncOperation[winsdk.system.Boolean]: ...
    def add_restrictions_changed(self, handler: winsdk.windows.foundation.EventHandler[winsdk.system.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_restrictions_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

