# 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.foundation.collections
import winsdk.windows.graphics
import winsdk.windows.storage.streams

class AdvancedColorKind(enum.IntEnum):
    STANDARD_DYNAMIC_RANGE = 0
    WIDE_COLOR_GAMUT = 1
    HIGH_DYNAMIC_RANGE = 2

class DisplayBrightnessOverrideOptions(enum.IntFlag):
    NONE = 0
    USE_DIMMED_POLICY_WHEN_BATTERY_IS_LOW = 0x1

class DisplayBrightnessOverrideScenario(enum.IntEnum):
    IDLE_BRIGHTNESS = 0
    BARCODE_READING_BRIGHTNESS = 1
    FULL_BRIGHTNESS = 2

class DisplayBrightnessScenario(enum.IntEnum):
    DEFAULT_BRIGHTNESS = 0
    IDLE_BRIGHTNESS = 1
    BARCODE_READING_BRIGHTNESS = 2
    FULL_BRIGHTNESS = 3

class DisplayColorOverrideScenario(enum.IntEnum):
    ACCURATE = 0

class DisplayOrientations(enum.IntFlag):
    NONE = 0
    LANDSCAPE = 0x1
    PORTRAIT = 0x2
    LANDSCAPE_FLIPPED = 0x4
    PORTRAIT_FLIPPED = 0x8

class HdrMetadataFormat(enum.IntEnum):
    HDR10 = 0
    HDR10_PLUS = 1

class ResolutionScale(enum.IntEnum):
    INVALID = 0
    SCALE100_PERCENT = 100
    SCALE120_PERCENT = 120
    SCALE125_PERCENT = 125
    SCALE140_PERCENT = 140
    SCALE150_PERCENT = 150
    SCALE160_PERCENT = 160
    SCALE175_PERCENT = 175
    SCALE180_PERCENT = 180
    SCALE200_PERCENT = 200
    SCALE225_PERCENT = 225
    SCALE250_PERCENT = 250
    SCALE300_PERCENT = 300
    SCALE350_PERCENT = 350
    SCALE400_PERCENT = 400
    SCALE450_PERCENT = 450
    SCALE500_PERCENT = 500

Self = typing.TypeVar('Self')

class NitRange:
    min_nits: winsdk.system.Single
    max_nits: winsdk.system.Single
    step_size_nits: winsdk.system.Single
    def __new__(cls: typing.Type[NitRange], min_nits: winsdk.system.Single, max_nits: winsdk.system.Single, step_size_nits: winsdk.system.Single) -> NitRange: ...

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

class BrightnessOverride(winsdk.system.Object):
    brightness_level: winsdk.system.Double
    is_override_active: winsdk.system.Boolean
    is_supported: winsdk.system.Boolean
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> BrightnessOverride: ...
    @staticmethod
    def get_default_for_system() -> typing.Optional[BrightnessOverride]: ...
    @staticmethod
    def get_for_current_view() -> typing.Optional[BrightnessOverride]: ...
    def get_level_for_scenario(self, scenario: DisplayBrightnessScenario, /) -> winsdk.system.Double: ...
    @staticmethod
    def save_for_system_async(value: typing.Optional[BrightnessOverride], /) -> winsdk.windows.foundation.IAsyncOperation[winsdk.system.Boolean]: ...
    def set_brightness_level(self, brightness_level: winsdk.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: winsdk.windows.foundation.TypedEventHandler[BrightnessOverride, winsdk.system.Object], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_brightness_level_changed(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_is_override_active_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[BrightnessOverride, winsdk.system.Object], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_is_override_active_changed(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_is_supported_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[BrightnessOverride, winsdk.system.Object], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_is_supported_changed(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

class BrightnessOverrideSettings(winsdk.system.Object):
    desired_level: winsdk.system.Double
    desired_nits: winsdk.system.Single
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> BrightnessOverrideSettings: ...
    @staticmethod
    def create_from_display_brightness_override_scenario(override_scenario: DisplayBrightnessOverrideScenario, /) -> typing.Optional[BrightnessOverrideSettings]: ...
    @staticmethod
    def create_from_level(level: winsdk.system.Double, /) -> typing.Optional[BrightnessOverrideSettings]: ...
    @staticmethod
    def create_from_nits(nits: winsdk.system.Single, /) -> typing.Optional[BrightnessOverrideSettings]: ...

class ColorOverrideSettings(winsdk.system.Object):
    desired_display_color_override_scenario: DisplayColorOverrideScenario
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> ColorOverrideSettings: ...
    @staticmethod
    def create_from_display_color_override_scenario(override_scenario: DisplayColorOverrideScenario, /) -> typing.Optional[ColorOverrideSettings]: ...

class DisplayEnhancementOverride(winsdk.system.Object):
    color_override_settings: typing.Optional[ColorOverrideSettings]
    brightness_override_settings: typing.Optional[BrightnessOverrideSettings]
    can_override: winsdk.system.Boolean
    is_override_active: winsdk.system.Boolean
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> DisplayEnhancementOverride: ...
    def get_current_display_enhancement_override_capabilities(self) -> typing.Optional[DisplayEnhancementOverrideCapabilities]: ...
    @staticmethod
    def get_for_current_view() -> typing.Optional[DisplayEnhancementOverride]: ...
    def request_override(self) -> None: ...
    def stop_override(self) -> None: ...
    def add_can_override_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[DisplayEnhancementOverride, winsdk.system.Object], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_can_override_changed(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_display_enhancement_override_capabilities_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[DisplayEnhancementOverride, DisplayEnhancementOverrideCapabilitiesChangedEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_display_enhancement_override_capabilities_changed(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_is_override_active_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[DisplayEnhancementOverride, winsdk.system.Object], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_is_override_active_changed(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

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

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

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

class DisplayProperties(winsdk.system.Object):
    auto_rotation_preferences: typing.ClassVar[DisplayOrientations]
    current_orientation: typing.ClassVar[DisplayOrientations]
    logical_dpi: typing.ClassVar[winsdk.system.Single]
    native_orientation: typing.ClassVar[DisplayOrientations]
    resolution_scale: typing.ClassVar[ResolutionScale]
    stereo_enabled: typing.ClassVar[winsdk.system.Boolean]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> DisplayProperties: ...
    @staticmethod
    def get_color_profile_async() -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.storage.streams.IRandomAccessStream]: ...
    @staticmethod
    def add_color_profile_changed(handler: typing.Optional[DisplayPropertiesEventHandler], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_color_profile_changed(token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    @staticmethod
    def add_display_contents_invalidated(handler: typing.Optional[DisplayPropertiesEventHandler], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_display_contents_invalidated(token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    @staticmethod
    def add_logical_dpi_changed(handler: typing.Optional[DisplayPropertiesEventHandler], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_logical_dpi_changed(token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    @staticmethod
    def add_orientation_changed(handler: typing.Optional[DisplayPropertiesEventHandler], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_orientation_changed(token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    @staticmethod
    def add_stereo_enabled_changed(handler: typing.Optional[DisplayPropertiesEventHandler], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_stereo_enabled_changed(token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

class DisplayServices(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> DisplayServices: ...
    @staticmethod
    def find_all() -> winsdk.windows.graphics.DisplayId: ...

DisplayPropertiesEventHandler = typing.Callable[[typing.Optional[winsdk.system.Object]], None]

