# 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

from winrt.windows.graphics.display.core import HdmiDisplayColorSpace, HdmiDisplayHdrOption, HdmiDisplayPixelEncoding

Self = typing.TypeVar('Self')

@typing.final
class HdmiDisplayHdr2086Metadata:
    red_primary_x: winrt.system.UInt16
    red_primary_y: winrt.system.UInt16
    green_primary_x: winrt.system.UInt16
    green_primary_y: winrt.system.UInt16
    blue_primary_x: winrt.system.UInt16
    blue_primary_y: winrt.system.UInt16
    white_point_x: winrt.system.UInt16
    white_point_y: winrt.system.UInt16
    max_mastering_luminance: winrt.system.UInt16
    min_mastering_luminance: winrt.system.UInt16
    max_content_light_level: winrt.system.UInt16
    max_frame_average_light_level: winrt.system.UInt16
    def __init__(self, red_primary_x: winrt.system.UInt16, red_primary_y: winrt.system.UInt16, green_primary_x: winrt.system.UInt16, green_primary_y: winrt.system.UInt16, blue_primary_x: winrt.system.UInt16, blue_primary_y: winrt.system.UInt16, white_point_x: winrt.system.UInt16, white_point_y: winrt.system.UInt16, max_mastering_luminance: winrt.system.UInt16, min_mastering_luminance: winrt.system.UInt16, max_content_light_level: winrt.system.UInt16, max_frame_average_light_level: winrt.system.UInt16) -> None: ...

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

@typing.final
class HdmiDisplayInformation(winrt.system.Object, metaclass=HdmiDisplayInformation_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> HdmiDisplayInformation: ...
    def get_current_display_mode(self) -> typing.Optional[HdmiDisplayMode]: ...
    def get_supported_display_modes(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[HdmiDisplayMode]]: ...
    @typing.overload
    def request_set_current_display_mode_async(self, mode: typing.Optional[HdmiDisplayMode], /) -> winrt.windows.foundation.IAsyncOperation[bool]: ...
    @typing.overload
    def request_set_current_display_mode_async(self, mode: typing.Optional[HdmiDisplayMode], hdr_option: HdmiDisplayHdrOption, /) -> winrt.windows.foundation.IAsyncOperation[bool]: ...
    @typing.overload
    def request_set_current_display_mode_async(self, mode: typing.Optional[HdmiDisplayMode], hdr_option: HdmiDisplayHdrOption, hdr_metadata: HdmiDisplayHdr2086Metadata, /) -> winrt.windows.foundation.IAsyncOperation[bool]: ...
    def set_default_display_mode_async(self) -> winrt.windows.foundation.IAsyncAction: ...
    def add_display_modes_changed(self, value: winrt.windows.foundation.TypedEventHandler[HdmiDisplayInformation, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_display_modes_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...

@typing.final
class HdmiDisplayMode(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> HdmiDisplayMode: ...
    def is_equal(self, mode: typing.Optional[HdmiDisplayMode], /) -> bool: ...
    @_property
    def bits_per_pixel(self) -> winrt.system.UInt16: ...
    @_property
    def color_space(self) -> HdmiDisplayColorSpace: ...
    @_property
    def is2086_metadata_supported(self) -> bool: ...
    @_property
    def is_sdr_luminance_supported(self) -> bool: ...
    @_property
    def is_smpte2084_supported(self) -> bool: ...
    @_property
    def pixel_encoding(self) -> HdmiDisplayPixelEncoding: ...
    @_property
    def refresh_rate(self) -> winrt.system.Double: ...
    @_property
    def resolution_height_in_raw_pixels(self) -> winrt.system.UInt32: ...
    @_property
    def resolution_width_in_raw_pixels(self) -> winrt.system.UInt32: ...
    @_property
    def stereo_enabled(self) -> bool: ...
    @_property
    def is_dolby_vision_low_latency_supported(self) -> bool: ...

