# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.0.1

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.graphics
import winrt.windows.storage.streams

from winrt.windows.graphics.display import AdvancedColorKind, DisplayBrightnessOverrideOptions, DisplayBrightnessOverrideScenario, DisplayBrightnessScenario, DisplayColorOverrideScenario, DisplayOrientations, HdrMetadataFormat, ResolutionScale
from winrt.windows.graphics.display import DisplayPropertiesEventHandler

Self = typing.TypeVar('Self')

@typing.final
class NitRange:
    min_nits: winrt.system.Single
    max_nits: winrt.system.Single
    step_size_nits: winrt.system.Single
    def __init__(self, min_nits: winrt.system.Single, max_nits: winrt.system.Single, step_size_nits: winrt.system.Single) -> None: ...

@typing.final
class AdvancedColorInfo(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AdvancedColorInfo: ...
    def is_advanced_color_kind_available(self, kind: AdvancedColorKind, /) -> bool: ...
    def is_hdr_metadata_format_currently_supported(self, format: HdrMetadataFormat, /) -> bool: ...
    @_property
    def blue_primary(self) -> winrt.windows.foundation.Point: ...
    @_property
    def current_advanced_color_kind(self) -> AdvancedColorKind: ...
    @_property
    def green_primary(self) -> winrt.windows.foundation.Point: ...
    @_property
    def max_average_full_frame_luminance_in_nits(self) -> winrt.system.Single: ...
    @_property
    def max_luminance_in_nits(self) -> winrt.system.Single: ...
    @_property
    def min_luminance_in_nits(self) -> winrt.system.Single: ...
    @_property
    def red_primary(self) -> winrt.windows.foundation.Point: ...
    @_property
    def sdr_white_level_in_nits(self) -> winrt.system.Single: ...
    @_property
    def white_point(self) -> winrt.windows.foundation.Point: ...

@typing.final
class BrightnessOverride_Static(type):
    def get_default_for_system(cls) -> typing.Optional[BrightnessOverride]: ...
    def get_for_current_view(cls) -> typing.Optional[BrightnessOverride]: ...
    def save_for_system_async(cls, value: typing.Optional[BrightnessOverride], /) -> winrt.windows.foundation.IAsyncOperation[bool]: ...

@typing.final
class BrightnessOverride(winrt.system.Object, metaclass=BrightnessOverride_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BrightnessOverride: ...
    def get_level_for_scenario(self, scenario: DisplayBrightnessScenario, /) -> winrt.system.Double: ...
    def set_brightness_level(self, brightness_level: winrt.system.Double, options: DisplayBrightnessOverrideOptions, /) -> None: ...
    def set_brightness_scenario(self, scenario: DisplayBrightnessScenario, options: DisplayBrightnessOverrideOptions, /) -> None: ...
    def start_override(self) -> None: ...
    def stop_override(self) -> None: ...
    def add_brightness_level_changed(self, handler: winrt.windows.foundation.TypedEventHandler[BrightnessOverride, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_brightness_level_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_is_override_active_changed(self, handler: winrt.windows.foundation.TypedEventHandler[BrightnessOverride, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_is_override_active_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_is_supported_changed(self, handler: winrt.windows.foundation.TypedEventHandler[BrightnessOverride, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_is_supported_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def brightness_level(self) -> winrt.system.Double: ...
    @_property
    def is_override_active(self) -> bool: ...
    @_property
    def is_supported(self) -> bool: ...

@typing.final
class BrightnessOverrideSettings_Static(type):
    def create_from_display_brightness_override_scenario(cls, override_scenario: DisplayBrightnessOverrideScenario, /) -> typing.Optional[BrightnessOverrideSettings]: ...
    def create_from_level(cls, level: winrt.system.Double, /) -> typing.Optional[BrightnessOverrideSettings]: ...
    def create_from_nits(cls, nits: winrt.system.Single, /) -> typing.Optional[BrightnessOverrideSettings]: ...

@typing.final
class BrightnessOverrideSettings(winrt.system.Object, metaclass=BrightnessOverrideSettings_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BrightnessOverrideSettings: ...
    @_property
    def desired_level(self) -> winrt.system.Double: ...
    @_property
    def desired_nits(self) -> winrt.system.Single: ...

@typing.final
class ColorOverrideSettings_Static(type):
    def create_from_display_color_override_scenario(cls, override_scenario: DisplayColorOverrideScenario, /) -> typing.Optional[ColorOverrideSettings]: ...

@typing.final
class ColorOverrideSettings(winrt.system.Object, metaclass=ColorOverrideSettings_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> ColorOverrideSettings: ...
    @_property
    def desired_display_color_override_scenario(self) -> DisplayColorOverrideScenario: ...

@typing.final
class DisplayEnhancementOverride_Static(type):
    def get_for_current_view(cls) -> typing.Optional[DisplayEnhancementOverride]: ...

@typing.final
class DisplayEnhancementOverride(winrt.system.Object, metaclass=DisplayEnhancementOverride_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DisplayEnhancementOverride: ...
    def get_current_display_enhancement_override_capabilities(self) -> typing.Optional[DisplayEnhancementOverrideCapabilities]: ...
    def request_override(self) -> None: ...
    def stop_override(self) -> None: ...
    def add_can_override_changed(self, handler: winrt.windows.foundation.TypedEventHandler[DisplayEnhancementOverride, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_can_override_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_display_enhancement_override_capabilities_changed(self, handler: winrt.windows.foundation.TypedEventHandler[DisplayEnhancementOverride, DisplayEnhancementOverrideCapabilitiesChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_display_enhancement_override_capabilities_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_is_override_active_changed(self, handler: winrt.windows.foundation.TypedEventHandler[DisplayEnhancementOverride, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_is_override_active_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def color_override_settings(self) -> typing.Optional[ColorOverrideSettings]: ...
    @color_override_settings.setter
    def color_override_settings(self, value: typing.Optional[ColorOverrideSettings]) -> None: ...
    @_property
    def brightness_override_settings(self) -> typing.Optional[BrightnessOverrideSettings]: ...
    @brightness_override_settings.setter
    def brightness_override_settings(self, value: typing.Optional[BrightnessOverrideSettings]) -> None: ...
    @_property
    def can_override(self) -> bool: ...
    @_property
    def is_override_active(self) -> bool: ...

@typing.final
class DisplayEnhancementOverrideCapabilities(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DisplayEnhancementOverrideCapabilities: ...
    def get_supported_nit_ranges(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[NitRange]]: ...
    @_property
    def is_brightness_control_supported(self) -> bool: ...
    @_property
    def is_brightness_nits_control_supported(self) -> bool: ...

@typing.final
class DisplayEnhancementOverrideCapabilitiesChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DisplayEnhancementOverrideCapabilitiesChangedEventArgs: ...
    @_property
    def capabilities(self) -> typing.Optional[DisplayEnhancementOverrideCapabilities]: ...

@typing.final
class DisplayInformation_Static(type):
    def get_for_current_view(cls) -> typing.Optional[DisplayInformation]: ...
    def add_display_contents_invalidated(cls, handler: winrt.windows.foundation.TypedEventHandler[DisplayInformation, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_display_contents_invalidated(cls, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def auto_rotation_preferences(cls) -> DisplayOrientations: ...
    @auto_rotation_preferences.setter
    def auto_rotation_preferences(cls, value: DisplayOrientations) -> None: ...

@typing.final
class DisplayInformation(winrt.system.Object, metaclass=DisplayInformation_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DisplayInformation: ...
    def get_advanced_color_info(self) -> typing.Optional[AdvancedColorInfo]: ...
    def get_color_profile_async(self) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.storage.streams.IRandomAccessStream]: ...
    def add_color_profile_changed(self, handler: winrt.windows.foundation.TypedEventHandler[DisplayInformation, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_color_profile_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_dpi_changed(self, handler: winrt.windows.foundation.TypedEventHandler[DisplayInformation, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_dpi_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_orientation_changed(self, handler: winrt.windows.foundation.TypedEventHandler[DisplayInformation, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_orientation_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_stereo_enabled_changed(self, handler: winrt.windows.foundation.TypedEventHandler[DisplayInformation, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_stereo_enabled_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_advanced_color_info_changed(self, handler: winrt.windows.foundation.TypedEventHandler[DisplayInformation, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_advanced_color_info_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def current_orientation(self) -> DisplayOrientations: ...
    @_property
    def logical_dpi(self) -> winrt.system.Single: ...
    @_property
    def native_orientation(self) -> DisplayOrientations: ...
    @_property
    def raw_dpi_x(self) -> winrt.system.Single: ...
    @_property
    def raw_dpi_y(self) -> winrt.system.Single: ...
    @_property
    def resolution_scale(self) -> ResolutionScale: ...
    @_property
    def stereo_enabled(self) -> bool: ...
    @_property
    def raw_pixels_per_view_pixel(self) -> winrt.system.Double: ...
    @_property
    def diagonal_size_in_inches(self) -> typing.Optional[typing.Optional[winrt.system.Double]]: ...
    @_property
    def screen_height_in_raw_pixels(self) -> winrt.system.UInt32: ...
    @_property
    def screen_width_in_raw_pixels(self) -> winrt.system.UInt32: ...

@typing.final
class DisplayProperties_Static(type):
    def get_color_profile_async(cls) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.storage.streams.IRandomAccessStream]: ...
    def add_color_profile_changed(cls, handler: typing.Optional[DisplayPropertiesEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_color_profile_changed(cls, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_display_contents_invalidated(cls, handler: typing.Optional[DisplayPropertiesEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_display_contents_invalidated(cls, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_logical_dpi_changed(cls, handler: typing.Optional[DisplayPropertiesEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_logical_dpi_changed(cls, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_orientation_changed(cls, handler: typing.Optional[DisplayPropertiesEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_orientation_changed(cls, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_stereo_enabled_changed(cls, handler: typing.Optional[DisplayPropertiesEventHandler], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_stereo_enabled_changed(cls, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def auto_rotation_preferences(cls) -> DisplayOrientations: ...
    @auto_rotation_preferences.setter
    def auto_rotation_preferences(cls, value: DisplayOrientations) -> None: ...
    @_property
    def current_orientation(cls) -> DisplayOrientations: ...
    @_property
    def logical_dpi(cls) -> winrt.system.Single: ...
    @_property
    def native_orientation(cls) -> DisplayOrientations: ...
    @_property
    def resolution_scale(cls) -> ResolutionScale: ...
    @_property
    def stereo_enabled(cls) -> bool: ...

@typing.final
class DisplayProperties(winrt.system.Object, metaclass=DisplayProperties_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DisplayProperties: ...

@typing.final
class DisplayServices_Static(type):
    def find_all(cls) -> winrt.windows.graphics.DisplayId: ...

@typing.final
class DisplayServices(winrt.system.Object, metaclass=DisplayServices_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DisplayServices: ...

