# 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

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: winsdk.system.UInt16
    red_primary_y: winsdk.system.UInt16
    green_primary_x: winsdk.system.UInt16
    green_primary_y: winsdk.system.UInt16
    blue_primary_x: winsdk.system.UInt16
    blue_primary_y: winsdk.system.UInt16
    white_point_x: winsdk.system.UInt16
    white_point_y: winsdk.system.UInt16
    max_mastering_luminance: winsdk.system.UInt16
    min_mastering_luminance: winsdk.system.UInt16
    max_content_light_level: winsdk.system.UInt16
    max_frame_average_light_level: winsdk.system.UInt16
    def __new__(cls: typing.Type[HdmiDisplayHdr2086Metadata], red_primary_x: winsdk.system.UInt16, red_primary_y: winsdk.system.UInt16, green_primary_x: winsdk.system.UInt16, green_primary_y: winsdk.system.UInt16, blue_primary_x: winsdk.system.UInt16, blue_primary_y: winsdk.system.UInt16, white_point_x: winsdk.system.UInt16, white_point_y: winsdk.system.UInt16, max_mastering_luminance: winsdk.system.UInt16, min_mastering_luminance: winsdk.system.UInt16, max_content_light_level: winsdk.system.UInt16, max_frame_average_light_level: winsdk.system.UInt16) -> HdmiDisplayHdr2086Metadata: ...

class HdmiDisplayInformation(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.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[winsdk.system.Boolean]: ...
    @typing.overload
    def request_set_current_display_mode_async(self, mode: typing.Optional[HdmiDisplayMode], hdr_option: HdmiDisplayHdrOption, /) -> winsdk.windows.foundation.IAsyncOperation[winsdk.system.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[winsdk.system.Boolean]: ...
    def set_default_display_mode_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    def add_display_modes_changed(self, value: winsdk.windows.foundation.TypedEventHandler[HdmiDisplayInformation, winsdk.system.Object], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_display_modes_changed(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

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

