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

import enum
import datetime
import sys
import types
import typing

import winsdk._winrt as _winrt
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: _winrt.Single
    max_nits: _winrt.Single
    step_size_nits: _winrt.Single
    def __new__(cls: typing.Type[NitRange], min_nits: _winrt.Single, max_nits: _winrt.Single, step_size_nits: _winrt.Single) -> NitRange: ...

class AdvancedColorInfo(_winrt.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: _winrt.Single
    max_luminance_in_nits: _winrt.Single
    min_luminance_in_nits: _winrt.Single
    red_primary: winsdk.windows.foundation.Point
    sdr_white_level_in_nits: _winrt.Single
    white_point: winsdk.windows.foundation.Point
    @staticmethod
    def _from(obj: _winrt.Object) -> AdvancedColorInfo: ...
    def is_advanced_color_kind_available(self, kind: AdvancedColorKind) -> _winrt.Boolean: ...
    def is_hdr_metadata_format_currently_supported(self, format: HdrMetadataFormat) -> _winrt.Boolean: ...

class BrightnessOverride(_winrt.Object):
    brightness_level: _winrt.Double
    is_override_active: _winrt.Boolean
    is_supported: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.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) -> _winrt.Double: ...
    @staticmethod
    def save_for_system_async(value: typing.Optional[BrightnessOverride]) -> winsdk.windows.foundation.IAsyncOperation[_winrt.Boolean]: ...
    def set_brightness_level(self, brightness_level: _winrt.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, _winrt.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, _winrt.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, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_is_supported_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

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

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

class DisplayEnhancementOverride(_winrt.Object):
    color_override_settings: typing.Optional[ColorOverrideSettings]
    brightness_override_settings: typing.Optional[BrightnessOverrideSettings]
    can_override: _winrt.Boolean
    is_override_active: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.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, _winrt.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, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_is_override_active_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

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

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

class DisplayInformation(_winrt.Object):
    current_orientation: DisplayOrientations
    logical_dpi: _winrt.Single
    native_orientation: DisplayOrientations
    raw_dpi_x: _winrt.Single
    raw_dpi_y: _winrt.Single
    resolution_scale: ResolutionScale
    stereo_enabled: _winrt.Boolean
    raw_pixels_per_view_pixel: _winrt.Double
    diagonal_size_in_inches: typing.Optional[typing.Optional[_winrt.Double]]
    screen_height_in_raw_pixels: _winrt.UInt32
    screen_width_in_raw_pixels: _winrt.UInt32
    auto_rotation_preferences: DisplayOrientations
    @staticmethod
    def _from(obj: _winrt.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, _winrt.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, _winrt.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, _winrt.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, _winrt.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, _winrt.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, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_display_contents_invalidated(token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class DisplayProperties(_winrt.Object):
    auto_rotation_preferences: DisplayOrientations
    current_orientation: DisplayOrientations
    logical_dpi: _winrt.Single
    native_orientation: DisplayOrientations
    resolution_scale: ResolutionScale
    stereo_enabled: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.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(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> DisplayServices: ...
    @staticmethod
    def find_all() -> winsdk.windows.graphics.DisplayId: ...

DisplayPropertiesEventHandler = typing.Callable[[typing.Optional[_winrt.Object]], None]

