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

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property

import winrt._winrt
import winrt.system
import winrt.windows.foundation
import winrt.windows.foundation.collections
import winrt.windows.storage.streams

from winrt.windows.media.contentrestrictions import ContentAccessRestrictionLevel, RatedContentCategory

Self = typing.TypeVar('Self')

@typing.final
class ContentRestrictionsBrowsePolicy(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> ContentRestrictionsBrowsePolicy: ...
    @_property
    def geographic_region(self) -> str: ...
    @_property
    def max_browsable_age_rating(self) -> typing.Optional[typing.Optional[winrt.system.UInt32]]: ...
    @_property
    def preferred_age_rating(self) -> typing.Optional[typing.Optional[winrt.system.UInt32]]: ...

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

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

