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

import enum
import sys
import types
import typing
import uuid

import winsdk._winrt as _winrt

try:
    import winsdk.windows.foundation
except Exception:
    pass

try:
    import winsdk.windows.foundation.collections
except Exception:
    pass

try:
    import winsdk.windows.storage.streams
except Exception:
    pass

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

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

class RatedContentDescription(_winrt.Object):
    title: str
    ratings: winsdk.windows.foundation.collections.IVector[str]
    image: winsdk.windows.storage.streams.IRandomAccessStreamReference
    id: str
    category: RatedContentCategory
    @staticmethod
    def _from(obj: _winrt.Object) -> RatedContentDescription: ...
    @typing.overload
    def __init__(self, id: str, title: str, category: RatedContentCategory) -> None: ...

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

