# 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

class HdmiDisplayColorSpace(enum.IntEnum):
    RGB_LIMITED = 0
    RGB_FULL = 1
    B_T2020 = 2
    B_T709 = 3

class HdmiDisplayHdrOption(enum.IntEnum):
    NONE = 0
    EOTF_SDR = 1
    EOTF2084 = 2
    DOLBY_VISION_LOW_LATENCY = 3

class HdmiDisplayPixelEncoding(enum.IntEnum):
    RGB444 = 0
    YCC444 = 1
    YCC422 = 2
    YCC420 = 3

Self = typing.TypeVar('Self')

class HdmiDisplayHdr2086Metadata:
    red_primary_x: _winrt.UInt16
    red_primary_y: _winrt.UInt16
    green_primary_x: _winrt.UInt16
    green_primary_y: _winrt.UInt16
    blue_primary_x: _winrt.UInt16
    blue_primary_y: _winrt.UInt16
    white_point_x: _winrt.UInt16
    white_point_y: _winrt.UInt16
    max_mastering_luminance: _winrt.UInt16
    min_mastering_luminance: _winrt.UInt16
    max_content_light_level: _winrt.UInt16
    max_frame_average_light_level: _winrt.UInt16
    def __new__(cls: typing.Type[HdmiDisplayHdr2086Metadata], red_primary_x: _winrt.UInt16, red_primary_y: _winrt.UInt16, green_primary_x: _winrt.UInt16, green_primary_y: _winrt.UInt16, blue_primary_x: _winrt.UInt16, blue_primary_y: _winrt.UInt16, white_point_x: _winrt.UInt16, white_point_y: _winrt.UInt16, max_mastering_luminance: _winrt.UInt16, min_mastering_luminance: _winrt.UInt16, max_content_light_level: _winrt.UInt16, max_frame_average_light_level: _winrt.UInt16) -> HdmiDisplayHdr2086Metadata: ...

class HdmiDisplayInformation(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> HdmiDisplayInformation: ...
    def get_current_display_mode(self) -> typing.Optional[HdmiDisplayMode]: ...
    @staticmethod
    def get_for_current_view() -> typing.Optional[HdmiDisplayInformation]: ...
    def get_supported_display_modes(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[HdmiDisplayMode]]: ...
    @typing.overload
    def request_set_current_display_mode_async(self, mode: typing.Optional[HdmiDisplayMode]) -> winsdk.windows.foundation.IAsyncOperation[_winrt.Boolean]: ...
    @typing.overload
    def request_set_current_display_mode_async(self, mode: typing.Optional[HdmiDisplayMode], hdr_option: HdmiDisplayHdrOption) -> winsdk.windows.foundation.IAsyncOperation[_winrt.Boolean]: ...
    @typing.overload
    def request_set_current_display_mode_async(self, mode: typing.Optional[HdmiDisplayMode], hdr_option: HdmiDisplayHdrOption, hdr_metadata: HdmiDisplayHdr2086Metadata) -> winsdk.windows.foundation.IAsyncOperation[_winrt.Boolean]: ...
    def set_default_display_mode_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def add_display_modes_changed(self, value: winsdk.windows.foundation.TypedEventHandler[HdmiDisplayInformation, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_display_modes_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

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

