# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.2.1

import enum
import typing
import uuid as _uuid

import winrt.system
from winrt._winrt_windows_networking_proximity import (
    ConnectionRequestedEventArgs,
    PeerFinder,
    PeerInformation,
    PeerWatcher,
    ProximityDevice,
    ProximityMessage,
    TriggeredConnectionStateChangedEventArgs,
)

__all__ = [
    "PeerDiscoveryTypes",
    "PeerRole",
    "PeerWatcherStatus",
    "TriggeredConnectState",
    "ConnectionRequestedEventArgs",
    "PeerFinder",
    "PeerInformation",
    "PeerWatcher",
    "ProximityDevice",
    "ProximityMessage",
    "TriggeredConnectionStateChangedEventArgs",
    "DeviceArrivedEventHandler",
    "DeviceDepartedEventHandler",
    "MessageReceivedHandler",
    "MessageTransmittedHandler",
]

class PeerDiscoveryTypes(enum.IntFlag):
    NONE = 0x0
    BROWSE = 0x1
    TRIGGERED = 0x2

class PeerRole(enum.IntEnum):
    PEER = 0
    HOST = 1
    CLIENT = 2

class PeerWatcherStatus(enum.IntEnum):
    CREATED = 0
    STARTED = 1
    ENUMERATION_COMPLETED = 2
    STOPPING = 3
    STOPPED = 4
    ABORTED = 5

class TriggeredConnectState(enum.IntEnum):
    PEER_FOUND = 0
    LISTENING = 1
    CONNECTING = 2
    COMPLETED = 3
    CANCELED = 4
    FAILED = 5

DeviceArrivedEventHandler = typing.Callable[[ProximityDevice], None]
DeviceDepartedEventHandler = typing.Callable[[ProximityDevice], None]
MessageReceivedHandler = typing.Callable[[ProximityDevice, ProximityMessage], None]
MessageTransmittedHandler = typing.Callable[[ProximityDevice, winrt.system.Int64], None]
