# 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.radios import RadioAccessStatus, RadioKind, RadioState

Self = typing.TypeVar('Self')

@typing.final
class Radio_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Radios.Radio> Windows.Devices.Radios.Radio::FromIdAsync(System.String)
    def from_id_async(cls, device_id: str, /) -> windows_foundation.IAsyncOperation[Radio]: ...
    # System.String Windows.Devices.Radios.Radio::GetDeviceSelector()
    def get_device_selector(cls) -> str: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Radios.Radio>> Windows.Devices.Radios.Radio::GetRadiosAsync()
    def get_radios_async(cls) -> windows_foundation.IAsyncOperation[typing.Sequence[Radio]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Radios.RadioAccessStatus> Windows.Devices.Radios.Radio::RequestAccessAsync()
    def request_access_async(cls) -> windows_foundation.IAsyncOperation[RadioAccessStatus]: ...

@typing.final
class Radio(winrt.system.Object, metaclass=Radio_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Radios.RadioAccessStatus> Windows.Devices.Radios.Radio::SetStateAsync(Windows.Devices.Radios.RadioState)
    def set_state_async(self, value: RadioState, /) -> windows_foundation.IAsyncOperation[RadioAccessStatus]: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Radios.Radio::add_StateChanged(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Radios.Radio,System.Object>)
    def add_state_changed(self, handler: windows_foundation.TypedEventHandler[Radio, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Radios.Radio::remove_StateChanged(Windows.Foundation.EventRegistrationToken)
    def remove_state_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Devices.Radios.RadioKind Windows.Devices.Radios.Radio::get_Kind()
    @_property
    def kind(self) -> RadioKind: ...
    # System.String Windows.Devices.Radios.Radio::get_Name()
    @_property
    def name(self) -> str: ...
    # Windows.Devices.Radios.RadioState Windows.Devices.Radios.Radio::get_State()
    @_property
    def state(self) -> RadioState: ...

