# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.2.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 as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections

from winrt.windows.devices.haptics import VibrationAccessStatus

Self = typing.TypeVar('Self')

@typing.final
class KnownSimpleHapticsControllerWaveforms_Static(winrt._winrt.IInspectable_Static):
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_BuzzContinuous()
    @_property
    def buzz_continuous(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_Click()
    @_property
    def click(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_Press()
    @_property
    def press(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_Release()
    @_property
    def release(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_RumbleContinuous()
    @_property
    def rumble_continuous(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_BrushContinuous()
    @_property
    def brush_continuous(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_ChiselMarkerContinuous()
    @_property
    def chisel_marker_continuous(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_EraserContinuous()
    @_property
    def eraser_continuous(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_Error()
    @_property
    def error(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_GalaxyPenContinuous()
    @_property
    def galaxy_pen_continuous(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_Hover()
    @_property
    def hover(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_InkContinuous()
    @_property
    def ink_continuous(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_MarkerContinuous()
    @_property
    def marker_continuous(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_PencilContinuous()
    @_property
    def pencil_continuous(cls) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Haptics.KnownSimpleHapticsControllerWaveforms::get_Success()
    @_property
    def success(cls) -> winrt.system.UInt16: ...

@typing.final
class KnownSimpleHapticsControllerWaveforms(winrt.system.Object, metaclass=KnownSimpleHapticsControllerWaveforms_Static):
    pass

@typing.final
class SimpleHapticsController(winrt.system.Object):
    # System.Void Windows.Devices.Haptics.SimpleHapticsController::SendHapticFeedback(Windows.Devices.Haptics.SimpleHapticsControllerFeedback)
    def send_haptic_feedback(self, feedback: SimpleHapticsControllerFeedback, /) -> None: ...
    # System.Void Windows.Devices.Haptics.SimpleHapticsController::SendHapticFeedbackForDuration(Windows.Devices.Haptics.SimpleHapticsControllerFeedback,System.Double,Windows.Foundation.TimeSpan)
    def send_haptic_feedback_for_duration(self, feedback: SimpleHapticsControllerFeedback, intensity: winrt.system.Double, play_duration: datetime.timedelta, /) -> None: ...
    # System.Void Windows.Devices.Haptics.SimpleHapticsController::SendHapticFeedbackForPlayCount(Windows.Devices.Haptics.SimpleHapticsControllerFeedback,System.Double,System.Int32,Windows.Foundation.TimeSpan)
    def send_haptic_feedback_for_play_count(self, feedback: SimpleHapticsControllerFeedback, intensity: winrt.system.Double, play_count: winrt.system.Int32, replay_pause_interval: datetime.timedelta, /) -> None: ...
    # System.Void Windows.Devices.Haptics.SimpleHapticsController::SendHapticFeedback(Windows.Devices.Haptics.SimpleHapticsControllerFeedback,System.Double)
    def send_haptic_feedback_with_intensity(self, feedback: SimpleHapticsControllerFeedback, intensity: winrt.system.Double, /) -> None: ...
    # System.Void Windows.Devices.Haptics.SimpleHapticsController::StopFeedback()
    def stop_feedback(self) -> None: ...
    # System.String Windows.Devices.Haptics.SimpleHapticsController::get_Id()
    @_property
    def id(self) -> str: ...
    # System.Boolean Windows.Devices.Haptics.SimpleHapticsController::get_IsIntensitySupported()
    @_property
    def is_intensity_supported(self) -> bool: ...
    # System.Boolean Windows.Devices.Haptics.SimpleHapticsController::get_IsPlayCountSupported()
    @_property
    def is_play_count_supported(self) -> bool: ...
    # System.Boolean Windows.Devices.Haptics.SimpleHapticsController::get_IsPlayDurationSupported()
    @_property
    def is_play_duration_supported(self) -> bool: ...
    # System.Boolean Windows.Devices.Haptics.SimpleHapticsController::get_IsReplayPauseIntervalSupported()
    @_property
    def is_replay_pause_interval_supported(self) -> bool: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Haptics.SimpleHapticsControllerFeedback> Windows.Devices.Haptics.SimpleHapticsController::get_SupportedFeedback()
    @_property
    def supported_feedback(self) -> typing.Sequence[SimpleHapticsControllerFeedback]: ...

@typing.final
class SimpleHapticsControllerFeedback(winrt.system.Object):
    # Windows.Foundation.TimeSpan Windows.Devices.Haptics.SimpleHapticsControllerFeedback::get_Duration()
    @_property
    def duration(self) -> datetime.timedelta: ...
    # System.UInt16 Windows.Devices.Haptics.SimpleHapticsControllerFeedback::get_Waveform()
    @_property
    def waveform(self) -> winrt.system.UInt16: ...

@typing.final
class VibrationDevice_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Haptics.VibrationDevice>> Windows.Devices.Haptics.VibrationDevice::FindAllAsync()
    def find_all_async(cls) -> windows_foundation.IAsyncOperation[typing.Sequence[VibrationDevice]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Haptics.VibrationDevice> Windows.Devices.Haptics.VibrationDevice::FromIdAsync(System.String)
    def from_id_async(cls, device_id: str, /) -> windows_foundation.IAsyncOperation[VibrationDevice]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Haptics.VibrationDevice> Windows.Devices.Haptics.VibrationDevice::GetDefaultAsync()
    def get_default_async(cls) -> windows_foundation.IAsyncOperation[VibrationDevice]: ...
    # System.String Windows.Devices.Haptics.VibrationDevice::GetDeviceSelector()
    def get_device_selector(cls) -> str: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Haptics.VibrationAccessStatus> Windows.Devices.Haptics.VibrationDevice::RequestAccessAsync()
    def request_access_async(cls) -> windows_foundation.IAsyncOperation[VibrationAccessStatus]: ...

@typing.final
class VibrationDevice(winrt.system.Object, metaclass=VibrationDevice_Static):
    # System.String Windows.Devices.Haptics.VibrationDevice::get_Id()
    @_property
    def id(self) -> str: ...
    # Windows.Devices.Haptics.SimpleHapticsController Windows.Devices.Haptics.VibrationDevice::get_SimpleHapticsController()
    @_property
    def simple_haptics_controller(self) -> SimpleHapticsController: ...

