# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.0.0-beta.2

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

Self = typing.TypeVar('Self')

@typing.final
class CustomSensor_Static(type):
    def from_id_async(cls, sensor_id: str, /) -> winrt.windows.foundation.IAsyncOperation[CustomSensor]: ...
    def get_device_selector(cls, interface_id: _uuid.UUID, /) -> str: ...

@typing.final
class CustomSensor(winrt.system.Object, metaclass=CustomSensor_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CustomSensor: ...
    def get_current_reading(self) -> typing.Optional[CustomSensorReading]: ...
    def add_reading_changed(self, handler: winrt.windows.foundation.TypedEventHandler[CustomSensor, CustomSensorReadingChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_reading_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def report_interval(self) -> winrt.system.UInt32: ...
    @report_interval.setter
    def report_interval(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def device_id(self) -> str: ...
    @_property
    def minimum_report_interval(self) -> winrt.system.UInt32: ...
    @_property
    def report_latency(self) -> winrt.system.UInt32: ...
    @report_latency.setter
    def report_latency(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def max_batch_size(self) -> winrt.system.UInt32: ...

@typing.final
class CustomSensorReading(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CustomSensorReading: ...
    @_property
    def properties(self) -> typing.Optional[winrt.windows.foundation.collections.IMapView[str, winrt.system.Object]]: ...
    @_property
    def timestamp(self) -> datetime.datetime: ...
    @_property
    def performance_count(self) -> typing.Optional[typing.Optional[datetime.timedelta]]: ...

@typing.final
class CustomSensorReadingChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CustomSensorReadingChangedEventArgs: ...
    @_property
    def reading(self) -> typing.Optional[CustomSensorReading]: ...

