import typing

import android.content
import android.net
import android.net.wifi
import android.net.wifi.p2p.nsd
import android.os
import java
import java.chaquopy
import java.lang
import java.net
import java.util
import java.util.concurrent
import java.util.function

class WifiP2pConfig(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiP2pConfig]] = ...
    GROUP_CLIENT_IP_PROVISIONING_MODE_IPV4_DHCP: typing.ClassVar[int] = ...
    GROUP_CLIENT_IP_PROVISIONING_MODE_IPV6_LINK_LOCAL: typing.ClassVar[int] = ...
    GROUP_OWNER_BAND_2GHZ: typing.ClassVar[int] = ...
    GROUP_OWNER_BAND_5GHZ: typing.ClassVar[int] = ...
    GROUP_OWNER_BAND_6GHZ: typing.ClassVar[int] = ...
    GROUP_OWNER_BAND_AUTO: typing.ClassVar[int] = ...
    GROUP_OWNER_INTENT_AUTO: typing.ClassVar[int] = ...
    GROUP_OWNER_INTENT_MAX: typing.ClassVar[int] = ...
    GROUP_OWNER_INTENT_MIN: typing.ClassVar[int] = ...
    P2P_VERSION_1: typing.ClassVar[int] = ...
    P2P_VERSION_2: typing.ClassVar[int] = ...
    PCC_MODE_CONNECTION_TYPE_LEGACY_ONLY: typing.ClassVar[int] = ...
    PCC_MODE_CONNECTION_TYPE_LEGACY_OR_R2: typing.ClassVar[int] = ...
    PCC_MODE_CONNECTION_TYPE_R2_ONLY: typing.ClassVar[int] = ...
    deviceAddress: str = ...
    groupOwnerIntent: int = ...
    wps: android.net.wifi.WpsInfo = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, source: WifiP2pConfig, /) -> None: ...
    def describeContents(self) -> int: ...
    def getGroupClientIpProvisioningMode(self) -> int: ...
    def getGroupOwnerBand(self) -> int: ...
    def getGroupOwnerVersion(self) -> int: ...
    def getNetworkId(self) -> int: ...
    def getNetworkName(self) -> str | None: ...
    def getPairingBootstrappingConfig(self) -> WifiP2pPairingBootstrappingConfig: ...
    def getPassphrase(self) -> str | None: ...
    def getPccModeConnectionType(self) -> int: ...
    def isAuthorizeConnectionFromPeerEnabled(self) -> bool: ...
    def setGroupOwnerVersion(self, version: int | java.jint | java.lang.Integer, /) -> None: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> WifiP2pConfig: ...
        def enablePersistentMode(self, persistent: bool | java.jboolean | java.lang.Boolean, /) -> WifiP2pConfig.Builder: ...
        def setAuthorizeConnectionFromPeerEnabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> WifiP2pConfig.Builder: ...
        def setDeviceAddress(self, deviceAddress: android.net.MacAddress, /) -> WifiP2pConfig.Builder: ...
        def setGroupClientIpProvisioningMode(self, groupClientIpProvisioningMode: int | java.jint | java.lang.Integer, /) -> WifiP2pConfig.Builder: ...
        def setGroupOperatingBand(self, band: int | java.jint | java.lang.Integer, /) -> WifiP2pConfig.Builder: ...
        def setGroupOperatingFrequency(self, frequency: int | java.jint | java.lang.Integer, /) -> WifiP2pConfig.Builder: ...
        def setNetworkName(self, networkName: str | java.lang.String, /) -> WifiP2pConfig.Builder: ...
        def setPairingBootstrappingConfig(self, config: WifiP2pPairingBootstrappingConfig, /) -> WifiP2pConfig.Builder: ...
        def setPassphrase(self, passphrase: str | java.lang.String, /) -> WifiP2pConfig.Builder: ...
        def setPccModeConnectionType(self, connectionType: int | java.jint | java.lang.Integer, /) -> WifiP2pConfig.Builder: ...

class WifiP2pDevice(android.os.Parcelable):
    AVAILABLE: typing.ClassVar[int] = ...
    CONNECTED: typing.ClassVar[int] = ...
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiP2pDevice]] = ...
    FAILED: typing.ClassVar[int] = ...
    INVITED: typing.ClassVar[int] = ...
    UNAVAILABLE: typing.ClassVar[int] = ...
    deviceAddress: str = ...
    deviceName: str = ...
    primaryDeviceType: str = ...
    secondaryDeviceType: str = ...
    status: int = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, source: WifiP2pDevice, /) -> None: ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getIpAddress(self) -> java.net.InetAddress | None: ...
    def getVendorElements(self) -> java.util.List[android.net.wifi.ScanResult.InformationElement]: ...
    def getWfdInfo(self) -> WifiP2pWfdInfo | None: ...
    def hashCode(self) -> int: ...
    def isGroupOwner(self) -> bool: ...
    def isOpportunisticBootstrappingMethodSupported(self) -> bool: ...
    def isPassphraseDisplayBootstrappingMethodSupported(self) -> bool: ...
    def isPassphraseKeypadBootstrappingMethodSupported(self) -> bool: ...
    def isPinCodeDisplayBootstrappingMethodSupported(self) -> bool: ...
    def isPinCodeKeypadBootstrappingMethodSupported(self) -> bool: ...
    def isServiceDiscoveryCapable(self) -> bool: ...
    def toString(self) -> str: ...
    def update(self, device: WifiP2pDevice, /) -> None: ...
    def wpsDisplaySupported(self) -> bool: ...
    def wpsKeypadSupported(self) -> bool: ...
    def wpsPbcSupported(self) -> bool: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class WifiP2pDeviceList(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiP2pDeviceList]] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, source: WifiP2pDeviceList, /) -> None: ...
    def describeContents(self) -> int: ...
    def get(self, deviceAddress: str | java.lang.String, /) -> WifiP2pDevice | None: ...
    def getDeviceList(self) -> java.util.Collection[WifiP2pDevice]: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class WifiP2pDirInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiP2pDirInfo]] = ...
    def __init__(self, macAddress: android.net.MacAddress, nonce: java.chaquopy.JavaArrayJByte, dirTag: java.chaquopy.JavaArrayJByte, /) -> None: ...
    def describeContents(self) -> int: ...
    def getDirTag(self) -> java.chaquopy.JavaArrayJByte: ...
    def getMacAddress(self) -> android.net.MacAddress: ...
    def getNonce(self) -> java.chaquopy.JavaArrayJByte: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class WifiP2pDiscoveryConfig(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiP2pDiscoveryConfig]] = ...
    def describeContents(self) -> int: ...
    def getFrequencyMhz(self) -> int: ...
    def getScanType(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        def __init__(self, scanType: int | java.jint | java.lang.Integer, /) -> None: ...
        def build(self) -> WifiP2pDiscoveryConfig: ...
        def setFrequencyMhz(self, frequencyMhz: int | java.jint | java.lang.Integer, /) -> WifiP2pDiscoveryConfig.Builder: ...

class WifiP2pGroup(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiP2pGroup]] = ...
    NETWORK_ID_PERSISTENT: typing.ClassVar[int] = ...
    NETWORK_ID_TEMPORARY: typing.ClassVar[int] = ...
    SECURITY_TYPE_UNKNOWN: typing.ClassVar[int] = ...
    SECURITY_TYPE_WPA2_PSK: typing.ClassVar[int] = ...
    SECURITY_TYPE_WPA3_COMPATIBILITY: typing.ClassVar[int] = ...
    SECURITY_TYPE_WPA3_SAE: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, source: WifiP2pGroup, /) -> None: ...
    def describeContents(self) -> int: ...
    def getClientList(self) -> java.util.Collection[WifiP2pDevice]: ...
    def getFrequency(self) -> int: ...
    def getGroupOwnerBssid(self) -> android.net.MacAddress: ...
    def getInterface(self) -> str: ...
    def getNetworkId(self) -> int: ...
    def getNetworkName(self) -> str: ...
    def getOwner(self) -> WifiP2pDevice: ...
    def getPassphrase(self) -> str: ...
    def getSecurityType(self) -> int: ...
    def isGroupOwner(self) -> bool: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class WifiP2pInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiP2pInfo]] = ...
    groupFormed: bool = ...
    groupOwnerAddress: java.net.InetAddress = ...
    isGroupOwner: bool = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, source: WifiP2pInfo, /) -> None: ...
    def describeContents(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class WifiP2pManager(java.lang.Object):
    ACTION_WIFI_P2P_LISTEN_STATE_CHANGED: typing.ClassVar[str] = ...
    ACTION_WIFI_P2P_REQUEST_RESPONSE_CHANGED: typing.ClassVar[str] = ...
    BUSY: typing.ClassVar[int] = ...
    CONNECTION_REQUEST_ACCEPT: typing.ClassVar[int] = ...
    CONNECTION_REQUEST_DEFER_SHOW_PIN_TO_SERVICE: typing.ClassVar[int] = ...
    CONNECTION_REQUEST_DEFER_TO_SERVICE: typing.ClassVar[int] = ...
    CONNECTION_REQUEST_REJECT: typing.ClassVar[int] = ...
    ERROR: typing.ClassVar[int] = ...
    EXTRA_DISCOVERY_STATE: typing.ClassVar[str] = ...
    EXTRA_LISTEN_STATE: typing.ClassVar[str] = ...
    EXTRA_NETWORK_INFO: typing.ClassVar[str] = ...
    EXTRA_P2P_DEVICE_LIST: typing.ClassVar[str] = ...
    EXTRA_REQUEST_CONFIG: typing.ClassVar[str] = ...
    EXTRA_REQUEST_RESPONSE: typing.ClassVar[str] = ...
    EXTRA_WIFI_P2P_DEVICE: typing.ClassVar[str] = ...
    EXTRA_WIFI_P2P_GROUP: typing.ClassVar[str] = ...
    EXTRA_WIFI_P2P_INFO: typing.ClassVar[str] = ...
    EXTRA_WIFI_STATE: typing.ClassVar[str] = ...
    GROUP_CREATION_FAILURE_REASON_CONNECTION_CANCELLED: typing.ClassVar[int] = ...
    GROUP_CREATION_FAILURE_REASON_GROUP_REMOVED: typing.ClassVar[int] = ...
    GROUP_CREATION_FAILURE_REASON_INVITATION_FAILED: typing.ClassVar[int] = ...
    GROUP_CREATION_FAILURE_REASON_PROVISION_DISCOVERY_FAILED: typing.ClassVar[int] = ...
    GROUP_CREATION_FAILURE_REASON_TIMED_OUT: typing.ClassVar[int] = ...
    GROUP_CREATION_FAILURE_REASON_USER_REJECTED: typing.ClassVar[int] = ...
    NO_PERMISSION: typing.ClassVar[int] = ...
    NO_SERVICE_REQUESTS: typing.ClassVar[int] = ...
    P2P_UNSUPPORTED: typing.ClassVar[int] = ...
    WIFI_P2P_CONNECTION_CHANGED_ACTION: typing.ClassVar[str] = ...
    WIFI_P2P_DISCOVERY_CHANGED_ACTION: typing.ClassVar[str] = ...
    WIFI_P2P_DISCOVERY_STARTED: typing.ClassVar[int] = ...
    WIFI_P2P_DISCOVERY_STOPPED: typing.ClassVar[int] = ...
    WIFI_P2P_LISTEN_STARTED: typing.ClassVar[int] = ...
    WIFI_P2P_LISTEN_STOPPED: typing.ClassVar[int] = ...
    WIFI_P2P_PEERS_CHANGED_ACTION: typing.ClassVar[str] = ...
    WIFI_P2P_SCAN_FULL: typing.ClassVar[int] = ...
    WIFI_P2P_SCAN_SINGLE_FREQ: typing.ClassVar[int] = ...
    WIFI_P2P_SCAN_SOCIAL: typing.ClassVar[int] = ...
    WIFI_P2P_STATE_CHANGED_ACTION: typing.ClassVar[str] = ...
    WIFI_P2P_STATE_DISABLED: typing.ClassVar[int] = ...
    WIFI_P2P_STATE_ENABLED: typing.ClassVar[int] = ...
    WIFI_P2P_THIS_DEVICE_CHANGED_ACTION: typing.ClassVar[str] = ...
    def addExternalApprover(self, c: WifiP2pManager.Channel, deviceAddress: android.net.MacAddress, listener: WifiP2pManager.ExternalApproverRequestListener, /) -> None: ...
    def addLocalService(self, channel: WifiP2pManager.Channel, servInfo: android.net.wifi.p2p.nsd.WifiP2pServiceInfo, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def addServiceRequest(self, channel: WifiP2pManager.Channel, req: android.net.wifi.p2p.nsd.WifiP2pServiceRequest, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def cancelConnect(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def clearLocalServices(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def clearServiceRequests(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def connect(self, channel: WifiP2pManager.Channel, config: WifiP2pConfig, listener: WifiP2pManager.ActionListener, /) -> None: ...
    @typing.overload
    def createGroup(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ActionListener, /) -> None: ...
    @typing.overload
    def createGroup(self, channel: WifiP2pManager.Channel, config: WifiP2pConfig, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def discoverPeers(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def discoverPeersOnSocialChannels(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def discoverPeersOnSpecificFrequency(self, channel: WifiP2pManager.Channel, frequencyMhz: int | java.jint | java.lang.Integer, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def discoverServices(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def discoverUsdBasedServices(self, channel: WifiP2pManager.Channel, config: WifiP2pUsdBasedServiceDiscoveryConfig, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def getListenState(self, c: WifiP2pManager.Channel, executor: java.util.concurrent.Executor, resultsCallback: java.util.function.Consumer[java.lang.Integer], /) -> None: ...
    @staticmethod
    def getP2pMaxAllowedVendorElementsLengthBytes() -> int: ...
    def initialize(self, srcContext: android.content.Context, srcLooper: android.os.Looper, listener: WifiP2pManager.ChannelListener, /) -> WifiP2pManager.Channel: ...
    def isChannelConstrainedDiscoverySupported(self) -> bool: ...
    def isGroupClientRemovalSupported(self) -> bool: ...
    def isGroupOwnerIPv6LinkLocalAddressProvided(self) -> bool: ...
    def isPccModeSupported(self) -> bool: ...
    def isSetVendorElementsSupported(self) -> bool: ...
    def isWiFiDirectR2Supported(self) -> bool: ...
    def registerWifiP2pListener(self, executor: java.util.concurrent.Executor, listener: WifiP2pManager.WifiP2pListener, /) -> None: ...
    def removeClient(self, channel: WifiP2pManager.Channel, peerAddress: android.net.MacAddress, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def removeExternalApprover(self, c: WifiP2pManager.Channel, deviceAddress: android.net.MacAddress, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def removeGroup(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def removeLocalService(self, channel: WifiP2pManager.Channel, servInfo: android.net.wifi.p2p.nsd.WifiP2pServiceInfo, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def removeServiceRequest(self, channel: WifiP2pManager.Channel, req: android.net.wifi.p2p.nsd.WifiP2pServiceRequest, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def requestConnectionInfo(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ConnectionInfoListener, /) -> None: ...
    def requestDeviceInfo(self, c: WifiP2pManager.Channel, listener: WifiP2pManager.DeviceInfoListener, /) -> None: ...
    def requestDirInfo(self, c: WifiP2pManager.Channel, executor: java.util.concurrent.Executor, callback: android.os.OutcomeReceiver[WifiP2pDirInfo, java.lang.Exception], /) -> None: ...
    def requestDiscoveryState(self, c: WifiP2pManager.Channel, listener: WifiP2pManager.DiscoveryStateListener, /) -> None: ...
    def requestGroupInfo(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.GroupInfoListener, /) -> None: ...
    def requestNetworkInfo(self, c: WifiP2pManager.Channel, listener: WifiP2pManager.NetworkInfoListener, /) -> None: ...
    def requestP2pState(self, c: WifiP2pManager.Channel, listener: WifiP2pManager.P2pStateListener, /) -> None: ...
    def requestPeers(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.PeerListListener, /) -> None: ...
    @typing.overload
    def setConnectionRequestResult(self, c: WifiP2pManager.Channel, deviceAddress: android.net.MacAddress, result: int | java.jint | java.lang.Integer, listener: WifiP2pManager.ActionListener, /) -> None: ...
    @typing.overload
    def setConnectionRequestResult(self, c: WifiP2pManager.Channel, deviceAddress: android.net.MacAddress, result: int | java.jint | java.lang.Integer, pin: str | java.lang.String, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def setDnsSdResponseListeners(self, channel: WifiP2pManager.Channel, servListener: WifiP2pManager.DnsSdServiceResponseListener, txtListener: WifiP2pManager.DnsSdTxtRecordListener, /) -> None: ...
    def setServiceResponseListener(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ServiceResponseListener, /) -> None: ...
    def setUpnpServiceResponseListener(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.UpnpServiceResponseListener, /) -> None: ...
    def setVendorElements(self, c: WifiP2pManager.Channel, vendorElements: java.util.List[android.net.wifi.ScanResult.InformationElement], listener: WifiP2pManager.ActionListener, /) -> None: ...
    def setWfdInfo(self, channel: WifiP2pManager.Channel, wfdInfo: WifiP2pWfdInfo, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def startListening(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def startPeerDiscovery(self, channel: WifiP2pManager.Channel, config: WifiP2pDiscoveryConfig, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def startUsdBasedLocalServiceAdvertisement(self, channel: WifiP2pManager.Channel, servInfo: android.net.wifi.p2p.nsd.WifiP2pServiceInfo, config: WifiP2pUsdBasedLocalServiceAdvertisementConfig, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def stopListening(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def stopPeerDiscovery(self, channel: WifiP2pManager.Channel, listener: WifiP2pManager.ActionListener, /) -> None: ...
    def unregisterWifiP2pListener(self, listener: WifiP2pManager.WifiP2pListener, /) -> None: ...
    def validateDirInfo(self, c: WifiP2pManager.Channel, dirInfo: WifiP2pDirInfo, executor: java.util.concurrent.Executor, callback: android.os.OutcomeReceiver[java.lang.Boolean, java.lang.Exception], /) -> None: ...

    class WifiP2pListener(java.lang.Object):
        def onDeviceConfigurationChanged(self, p2pDevice: WifiP2pDevice, /) -> None: ...
        def onDiscoveryStateChanged(self, state: int | java.jint | java.lang.Integer, /) -> None: ...
        def onFrequencyChanged(self, p2pInfo: WifiP2pInfo, p2pGroup: WifiP2pGroup, /) -> None: ...
        def onGroupCreated(self, p2pInfo: WifiP2pInfo, p2pGroup: WifiP2pGroup, /) -> None: ...
        def onGroupCreating(self) -> None: ...
        def onGroupCreationFailed(self, reason: int | java.jint | java.lang.Integer, /) -> None: ...
        def onGroupNegotiationRejectedByUser(self) -> None: ...
        def onGroupRemoved(self) -> None: ...
        def onListenStateChanged(self, state: int | java.jint | java.lang.Integer, /) -> None: ...
        def onP2pStateChanged(self, state: int | java.jint | java.lang.Integer, /) -> None: ...
        def onPeerClientDisconnected(self, p2pInfo: WifiP2pInfo, p2pGroup: WifiP2pGroup, /) -> None: ...
        def onPeerClientJoined(self, p2pInfo: WifiP2pInfo, p2pGroup: WifiP2pGroup, /) -> None: ...
        def onPeerListChanged(self, p2pDeviceList: WifiP2pDeviceList, /) -> None: ...

    class UpnpServiceResponseListener(java.lang.Object):
        def onUpnpServiceAvailable(self, arg1: java.util.List[java.lang.String], arg2: WifiP2pDevice, /) -> None: ...

    class ServiceResponseListener(java.lang.Object):
        def onServiceAvailable(self, arg1: int | java.jint | java.lang.Integer, arg2: java.chaquopy.JavaArrayJByte, arg3: WifiP2pDevice, /) -> None: ...
        def onUsdBasedServiceAvailable(self, srcDevice: WifiP2pDevice, usdResponseData: android.net.wifi.p2p.nsd.WifiP2pUsdBasedServiceResponse, /) -> None: ...

    class PeerListListener(java.lang.Object):
        def onPeersAvailable(self, arg1: WifiP2pDeviceList, /) -> None: ...

    class P2pStateListener(java.lang.Object):
        def onP2pStateAvailable(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...

    class NetworkInfoListener(java.lang.Object):
        def onNetworkInfoAvailable(self, arg1: android.net.NetworkInfo, /) -> None: ...

    class GroupInfoListener(java.lang.Object):
        def onGroupInfoAvailable(self, arg1: WifiP2pGroup, /) -> None: ...

    class ExternalApproverRequestListener(java.lang.Object):
        APPROVER_DETACH_REASON_CLOSE: typing.ClassVar[int] = ...
        APPROVER_DETACH_REASON_FAILURE: typing.ClassVar[int] = ...
        APPROVER_DETACH_REASON_REMOVE: typing.ClassVar[int] = ...
        APPROVER_DETACH_REASON_REPLACE: typing.ClassVar[int] = ...
        REQUEST_TYPE_INVITATION: typing.ClassVar[int] = ...
        REQUEST_TYPE_JOIN: typing.ClassVar[int] = ...
        REQUEST_TYPE_NEGOTIATION: typing.ClassVar[int] = ...
        def onAttached(self, arg1: android.net.MacAddress, /) -> None: ...
        def onConnectionRequested(self, arg1: int | java.jint | java.lang.Integer, arg2: WifiP2pConfig, arg3: WifiP2pDevice, /) -> None: ...
        def onDetached(self, arg1: android.net.MacAddress, arg2: int | java.jint | java.lang.Integer, /) -> None: ...
        def onPinGenerated(self, arg1: android.net.MacAddress, arg2: str | java.lang.String, /) -> None: ...

    class DnsSdTxtRecordListener(java.lang.Object):
        def onDnsSdTxtRecordAvailable(self, arg1: str | java.lang.String, arg2: java.util.Map[java.lang.String, java.lang.String], arg3: WifiP2pDevice, /) -> None: ...

    class DnsSdServiceResponseListener(java.lang.Object):
        def onDnsSdServiceAvailable(self, arg1: str | java.lang.String, arg2: str | java.lang.String, arg3: WifiP2pDevice, /) -> None: ...

    class DiscoveryStateListener(java.lang.Object):
        def onDiscoveryStateAvailable(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...

    class DeviceInfoListener(java.lang.Object):
        def onDeviceInfoAvailable(self, arg1: WifiP2pDevice, /) -> None: ...

    class ConnectionInfoListener(java.lang.Object):
        def onConnectionInfoAvailable(self, arg1: WifiP2pInfo, /) -> None: ...

    class ChannelListener(java.lang.Object):
        def onChannelDisconnected(self) -> None: ...

    class Channel(java.lang.AutoCloseable):
        def close(self) -> None: ...
        def finalize(self) -> None: ...

    class ActionListener(java.lang.Object):
        def onFailure(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...
        def onSuccess(self) -> None: ...

class WifiP2pPairingBootstrappingConfig(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiP2pPairingBootstrappingConfig]] = ...
    PAIRING_BOOTSTRAPPING_METHOD_DISPLAY_PASSPHRASE: typing.ClassVar[int] = ...
    PAIRING_BOOTSTRAPPING_METHOD_DISPLAY_PINCODE: typing.ClassVar[int] = ...
    PAIRING_BOOTSTRAPPING_METHOD_KEYPAD_PASSPHRASE: typing.ClassVar[int] = ...
    PAIRING_BOOTSTRAPPING_METHOD_KEYPAD_PINCODE: typing.ClassVar[int] = ...
    PAIRING_BOOTSTRAPPING_METHOD_OPPORTUNISTIC: typing.ClassVar[int] = ...
    PAIRING_BOOTSTRAPPING_METHOD_OUT_OF_BAND: typing.ClassVar[int] = ...
    def __init__(self, method: int | java.jint | java.lang.Integer, password: str | java.lang.String, /) -> None: ...
    def describeContents(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class WifiP2pUsdBasedLocalServiceAdvertisementConfig(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiP2pUsdBasedLocalServiceAdvertisementConfig]] = ...
    def describeContents(self) -> int: ...
    def getFrequencyMhz(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> WifiP2pUsdBasedLocalServiceAdvertisementConfig: ...
        def setFrequencyMhz(self, frequencyMhz: int | java.jint | java.lang.Integer, /) -> WifiP2pUsdBasedLocalServiceAdvertisementConfig.Builder: ...

class WifiP2pUsdBasedServiceDiscoveryConfig(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiP2pUsdBasedServiceDiscoveryConfig]] = ...
    def describeContents(self) -> int: ...
    def getBand(self) -> int: ...
    def getFrequenciesMhz(self) -> java.chaquopy.JavaArrayJInt: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> WifiP2pUsdBasedServiceDiscoveryConfig: ...
        def setBand(self, band: int | java.jint | java.lang.Integer, /) -> WifiP2pUsdBasedServiceDiscoveryConfig.Builder: ...
        def setFrequenciesMhz(self, frequenciesMhz: java.chaquopy.JavaArrayJInt, /) -> WifiP2pUsdBasedServiceDiscoveryConfig.Builder: ...

class WifiP2pWfdInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiP2pWfdInfo]] = ...
    DEVICE_INFO_AUDIO_ONLY_SUPPORT_AT_SOURCE: typing.ClassVar[int] = ...
    DEVICE_INFO_AUDIO_UNSUPPORTED_AT_PRIMARY_SINK: typing.ClassVar[int] = ...
    DEVICE_INFO_CONTENT_PROTECTION_SUPPORT: typing.ClassVar[int] = ...
    DEVICE_INFO_COUPLED_SINK_SUPPORT_AT_SINK: typing.ClassVar[int] = ...
    DEVICE_INFO_COUPLED_SINK_SUPPORT_AT_SOURCE: typing.ClassVar[int] = ...
    DEVICE_INFO_DEVICE_TYPE_MASK: typing.ClassVar[int] = ...
    DEVICE_INFO_PREFERRED_CONNECTIVITY_MASK: typing.ClassVar[int] = ...
    DEVICE_INFO_SESSION_AVAILABLE_MASK: typing.ClassVar[int] = ...
    DEVICE_INFO_TDLS_PERSISTENT_GROUP: typing.ClassVar[int] = ...
    DEVICE_INFO_TDLS_PERSISTENT_GROUP_REINVOKE: typing.ClassVar[int] = ...
    DEVICE_INFO_TIME_SYNCHRONIZATION_SUPPORT: typing.ClassVar[int] = ...
    DEVICE_INFO_WFD_SERVICE_DISCOVERY_SUPPORT: typing.ClassVar[int] = ...
    DEVICE_TYPE_PRIMARY_SINK: typing.ClassVar[int] = ...
    DEVICE_TYPE_SECONDARY_SINK: typing.ClassVar[int] = ...
    DEVICE_TYPE_SOURCE_OR_PRIMARY_SINK: typing.ClassVar[int] = ...
    DEVICE_TYPE_WFD_SOURCE: typing.ClassVar[int] = ...
    PREFERRED_CONNECTIVITY_P2P: typing.ClassVar[int] = ...
    PREFERRED_CONNECTIVITY_TDLS: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, source: WifiP2pWfdInfo, /) -> None: ...
    def describeContents(self) -> int: ...
    def getControlPort(self) -> int: ...
    def getDeviceInfo(self) -> int: ...
    def getDeviceType(self) -> int: ...
    def getMaxThroughput(self) -> int: ...
    def getR2DeviceInfo(self) -> int: ...
    def getR2DeviceType(self) -> int: ...
    def isContentProtectionSupported(self) -> bool: ...
    def isCoupledSinkSupportedAtSink(self) -> bool: ...
    def isCoupledSinkSupportedAtSource(self) -> bool: ...
    def isEnabled(self) -> bool: ...
    def isR2Supported(self) -> bool: ...
    def isSessionAvailable(self) -> bool: ...
    def setContentProtectionSupported(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setControlPort(self, port: int | java.jint | java.lang.Integer, /) -> None: ...
    def setCoupledSinkSupportAtSink(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setCoupledSinkSupportAtSource(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setDeviceType(self, deviceType: int | java.jint | java.lang.Integer, /) -> bool: ...
    def setEnabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setMaxThroughput(self, maxThroughput: int | java.jint | java.lang.Integer, /) -> None: ...
    def setR2DeviceType(self, deviceType: int | java.jint | java.lang.Integer, /) -> bool: ...
    def setSessionAvailable(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...
