# 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.devices.sensors
import winsdk.windows.foundation

class HingeState(enum.IntEnum):
    UNKNOWN = 0
    CLOSED = 1
    CONCAVE = 2
    FLAT = 3
    CONVEX = 4
    FULL = 5

Self = typing.TypeVar('Self')

class TwoPanelHingedDevicePosturePreview(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> TwoPanelHingedDevicePosturePreview: ...
    def get_current_posture_async(self) -> winsdk.windows.foundation.IAsyncOperation[TwoPanelHingedDevicePosturePreviewReading]: ...
    @staticmethod
    def get_default_async() -> winsdk.windows.foundation.IAsyncOperation[TwoPanelHingedDevicePosturePreview]: ...
    def add_posture_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[TwoPanelHingedDevicePosturePreview, TwoPanelHingedDevicePosturePreviewReadingChangedEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_posture_changed(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

class TwoPanelHingedDevicePosturePreviewReading(winsdk.system.Object):
    hinge_state: HingeState
    panel1_id: str
    panel1_orientation: winsdk.windows.devices.sensors.SimpleOrientation
    panel2_id: str
    panel2_orientation: winsdk.windows.devices.sensors.SimpleOrientation
    timestamp: datetime.datetime
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> TwoPanelHingedDevicePosturePreviewReading: ...

class TwoPanelHingedDevicePosturePreviewReadingChangedEventArgs(winsdk.system.Object):
    reading: typing.Optional[TwoPanelHingedDevicePosturePreviewReading]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> TwoPanelHingedDevicePosturePreviewReadingChangedEventArgs: ...

