import typing

import android.net
import android.net.wifi.hotspot2
import android.os
import android.util
import java
import java.chaquopy
import java.lang
import java.net
import java.nio
import java.security
import java.security.cert
import java.util
import java.util.concurrent
import java.util.function

class BlockingOption(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[BlockingOption]] = ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getBlockingTimeSeconds(self) -> int: ...
    def hashCode(self) -> int: ...
    def isBlockingBssidOnly(self) -> bool: ...
    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, blockingTimeSec: int | java.jint | java.lang.Integer, /) -> None: ...
        def build(self) -> BlockingOption: ...
        def setBlockingBssidOnly(self, bssidOnly: bool | java.jboolean | java.lang.Boolean, /) -> BlockingOption.Builder: ...

class EasyConnectStatusCallback(java.lang.Object):
    EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_BUSY: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_CANNOT_FIND_NETWORK: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_CONFIGURATION: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_ENROLLEE_AUTHENTICATION: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_ENROLLEE_FAILED_TO_SCAN_NETWORK_CHANNEL: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_ENROLLEE_REJECTED_CONFIGURATION: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_GENERIC: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_INVALID_URI: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_NOT_COMPATIBLE: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_NOT_SUPPORTED: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_TIMEOUT: typing.ClassVar[int] = ...
    EASY_CONNECT_EVENT_FAILURE_URI_GENERATION: typing.ClassVar[int] = ...

class MloLink(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[MloLink]] = ...
    INVALID_MLO_LINK_ID: typing.ClassVar[int] = ...
    MLO_LINK_STATE_ACTIVE: typing.ClassVar[int] = ...
    MLO_LINK_STATE_IDLE: typing.ClassVar[int] = ...
    MLO_LINK_STATE_INVALID: typing.ClassVar[int] = ...
    MLO_LINK_STATE_UNASSOCIATED: typing.ClassVar[int] = ...
    def __init__(self) -> None: ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getApMacAddress(self) -> android.net.MacAddress | None: ...
    def getBand(self) -> int: ...
    def getChannel(self) -> int: ...
    def getLinkId(self) -> int: ...
    def getRssi(self) -> int: ...
    def getRxLinkSpeedMbps(self) -> int: ...
    def getStaMacAddress(self) -> android.net.MacAddress | None: ...
    def getState(self) -> int: ...
    def getTxLinkSpeedMbps(self) -> int: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class ScanResult(android.os.Parcelable):
    BSSID: str = ...
    CHANNEL_WIDTH_160MHZ: typing.ClassVar[int] = ...
    CHANNEL_WIDTH_20MHZ: typing.ClassVar[int] = ...
    CHANNEL_WIDTH_320MHZ: typing.ClassVar[int] = ...
    CHANNEL_WIDTH_40MHZ: typing.ClassVar[int] = ...
    CHANNEL_WIDTH_80MHZ: typing.ClassVar[int] = ...
    CHANNEL_WIDTH_80MHZ_PLUS_MHZ: typing.ClassVar[int] = ...
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ScanResult]] = ...
    PREAMBLE_EHT: typing.ClassVar[int] = ...
    PREAMBLE_HE: typing.ClassVar[int] = ...
    PREAMBLE_HT: typing.ClassVar[int] = ...
    PREAMBLE_LEGACY: typing.ClassVar[int] = ...
    PREAMBLE_VHT: typing.ClassVar[int] = ...
    SSID: str = ...
    UNSPECIFIED: typing.ClassVar[int] = ...
    WIFI_BAND_24_GHZ: typing.ClassVar[int] = ...
    WIFI_BAND_5_GHZ: typing.ClassVar[int] = ...
    WIFI_BAND_60_GHZ: typing.ClassVar[int] = ...
    WIFI_BAND_6_GHZ: typing.ClassVar[int] = ...
    WIFI_STANDARD_11AC: typing.ClassVar[int] = ...
    WIFI_STANDARD_11AD: typing.ClassVar[int] = ...
    WIFI_STANDARD_11AX: typing.ClassVar[int] = ...
    WIFI_STANDARD_11BE: typing.ClassVar[int] = ...
    WIFI_STANDARD_11N: typing.ClassVar[int] = ...
    WIFI_STANDARD_LEGACY: typing.ClassVar[int] = ...
    WIFI_STANDARD_UNKNOWN: typing.ClassVar[int] = ...
    capabilities: str = ...
    centerFreq0: int = ...
    centerFreq1: int = ...
    channelWidth: int = ...
    frequency: int = ...
    level: int = ...
    operatorFriendlyName: java.lang.CharSequence = ...
    timestamp: int = ...
    venueName: java.lang.CharSequence = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, source: ScanResult, /) -> None: ...
    @staticmethod
    def convertChannelToFrequencyMhzIfSupported(channel: int | java.jint | java.lang.Integer, band: int | java.jint | java.lang.Integer, /) -> int: ...
    @staticmethod
    def convertFrequencyMhzToChannelIfSupported(freqMhz: int | java.jint | java.lang.Integer, /) -> int: ...
    def describeContents(self) -> int: ...
    def getAffiliatedMloLinks(self) -> java.util.List[MloLink]: ...
    def getApMldMacAddress(self) -> android.net.MacAddress | None: ...
    def getApMloLinkId(self) -> int: ...
    def getInformationElements(self) -> java.util.List[ScanResult.InformationElement]: ...
    def getSecurityTypes(self) -> java.chaquopy.JavaArrayJInt: ...
    def getWifiSsid(self) -> WifiSsid | None: ...
    def getWifiStandard(self) -> int: ...
    def is80211azNtbResponder(self) -> bool: ...
    def is80211mcResponder(self) -> bool: ...
    def isPasspointNetwork(self) -> bool: ...
    def isRangingFrameProtectionRequired(self) -> bool: ...
    def isSecureHeLtfSupported(self) -> bool: ...
    def isTwtResponder(self) -> bool: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class InformationElement(android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ScanResult.InformationElement]] = ...
        @typing.overload
        def __init__(self, rhs: ScanResult.InformationElement, /) -> None: ...
        @typing.overload
        def __init__(self, id: int | java.jint | java.lang.Integer, idExt: int | java.jint | java.lang.Integer, bytes: java.chaquopy.JavaArrayJByte, /) -> None: ...
        def describeContents(self) -> int: ...
        def equals(self, that: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def getBytes(self) -> java.nio.ByteBuffer: ...
        def getId(self) -> int: ...
        def getIdExt(self) -> int: ...
        def hashCode(self) -> int: ...
        def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class SoftApConfiguration(android.os.Parcelable):
    BAND_2GHZ: typing.ClassVar[int] = ...
    BAND_5GHZ: typing.ClassVar[int] = ...
    BAND_60GHZ: typing.ClassVar[int] = ...
    BAND_6GHZ: typing.ClassVar[int] = ...
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[SoftApConfiguration]] = ...
    SECURITY_TYPE_OPEN: typing.ClassVar[int] = ...
    SECURITY_TYPE_WPA2_PSK: typing.ClassVar[int] = ...
    SECURITY_TYPE_WPA3_OWE: typing.ClassVar[int] = ...
    SECURITY_TYPE_WPA3_OWE_TRANSITION: typing.ClassVar[int] = ...
    SECURITY_TYPE_WPA3_SAE: typing.ClassVar[int] = ...
    SECURITY_TYPE_WPA3_SAE_TRANSITION: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def equals(self, otherObj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getBssid(self) -> android.net.MacAddress | None: ...
    def getChannels(self) -> android.util.SparseIntArray: ...
    def getPassphrase(self) -> str | None: ...
    def getSecurityType(self) -> int: ...
    def getSsid(self) -> str | None: ...
    def getWifiSsid(self) -> WifiSsid | None: ...
    def hashCode(self) -> int: ...
    def isHiddenSsid(self) -> bool: ...
    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) -> SoftApConfiguration: ...
        def setChannels(self, channels: android.util.SparseIntArray, /) -> SoftApConfiguration.Builder: ...

class SupplicantState(android.os.Parcelable, java.lang.Enum[SupplicantState]):
    ASSOCIATED: typing.ClassVar[SupplicantState] = ...
    ASSOCIATING: typing.ClassVar[SupplicantState] = ...
    AUTHENTICATING: typing.ClassVar[SupplicantState] = ...
    COMPLETED: typing.ClassVar[SupplicantState] = ...
    DISCONNECTED: typing.ClassVar[SupplicantState] = ...
    DORMANT: typing.ClassVar[SupplicantState] = ...
    FOUR_WAY_HANDSHAKE: typing.ClassVar[SupplicantState] = ...
    GROUP_HANDSHAKE: typing.ClassVar[SupplicantState] = ...
    INACTIVE: typing.ClassVar[SupplicantState] = ...
    INTERFACE_DISABLED: typing.ClassVar[SupplicantState] = ...
    INVALID: typing.ClassVar[SupplicantState] = ...
    SCANNING: typing.ClassVar[SupplicantState] = ...
    UNINITIALIZED: typing.ClassVar[SupplicantState] = ...
    def describeContents(self) -> int: ...
    @staticmethod
    def isValidState(state: SupplicantState, /) -> bool: ...
    @staticmethod
    def valueOf(name: str | java.lang.String, /) -> SupplicantState: ...
    @staticmethod
    def values() -> java.chaquopy.JavaArray[SupplicantState]: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class WifiAvailableChannel(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiAvailableChannel]] = ...
    OP_MODE_SAP: typing.ClassVar[int] = ...
    OP_MODE_STA: typing.ClassVar[int] = ...
    OP_MODE_TDLS: typing.ClassVar[int] = ...
    OP_MODE_WIFI_AWARE: typing.ClassVar[int] = ...
    OP_MODE_WIFI_DIRECT_CLI: typing.ClassVar[int] = ...
    OP_MODE_WIFI_DIRECT_GO: typing.ClassVar[int] = ...
    def __init__(self, freq: int | java.jint | java.lang.Integer, opModes: int | java.jint | java.lang.Integer, /) -> None: ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getChannelWidth(self) -> int: ...
    def getFrequencyMhz(self) -> int: ...
    def getOperationalModes(self) -> int: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class WifiConfiguration(android.os.Parcelable):
    BSSID: str = ...
    FQDN: str = ...
    RANDOMIZATION_AUTO: typing.ClassVar[int] = ...
    RANDOMIZATION_NONE: typing.ClassVar[int] = ...
    RANDOMIZATION_NON_PERSISTENT: typing.ClassVar[int] = ...
    RANDOMIZATION_PERSISTENT: typing.ClassVar[int] = ...
    SECURITY_TYPE_DPP: typing.ClassVar[int] = ...
    SECURITY_TYPE_EAP: typing.ClassVar[int] = ...
    SECURITY_TYPE_EAP_SUITE_B: typing.ClassVar[int] = ...
    SECURITY_TYPE_EAP_WPA3_ENTERPRISE: typing.ClassVar[int] = ...
    SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT: typing.ClassVar[int] = ...
    SECURITY_TYPE_OPEN: typing.ClassVar[int] = ...
    SECURITY_TYPE_OWE: typing.ClassVar[int] = ...
    SECURITY_TYPE_PSK: typing.ClassVar[int] = ...
    SECURITY_TYPE_SAE: typing.ClassVar[int] = ...
    SECURITY_TYPE_WAPI_CERT: typing.ClassVar[int] = ...
    SECURITY_TYPE_WAPI_PSK: typing.ClassVar[int] = ...
    SECURITY_TYPE_WEP: typing.ClassVar[int] = ...
    SSID: str = ...
    allowedAuthAlgorithms: java.util.BitSet = ...
    allowedGroupCiphers: java.util.BitSet = ...
    allowedGroupManagementCiphers: java.util.BitSet = ...
    allowedKeyManagement: java.util.BitSet = ...
    allowedPairwiseCiphers: java.util.BitSet = ...
    allowedProtocols: java.util.BitSet = ...
    allowedSuiteBCiphers: java.util.BitSet = ...
    enterpriseConfig: WifiEnterpriseConfig = ...
    hiddenSSID: bool = ...
    isHomeProviderNetwork: bool = ...
    networkId: int = ...
    preSharedKey: str = ...
    priority: int = ...
    providerFriendlyName: str = ...
    roamingConsortiumIds: java.chaquopy.JavaArrayJLong = ...
    status: int = ...
    wepKeys: java.chaquopy.JavaArray[java.lang.String] = ...
    wepTxKeyIndex: int = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, source: WifiConfiguration, /) -> None: ...
    def describeContents(self) -> int: ...
    def getHttpProxy(self) -> android.net.ProxyInfo: ...
    def getKey(self) -> str: ...
    def getMacRandomizationSetting(self) -> int: ...
    def getRandomizedMacAddress(self) -> android.net.MacAddress: ...
    def isDppConfigurator(self) -> bool: ...
    def isPasspoint(self) -> bool: ...
    def setHttpProxy(self, httpProxy: android.net.ProxyInfo, /) -> None: ...
    def setIpConfiguration(self, ipConfiguration: android.net.IpConfiguration, /) -> None: ...
    def setMacRandomizationSetting(self, macRandomizationSetting: int | java.jint | java.lang.Integer, /) -> None: ...
    def setSecurityParams(self, securityType: 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 Status(java.lang.Object):
        CURRENT: typing.ClassVar[int] = ...
        DISABLED: typing.ClassVar[int] = ...
        ENABLED: typing.ClassVar[int] = ...
        strings: typing.ClassVar[java.chaquopy.JavaArray[java.lang.String]] = ...

    class Protocol(java.lang.Object):
        RSN: typing.ClassVar[int] = ...
        WAPI: typing.ClassVar[int] = ...
        WPA: typing.ClassVar[int] = ...
        strings: typing.ClassVar[java.chaquopy.JavaArray[java.lang.String]] = ...
        varName: typing.ClassVar[str] = ...

    class PairwiseCipher(java.lang.Object):
        CCMP: typing.ClassVar[int] = ...
        GCMP_128: typing.ClassVar[int] = ...
        GCMP_256: typing.ClassVar[int] = ...
        NONE: typing.ClassVar[int] = ...
        SMS4: typing.ClassVar[int] = ...
        TKIP: typing.ClassVar[int] = ...
        strings: typing.ClassVar[java.chaquopy.JavaArray[java.lang.String]] = ...
        varName: typing.ClassVar[str] = ...

    class KeyMgmt(java.lang.Object):
        DPP: typing.ClassVar[int] = ...
        FILS_SHA256: typing.ClassVar[int] = ...
        FILS_SHA384: typing.ClassVar[int] = ...
        FT_EAP: typing.ClassVar[int] = ...
        FT_PSK: typing.ClassVar[int] = ...
        IEEE8021X: typing.ClassVar[int] = ...
        NONE: typing.ClassVar[int] = ...
        OSEN: typing.ClassVar[int] = ...
        OWE: typing.ClassVar[int] = ...
        SAE: typing.ClassVar[int] = ...
        SUITE_B_192: typing.ClassVar[int] = ...
        WAPI_CERT: typing.ClassVar[int] = ...
        WAPI_PSK: typing.ClassVar[int] = ...
        WPA2_PSK: typing.ClassVar[int] = ...
        WPA_EAP: typing.ClassVar[int] = ...
        WPA_EAP_SHA256: typing.ClassVar[int] = ...
        WPA_PSK: typing.ClassVar[int] = ...
        WPA_PSK_SHA256: typing.ClassVar[int] = ...
        strings: typing.ClassVar[java.chaquopy.JavaArray[java.lang.String]] = ...
        varName: typing.ClassVar[str] = ...

    class GroupMgmtCipher(java.lang.Object):
        BIP_CMAC_256: typing.ClassVar[int] = ...
        BIP_GMAC_128: typing.ClassVar[int] = ...
        BIP_GMAC_256: typing.ClassVar[int] = ...

    class GroupCipher(java.lang.Object):
        CCMP: typing.ClassVar[int] = ...
        GCMP_128: typing.ClassVar[int] = ...
        GCMP_256: typing.ClassVar[int] = ...
        SMS4: typing.ClassVar[int] = ...
        TKIP: typing.ClassVar[int] = ...
        WEP104: typing.ClassVar[int] = ...
        WEP40: typing.ClassVar[int] = ...
        strings: typing.ClassVar[java.chaquopy.JavaArray[java.lang.String]] = ...
        varName: typing.ClassVar[str] = ...

    class AuthAlgorithm(java.lang.Object):
        LEAP: typing.ClassVar[int] = ...
        OPEN: typing.ClassVar[int] = ...
        SAE: typing.ClassVar[int] = ...
        SHARED: typing.ClassVar[int] = ...
        strings: typing.ClassVar[java.chaquopy.JavaArray[java.lang.String]] = ...
        varName: typing.ClassVar[str] = ...

class WifiEnterpriseConfig(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiEnterpriseConfig]] = ...
    EXTRA_WAPI_AS_CERTIFICATE_DATA: typing.ClassVar[str] = ...
    EXTRA_WAPI_AS_CERTIFICATE_NAME: typing.ClassVar[str] = ...
    EXTRA_WAPI_USER_CERTIFICATE_DATA: typing.ClassVar[str] = ...
    EXTRA_WAPI_USER_CERTIFICATE_NAME: typing.ClassVar[str] = ...
    TLS_V1_0: typing.ClassVar[int] = ...
    TLS_V1_1: typing.ClassVar[int] = ...
    TLS_V1_2: typing.ClassVar[int] = ...
    TLS_V1_3: typing.ClassVar[int] = ...
    WAPI_AS_CERTIFICATE: typing.ClassVar[str] = ...
    WAPI_USER_CERTIFICATE: typing.ClassVar[str] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, source: WifiEnterpriseConfig, /) -> None: ...
    def describeContents(self) -> int: ...
    def enableTrustOnFirstUse(self, enable: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def getAltSubjectMatch(self) -> str: ...
    def getAnonymousIdentity(self) -> str: ...
    def getCaCertificate(self) -> java.security.cert.X509Certificate | None: ...
    def getCaCertificates(self) -> java.chaquopy.JavaArray[java.security.cert.X509Certificate] | None: ...
    def getClientCertificate(self) -> java.security.cert.X509Certificate: ...
    def getClientCertificateChain(self) -> java.chaquopy.JavaArray[java.security.cert.X509Certificate] | None: ...
    def getClientKeyPairAlias(self) -> str | None: ...
    def getClientPrivateKey(self) -> java.security.PrivateKey | None: ...
    def getDecoratedIdentityPrefix(self) -> str | None: ...
    def getDomainSuffixMatch(self) -> str: ...
    def getEapMethod(self) -> int: ...
    def getIdentity(self) -> str: ...
    def getMinimumTlsVersion(self) -> int: ...
    def getPassword(self) -> str: ...
    def getPhase2Method(self) -> int: ...
    def getPlmn(self) -> str: ...
    def getRealm(self) -> str: ...
    def getSubjectMatch(self) -> str: ...
    def hasCaCertificate(self) -> bool: ...
    def isAuthenticationSimBased(self) -> bool: ...
    def isEapMethodServerCertUsed(self) -> bool: ...
    def isServerCertValidationEnabled(self) -> bool: ...
    def isTrustOnFirstUseEnabled(self) -> bool: ...
    def setAltSubjectMatch(self, altSubjectMatch: str | java.lang.String, /) -> None: ...
    def setAnonymousIdentity(self, anonymousIdentity: str | java.lang.String, /) -> None: ...
    def setCaCertificate(self, cert: java.security.cert.X509Certificate, /) -> None: ...
    def setCaCertificates(self, certs: java.chaquopy.JavaArray[java.security.cert.X509Certificate], /) -> None: ...
    def setClientKeyEntry(self, privateKey: java.security.PrivateKey, clientCertificate: java.security.cert.X509Certificate, /) -> None: ...
    def setClientKeyEntryWithCertificateChain(self, privateKey: java.security.PrivateKey, clientCertificateChain: java.chaquopy.JavaArray[java.security.cert.X509Certificate], /) -> None: ...
    def setClientKeyPairAlias(self, alias: str | java.lang.String, /) -> None: ...
    def setDecoratedIdentityPrefix(self, decoratedIdentityPrefix: str | java.lang.String, /) -> None: ...
    def setDomainSuffixMatch(self, domain: str | java.lang.String, /) -> None: ...
    def setEapMethod(self, eapMethod: int | java.jint | java.lang.Integer, /) -> None: ...
    def setIdentity(self, identity: str | java.lang.String, /) -> None: ...
    def setMinimumTlsVersion(self, tlsVersion: int | java.jint | java.lang.Integer, /) -> None: ...
    def setPassword(self, password: str | java.lang.String, /) -> None: ...
    def setPhase2Method(self, phase2Method: int | java.jint | java.lang.Integer, /) -> None: ...
    def setPlmn(self, plmn: str | java.lang.String, /) -> None: ...
    def setRealm(self, realm: str | java.lang.String, /) -> None: ...
    def setSubjectMatch(self, subjectMatch: str | java.lang.String, /) -> None: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Phase2(java.lang.Object):
        AKA: typing.ClassVar[int] = ...
        AKA_PRIME: typing.ClassVar[int] = ...
        GTC: typing.ClassVar[int] = ...
        MSCHAP: typing.ClassVar[int] = ...
        MSCHAPV2: typing.ClassVar[int] = ...
        NONE: typing.ClassVar[int] = ...
        PAP: typing.ClassVar[int] = ...
        SIM: typing.ClassVar[int] = ...

    class Eap(java.lang.Object):
        AKA: typing.ClassVar[int] = ...
        AKA_PRIME: typing.ClassVar[int] = ...
        NONE: typing.ClassVar[int] = ...
        PEAP: typing.ClassVar[int] = ...
        PWD: typing.ClassVar[int] = ...
        SIM: typing.ClassVar[int] = ...
        TLS: typing.ClassVar[int] = ...
        TTLS: typing.ClassVar[int] = ...
        UNAUTH_TLS: typing.ClassVar[int] = ...
        WAPI_CERT: typing.ClassVar[int] = ...

class WifiInfo(android.net.TransportInfo, android.os.Parcelable):
    FREQUENCY_UNITS: typing.ClassVar[str] = ...
    LINK_SPEED_UNITS: typing.ClassVar[str] = ...
    LINK_SPEED_UNKNOWN: typing.ClassVar[int] = ...
    SECURITY_TYPE_DPP: typing.ClassVar[int] = ...
    SECURITY_TYPE_EAP: typing.ClassVar[int] = ...
    SECURITY_TYPE_EAP_WPA3_ENTERPRISE: typing.ClassVar[int] = ...
    SECURITY_TYPE_EAP_WPA3_ENTERPRISE_192_BIT: typing.ClassVar[int] = ...
    SECURITY_TYPE_OPEN: typing.ClassVar[int] = ...
    SECURITY_TYPE_OSEN: typing.ClassVar[int] = ...
    SECURITY_TYPE_OWE: typing.ClassVar[int] = ...
    SECURITY_TYPE_PASSPOINT_R1_R2: typing.ClassVar[int] = ...
    SECURITY_TYPE_PASSPOINT_R3: typing.ClassVar[int] = ...
    SECURITY_TYPE_PSK: typing.ClassVar[int] = ...
    SECURITY_TYPE_SAE: typing.ClassVar[int] = ...
    SECURITY_TYPE_UNKNOWN: typing.ClassVar[int] = ...
    SECURITY_TYPE_WAPI_CERT: typing.ClassVar[int] = ...
    SECURITY_TYPE_WAPI_PSK: typing.ClassVar[int] = ...
    SECURITY_TYPE_WEP: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def equals(self, that: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getAffiliatedMloLinks(self) -> java.util.List[MloLink]: ...
    def getApMldMacAddress(self) -> android.net.MacAddress | None: ...
    def getApMloLinkId(self) -> int: ...
    def getApplicableRedactions(self) -> int: ...
    def getAssociatedMloLinks(self) -> java.util.List[MloLink]: ...
    def getBSSID(self) -> str: ...
    def getCurrentSecurityType(self) -> int: ...
    @staticmethod
    def getDetailedStateOf(suppState: SupplicantState, /) -> android.net.NetworkInfo.DetailedState: ...
    def getFrequency(self) -> int: ...
    def getHiddenSSID(self) -> bool: ...
    def getInformationElements(self) -> java.util.List[ScanResult.InformationElement] | None: ...
    def getIpAddress(self) -> int: ...
    def getLinkSpeed(self) -> int: ...
    def getMacAddress(self) -> str: ...
    def getMaxSupportedRxLinkSpeedMbps(self) -> int: ...
    def getMaxSupportedTxLinkSpeedMbps(self) -> int: ...
    def getNetworkId(self) -> int: ...
    def getPasspointFqdn(self) -> str | None: ...
    def getPasspointProviderFriendlyName(self) -> str | None: ...
    def getPasspointUniqueId(self) -> str | None: ...
    def getRssi(self) -> int: ...
    def getRxLinkSpeedMbps(self) -> int: ...
    def getSSID(self) -> str: ...
    def getSubscriptionId(self) -> int: ...
    def getSupplicantState(self) -> SupplicantState: ...
    def getTxLinkSpeedMbps(self) -> int: ...
    def getWifiStandard(self) -> int: ...
    def hashCode(self) -> int: ...
    def isRestricted(self) -> bool: ...
    def makeCopy(self, redactions: int | java.jlong | java.lang.Long, /) -> WifiInfo: ...
    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) -> WifiInfo: ...
        def setBssid(self, bssid: str | java.lang.String, /) -> WifiInfo.Builder: ...
        def setCurrentSecurityType(self, securityType: int | java.jint | java.lang.Integer, /) -> WifiInfo.Builder: ...
        def setNetworkId(self, networkId: int | java.jint | java.lang.Integer, /) -> WifiInfo.Builder: ...
        def setRssi(self, rssi: int | java.jint | java.lang.Integer, /) -> WifiInfo.Builder: ...
        def setSsid(self, ssid: java.chaquopy.JavaArrayJByte, /) -> WifiInfo.Builder: ...
        def setSubscriptionId(self, subId: int | java.jint | java.lang.Integer, /) -> WifiInfo.Builder: ...

class WifiManager(java.lang.Object):
    ACTION_PICK_WIFI_NETWORK: typing.ClassVar[str] = ...
    ACTION_REMOVE_SUGGESTION_DISCONNECT: typing.ClassVar[int] = ...
    ACTION_REMOVE_SUGGESTION_LINGER: typing.ClassVar[int] = ...
    ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE: typing.ClassVar[str] = ...
    ACTION_WIFI_NETWORK_SUGGESTION_POST_CONNECTION: typing.ClassVar[str] = ...
    ACTION_WIFI_SCAN_AVAILABILITY_CHANGED: typing.ClassVar[str] = ...
    CHANNEL_DATA_KEY_FREQUENCY_MHZ: typing.ClassVar[str] = ...
    CHANNEL_DATA_KEY_NUM_AP: typing.ClassVar[str] = ...
    ERROR_AUTHENTICATING: typing.ClassVar[int] = ...
    EXTRA_BSSID: typing.ClassVar[str] = ...
    EXTRA_NETWORK_INFO: typing.ClassVar[str] = ...
    EXTRA_NETWORK_SUGGESTION: typing.ClassVar[str] = ...
    EXTRA_NEW_RSSI: typing.ClassVar[str] = ...
    EXTRA_NEW_STATE: typing.ClassVar[str] = ...
    EXTRA_PREVIOUS_WIFI_STATE: typing.ClassVar[str] = ...
    EXTRA_RESULTS_UPDATED: typing.ClassVar[str] = ...
    EXTRA_SCAN_AVAILABLE: typing.ClassVar[str] = ...
    EXTRA_SUPPLICANT_CONNECTED: typing.ClassVar[str] = ...
    EXTRA_SUPPLICANT_ERROR: typing.ClassVar[str] = ...
    EXTRA_WIFI_INFO: typing.ClassVar[str] = ...
    EXTRA_WIFI_STATE: typing.ClassVar[str] = ...
    FLAG_SEND_DHCP_HOSTNAME_RESTRICTION_OPEN: typing.ClassVar[int] = ...
    FLAG_SEND_DHCP_HOSTNAME_RESTRICTION_SECURE: typing.ClassVar[int] = ...
    NETWORK_IDS_CHANGED_ACTION: typing.ClassVar[str] = ...
    NETWORK_STATE_CHANGED_ACTION: typing.ClassVar[str] = ...
    ROAMING_MODE_AGGRESSIVE: typing.ClassVar[int] = ...
    ROAMING_MODE_NONE: typing.ClassVar[int] = ...
    ROAMING_MODE_NORMAL: typing.ClassVar[int] = ...
    RSSI_CHANGED_ACTION: typing.ClassVar[str] = ...
    SCAN_RESULTS_AVAILABLE_ACTION: typing.ClassVar[str] = ...
    STATUS_LOCAL_ONLY_CONNECTION_FAILURE_ASSOCIATION: typing.ClassVar[int] = ...
    STATUS_LOCAL_ONLY_CONNECTION_FAILURE_AUTHENTICATION: typing.ClassVar[int] = ...
    STATUS_LOCAL_ONLY_CONNECTION_FAILURE_IP_PROVISIONING: typing.ClassVar[int] = ...
    STATUS_LOCAL_ONLY_CONNECTION_FAILURE_NOT_FOUND: typing.ClassVar[int] = ...
    STATUS_LOCAL_ONLY_CONNECTION_FAILURE_NO_RESPONSE: typing.ClassVar[int] = ...
    STATUS_LOCAL_ONLY_CONNECTION_FAILURE_UNKNOWN: typing.ClassVar[int] = ...
    STATUS_LOCAL_ONLY_CONNECTION_FAILURE_USER_REJECT: typing.ClassVar[int] = ...
    STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_DUPLICATE: typing.ClassVar[int] = ...
    STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_EXCEEDS_MAX_PER_APP: typing.ClassVar[int] = ...
    STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_INVALID: typing.ClassVar[int] = ...
    STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_NOT_ALLOWED: typing.ClassVar[int] = ...
    STATUS_NETWORK_SUGGESTIONS_ERROR_APP_DISALLOWED: typing.ClassVar[int] = ...
    STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL: typing.ClassVar[int] = ...
    STATUS_NETWORK_SUGGESTIONS_ERROR_REMOVE_INVALID: typing.ClassVar[int] = ...
    STATUS_NETWORK_SUGGESTIONS_ERROR_RESTRICTED_BY_ADMIN: typing.ClassVar[int] = ...
    STATUS_NETWORK_SUGGESTIONS_SUCCESS: typing.ClassVar[int] = ...
    STATUS_SUGGESTION_APPROVAL_APPROVED_BY_CARRIER_PRIVILEGE: typing.ClassVar[int] = ...
    STATUS_SUGGESTION_APPROVAL_APPROVED_BY_USER: typing.ClassVar[int] = ...
    STATUS_SUGGESTION_APPROVAL_PENDING: typing.ClassVar[int] = ...
    STATUS_SUGGESTION_APPROVAL_REJECTED_BY_USER: typing.ClassVar[int] = ...
    STATUS_SUGGESTION_APPROVAL_UNKNOWN: typing.ClassVar[int] = ...
    STATUS_SUGGESTION_CONNECTION_FAILURE_ASSOCIATION: typing.ClassVar[int] = ...
    STATUS_SUGGESTION_CONNECTION_FAILURE_AUTHENTICATION: typing.ClassVar[int] = ...
    STATUS_SUGGESTION_CONNECTION_FAILURE_IP_PROVISIONING: typing.ClassVar[int] = ...
    STATUS_SUGGESTION_CONNECTION_FAILURE_UNKNOWN: typing.ClassVar[int] = ...
    SUPPLICANT_CONNECTION_CHANGE_ACTION: typing.ClassVar[str] = ...
    SUPPLICANT_STATE_CHANGED_ACTION: typing.ClassVar[str] = ...
    UNKNOWN_SSID: typing.ClassVar[str] = ...
    WIFI_INTERFACE_TYPE_AP: typing.ClassVar[int] = ...
    WIFI_INTERFACE_TYPE_AWARE: typing.ClassVar[int] = ...
    WIFI_INTERFACE_TYPE_DIRECT: typing.ClassVar[int] = ...
    WIFI_INTERFACE_TYPE_STA: typing.ClassVar[int] = ...
    WIFI_MODE_FULL: typing.ClassVar[int] = ...
    WIFI_MODE_FULL_HIGH_PERF: typing.ClassVar[int] = ...
    WIFI_MODE_FULL_LOW_LATENCY: typing.ClassVar[int] = ...
    WIFI_MODE_SCAN_ONLY: typing.ClassVar[int] = ...
    WIFI_MULTI_INTERNET_MODE_DBS_AP: typing.ClassVar[int] = ...
    WIFI_MULTI_INTERNET_MODE_DISABLED: typing.ClassVar[int] = ...
    WIFI_MULTI_INTERNET_MODE_MULTI_AP: typing.ClassVar[int] = ...
    WIFI_STATE_CHANGED_ACTION: typing.ClassVar[str] = ...
    WIFI_STATE_DISABLED: typing.ClassVar[int] = ...
    WIFI_STATE_DISABLING: typing.ClassVar[int] = ...
    WIFI_STATE_ENABLED: typing.ClassVar[int] = ...
    WIFI_STATE_ENABLING: typing.ClassVar[int] = ...
    WIFI_STATE_UNKNOWN: typing.ClassVar[int] = ...
    WPS_AUTH_FAILURE: typing.ClassVar[int] = ...
    WPS_OVERLAP_ERROR: typing.ClassVar[int] = ...
    WPS_TIMED_OUT: typing.ClassVar[int] = ...
    WPS_TKIP_ONLY_PROHIBITED: typing.ClassVar[int] = ...
    WPS_WEP_PROHIBITED: typing.ClassVar[int] = ...
    def addLocalOnlyConnectionFailureListener(self, executor: java.util.concurrent.Executor, listener: WifiManager.LocalOnlyConnectionFailureListener, /) -> None: ...
    def addNetwork(self, config: WifiConfiguration, /) -> int: ...
    def addNetworkPrivileged(self, config: WifiConfiguration, /) -> WifiManager.AddNetworkResult: ...
    def addNetworkSuggestions(self, networkSuggestions: java.util.List[WifiNetworkSuggestion], /) -> int: ...
    def addOrUpdatePasspointConfiguration(self, config: android.net.wifi.hotspot2.PasspointConfiguration, /) -> None: ...
    def addSuggestionConnectionStatusListener(self, executor: java.util.concurrent.Executor, listener: WifiManager.SuggestionConnectionStatusListener, /) -> None: ...
    def addSuggestionUserApprovalStatusListener(self, executor: java.util.concurrent.Executor, listener: WifiManager.SuggestionUserApprovalStatusListener, /) -> None: ...
    def addWifiStateChangedListener(self, executor: java.util.concurrent.Executor, listener: WifiManager.WifiStateChangedListener, /) -> None: ...
    def allowAutojoinGlobal(self, allowAutojoin: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    @typing.overload
    def calculateSignalLevel(self, rssi: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    @staticmethod
    def calculateSignalLevel(rssi: int | java.jint | java.lang.Integer, numLevels: int | java.jint | java.lang.Integer, /) -> int: ...
    def cancelWps(self, listener: WifiManager.WpsCallback, /) -> None: ...
    @staticmethod
    def compareSignalLevel(rssiA: int | java.jint | java.lang.Integer, rssiB: int | java.jint | java.lang.Integer, /) -> int: ...
    def createMulticastLock(self, tag: str | java.lang.String, /) -> WifiManager.MulticastLock: ...
    @typing.overload
    def createWifiLock(self, tag: str | java.lang.String, /) -> WifiManager.WifiLock: ...
    @typing.overload
    def createWifiLock(self, lockType: int | java.jint | java.lang.Integer, tag: str | java.lang.String, /) -> WifiManager.WifiLock: ...
    def disableNetwork(self, netId: int | java.jint | java.lang.Integer, /) -> bool: ...
    def disallowCurrentSuggestedNetwork(self, blockingOption: BlockingOption, /) -> None: ...
    def disconnect(self) -> bool: ...
    def enableNetwork(self, netId: int | java.jint | java.lang.Integer, attemptConnect: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def flushPasspointAnqpCache(self) -> None: ...
    def getAllowedChannels(self, band: int | java.jint | java.lang.Integer, mode: int | java.jint | java.lang.Integer, /) -> java.util.List[WifiAvailableChannel]: ...
    def getCallerConfiguredNetworks(self) -> java.util.List[WifiConfiguration]: ...
    def getChannelData(self, executor: java.util.concurrent.Executor, resultsCallback: java.util.function.Consumer[java.util.List[android.os.Bundle]], /) -> None: ...
    def getConfiguredNetworks(self) -> java.util.List[WifiConfiguration]: ...
    def getConnectionInfo(self) -> WifiInfo: ...
    def getDhcpInfo(self) -> android.net.DhcpInfo: ...
    def getMaxNumberOfChannelsPerNetworkSpecifierRequest(self) -> int: ...
    def getMaxNumberOfNetworkSuggestionsPerApp(self) -> int: ...
    def getMaxSignalLevel(self) -> int: ...
    def getMaxSupportedConcurrentTdlsSessions(self, executor: java.util.concurrent.Executor, resultsCallback: java.util.function.Consumer[java.lang.Integer], /) -> None: ...
    def getNetworkSuggestions(self) -> java.util.List[WifiNetworkSuggestion]: ...
    def getNumberOfEnabledTdlsSessions(self, executor: java.util.concurrent.Executor, resultsCallback: java.util.function.Consumer[java.lang.Integer], /) -> None: ...
    def getPasspointConfigurations(self) -> java.util.List[android.net.wifi.hotspot2.PasspointConfiguration]: ...
    def getPerSsidRoamingModes(self, executor: java.util.concurrent.Executor, resultsCallback: java.util.function.Consumer[java.util.Map[java.lang.String, java.lang.Integer]], /) -> None: ...
    def getScanResults(self) -> java.util.List[ScanResult]: ...
    def getStaConcurrencyForMultiInternetMode(self) -> int: ...
    def getUsableChannels(self, band: int | java.jint | java.lang.Integer, mode: int | java.jint | java.lang.Integer, /) -> java.util.List[WifiAvailableChannel]: ...
    def getWifiState(self) -> int: ...
    def is24GHzBandSupported(self) -> bool: ...
    def is5GHzBandSupported(self) -> bool: ...
    def is60GHzBandSupported(self) -> bool: ...
    def is6GHzBandSupported(self) -> bool: ...
    def isAggressiveRoamingModeSupported(self) -> bool: ...
    def isAutoWakeupEnabled(self) -> bool: ...
    def isBridgedApConcurrencySupported(self) -> bool: ...
    def isCarrierNetworkOffloadEnabled(self, subscriptionId: int | java.jint | java.lang.Integer, merged: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def isD2dSupportedWhenInfraStaDisabled(self) -> bool: ...
    def isDecoratedIdentitySupported(self) -> bool: ...
    def isDeviceToApRttSupported(self) -> bool: ...
    def isDualBandSimultaneousSupported(self) -> bool: ...
    def isEasyConnectDppAkmSupported(self) -> bool: ...
    def isEasyConnectEnrolleeResponderModeSupported(self) -> bool: ...
    def isEasyConnectSupported(self) -> bool: ...
    def isEnhancedOpenSupported(self) -> bool: ...
    def isEnhancedPowerReportingSupported(self) -> bool: ...
    def isMakeBeforeBreakWifiSwitchingSupported(self) -> bool: ...
    def isP2pSupported(self) -> bool: ...
    def isPasspointTermsAndConditionsSupported(self) -> bool: ...
    def isPreferredNetworkOffloadSupported(self) -> bool: ...
    def isScanAlwaysAvailable(self) -> bool: ...
    def isScanThrottleEnabled(self) -> bool: ...
    def isStaApConcurrencySupported(self) -> bool: ...
    def isStaBridgedApConcurrencySupported(self) -> bool: ...
    def isStaConcurrencyForLocalOnlyConnectionsSupported(self) -> bool: ...
    def isStaConcurrencyForMultiInternetSupported(self) -> bool: ...
    def isTdlsOperationCurrentlyAvailable(self, executor: java.util.concurrent.Executor, resultsCallback: java.util.function.Consumer[java.lang.Boolean], /) -> None: ...
    def isTdlsSupported(self) -> bool: ...
    def isTidToLinkMappingNegotiationSupported(self) -> bool: ...
    def isTlsMinimumVersionSupported(self) -> bool: ...
    def isTlsV13Supported(self) -> bool: ...
    def isTrustOnFirstUseSupported(self) -> bool: ...
    def isWapiSupported(self) -> bool: ...
    def isWepSupported(self) -> bool: ...
    def isWifiDisplayR2Supported(self) -> bool: ...
    def isWifiEnabled(self) -> bool: ...
    def isWifiPasspointEnabled(self) -> bool: ...
    def isWifiStandardSupported(self, standard: int | java.jint | java.lang.Integer, /) -> bool: ...
    def isWpa3SaeH2eSupported(self) -> bool: ...
    def isWpa3SaePublicKeySupported(self) -> bool: ...
    def isWpa3SaeSupported(self) -> bool: ...
    def isWpa3SuiteBSupported(self) -> bool: ...
    def isWpaPersonalSupported(self) -> bool: ...
    def pingSupplicant(self) -> bool: ...
    def queryAutojoinGlobal(self, executor: java.util.concurrent.Executor, resultsCallback: java.util.function.Consumer[java.lang.Boolean], /) -> None: ...
    def querySendDhcpHostnameRestriction(self, executor: java.util.concurrent.Executor, resultsCallback: java.util.function.IntConsumer, /) -> None: ...
    def reassociate(self) -> bool: ...
    def reconnect(self) -> bool: ...
    def registerScanResultsCallback(self, executor: java.util.concurrent.Executor, callback: WifiManager.ScanResultsCallback, /) -> None: ...
    def registerSubsystemRestartTrackingCallback(self, executor: java.util.concurrent.Executor, callback: WifiManager.SubsystemRestartTrackingCallback, /) -> None: ...
    def removeLocalOnlyConnectionFailureListener(self, listener: WifiManager.LocalOnlyConnectionFailureListener, /) -> None: ...
    def removeNetwork(self, netId: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def removeNetworkSuggestions(self, networkSuggestions: java.util.List[WifiNetworkSuggestion], /) -> int: ...
    @typing.overload
    def removeNetworkSuggestions(self, networkSuggestions: java.util.List[WifiNetworkSuggestion], action: int | java.jint | java.lang.Integer, /) -> int: ...
    def removeNonCallerConfiguredNetworks(self) -> bool: ...
    def removePasspointConfiguration(self, fqdn: str | java.lang.String, /) -> None: ...
    def removePerSsidRoamingMode(self, ssid: WifiSsid, /) -> None: ...
    def removeSuggestionConnectionStatusListener(self, listener: WifiManager.SuggestionConnectionStatusListener, /) -> None: ...
    def removeSuggestionUserApprovalStatusListener(self, listener: WifiManager.SuggestionUserApprovalStatusListener, /) -> None: ...
    def removeWifiStateChangedListener(self, listener: WifiManager.WifiStateChangedListener, /) -> None: ...
    def reportCreateInterfaceImpact(self, interfaceType: int | java.jint | java.lang.Integer, requireNewInterface: bool | java.jboolean | java.lang.Boolean, executor: java.util.concurrent.Executor, resultCallback: java.util.function.BiConsumer[java.lang.Boolean, java.util.Set[WifiManager.InterfaceCreationImpact]], /) -> None: ...
    def saveConfiguration(self) -> bool: ...
    def setPerSsidRoamingMode(self, ssid: WifiSsid, roamingMode: int | java.jint | java.lang.Integer, /) -> None: ...
    def setSendDhcpHostnameRestriction(self, restriction: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setTdlsEnabled(self, remoteIPAddress: java.net.InetAddress, enable: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    @typing.overload
    def setTdlsEnabled(self, remoteIPAddress: java.net.InetAddress, enable: bool | java.jboolean | java.lang.Boolean, executor: java.util.concurrent.Executor, resultsCallback: java.util.function.Consumer[java.lang.Boolean], /) -> None: ...
    @typing.overload
    def setTdlsEnabledWithMacAddress(self, remoteMacAddress: str | java.lang.String, enable: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    @typing.overload
    def setTdlsEnabledWithMacAddress(self, remoteMacAddress: str | java.lang.String, enable: bool | java.jboolean | java.lang.Boolean, executor: java.util.concurrent.Executor, resultsCallback: java.util.function.Consumer[java.lang.Boolean], /) -> None: ...
    def setWifiEnabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def startLocalOnlyHotspot(self, callback: WifiManager.LocalOnlyHotspotCallback, handler: android.os.Handler, /) -> None: ...
    def startLocalOnlyHotspotWithConfiguration(self, config: SoftApConfiguration, executor: java.util.concurrent.Executor, callback: WifiManager.LocalOnlyHotspotCallback, /) -> None: ...
    def startScan(self) -> bool: ...
    def startWps(self, config: WpsInfo, listener: WifiManager.WpsCallback, /) -> None: ...
    def unregisterScanResultsCallback(self, callback: WifiManager.ScanResultsCallback, /) -> None: ...
    def unregisterSubsystemRestartTrackingCallback(self, callback: WifiManager.SubsystemRestartTrackingCallback, /) -> None: ...
    def updateNetwork(self, config: WifiConfiguration, /) -> int: ...
    def validateSoftApConfiguration(self, config: SoftApConfiguration, /) -> bool: ...

    class WpsCallback(java.lang.Object):
        def __init__(self) -> None: ...
        def onFailed(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...
        def onStarted(self, arg1: str | java.lang.String, /) -> None: ...
        def onSucceeded(self) -> None: ...

    class WifiStateChangedListener(java.lang.Object):
        def onWifiStateChanged(self) -> None: ...

    class WifiLock(java.lang.Object):
        def acquire(self) -> None: ...
        def finalize(self) -> None: ...
        def isHeld(self) -> bool: ...
        def release(self) -> None: ...
        def setReferenceCounted(self, refCounted: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
        def setWorkSource(self, ws: android.os.WorkSource, /) -> None: ...
        def toString(self) -> str: ...

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

    class SuggestionConnectionStatusListener(java.lang.Object):
        def onConnectionStatus(self, arg1: WifiNetworkSuggestion, arg2: int | java.jint | java.lang.Integer, /) -> None: ...

    class SubsystemRestartTrackingCallback(java.lang.Object):
        def __init__(self) -> None: ...
        def onSubsystemRestarted(self) -> None: ...
        def onSubsystemRestarting(self) -> None: ...

    class ScanResultsCallback(java.lang.Object):
        def __init__(self) -> None: ...
        def onScanResultsAvailable(self) -> None: ...

    class MulticastLock(java.lang.Object):
        def acquire(self) -> None: ...
        def finalize(self) -> None: ...
        def isHeld(self) -> bool: ...
        def release(self) -> None: ...
        def setReferenceCounted(self, refCounted: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
        def toString(self) -> str: ...

    class LocalOnlyHotspotReservation(java.lang.AutoCloseable):
        def close(self) -> None: ...
        def finalize(self) -> None: ...
        def getSoftApConfiguration(self) -> SoftApConfiguration: ...
        def getWifiConfiguration(self) -> WifiConfiguration: ...

    class LocalOnlyHotspotCallback(java.lang.Object):
        ERROR_GENERIC: typing.ClassVar[int] = ...
        ERROR_INCOMPATIBLE_MODE: typing.ClassVar[int] = ...
        ERROR_NO_CHANNEL: typing.ClassVar[int] = ...
        ERROR_TETHERING_DISALLOWED: typing.ClassVar[int] = ...
        def __init__(self) -> None: ...
        def onFailed(self, reason: int | java.jint | java.lang.Integer, /) -> None: ...
        def onStarted(self, reservation: WifiManager.LocalOnlyHotspotReservation, /) -> None: ...
        def onStopped(self) -> None: ...

    class LocalOnlyConnectionFailureListener(java.lang.Object):
        def onConnectionFailed(self, arg1: WifiNetworkSpecifier, arg2: int | java.jint | java.lang.Integer, /) -> None: ...

    class InterfaceCreationImpact(java.lang.Object):
        def __init__(self, interfaceType: int | java.jint | java.lang.Integer, packages: java.util.Set[java.lang.String], /) -> None: ...
        def equals(self, that: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def getInterfaceType(self) -> int: ...
        def getPackages(self) -> java.util.Set[java.lang.String]: ...
        def hashCode(self) -> int: ...

    class AddNetworkResult(android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiManager.AddNetworkResult]] = ...
        STATUS_ADD_PASSPOINT_FAILURE: typing.ClassVar[int] = ...
        STATUS_ADD_WIFI_CONFIG_FAILURE: typing.ClassVar[int] = ...
        STATUS_FAILURE_UNKNOWN: typing.ClassVar[int] = ...
        STATUS_FAILURE_UPDATE_NETWORK_KEYS: typing.ClassVar[int] = ...
        STATUS_INVALID_CONFIGURATION: typing.ClassVar[int] = ...
        STATUS_INVALID_CONFIGURATION_ENTERPRISE: typing.ClassVar[int] = ...
        STATUS_NO_PERMISSION: typing.ClassVar[int] = ...
        STATUS_NO_PERMISSION_MODIFY_CONFIG: typing.ClassVar[int] = ...
        STATUS_NO_PERMISSION_MODIFY_MAC_RANDOMIZATION: typing.ClassVar[int] = ...
        STATUS_NO_PERMISSION_MODIFY_PROXY_SETTING: typing.ClassVar[int] = ...
        STATUS_SUCCESS: typing.ClassVar[int] = ...
        networkId: int = ...
        statusCode: int = ...
        def __init__(self, statusCode: int | java.jint | java.lang.Integer, networkId: int | java.jint | java.lang.Integer, /) -> None: ...
        def describeContents(self) -> int: ...
        def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class WifiNetworkSpecifier(android.net.NetworkSpecifier, android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiNetworkSpecifier]] = ...
    def canBeSatisfiedBy(self, other: android.net.NetworkSpecifier, /) -> bool: ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getBand(self) -> int: ...
    def getPreferredChannelFrequenciesMhz(self) -> java.chaquopy.JavaArrayJInt: ...
    def hashCode(self) -> int: ...
    def redact(self) -> android.net.NetworkSpecifier | 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) -> WifiNetworkSpecifier: ...
        def setBand(self, band: int | java.jint | java.lang.Integer, /) -> WifiNetworkSpecifier.Builder: ...
        def setBssid(self, bssid: android.net.MacAddress, /) -> WifiNetworkSpecifier.Builder: ...
        def setBssidPattern(self, baseAddress: android.net.MacAddress, mask: android.net.MacAddress, /) -> WifiNetworkSpecifier.Builder: ...
        def setIsEnhancedOpen(self, isEnhancedOpen: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSpecifier.Builder: ...
        def setIsHiddenSsid(self, isHiddenSsid: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSpecifier.Builder: ...
        def setPreferredChannelsFrequenciesMhz(self, channelFreqs: java.chaquopy.JavaArrayJInt, /) -> WifiNetworkSpecifier.Builder: ...
        def setSsid(self, ssid: str | java.lang.String, /) -> WifiNetworkSpecifier.Builder: ...
        def setSsidPattern(self, ssidPattern: android.os.PatternMatcher, /) -> WifiNetworkSpecifier.Builder: ...
        def setWpa2EnterpriseConfig(self, enterpriseConfig: WifiEnterpriseConfig, /) -> WifiNetworkSpecifier.Builder: ...
        def setWpa2Passphrase(self, passphrase: str | java.lang.String, /) -> WifiNetworkSpecifier.Builder: ...
        def setWpa3Enterprise192BitModeConfig(self, enterpriseConfig: WifiEnterpriseConfig, /) -> WifiNetworkSpecifier.Builder: ...
        def setWpa3EnterpriseConfig(self, enterpriseConfig: WifiEnterpriseConfig, /) -> WifiNetworkSpecifier.Builder: ...
        def setWpa3EnterpriseStandardModeConfig(self, enterpriseConfig: WifiEnterpriseConfig, /) -> WifiNetworkSpecifier.Builder: ...
        def setWpa3Passphrase(self, passphrase: str | java.lang.String, /) -> WifiNetworkSpecifier.Builder: ...

class WifiNetworkSuggestion(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiNetworkSuggestion]] = ...
    RANDOMIZATION_NON_PERSISTENT: typing.ClassVar[int] = ...
    RANDOMIZATION_PERSISTENT: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getBssid(self) -> android.net.MacAddress | None: ...
    def getEnterpriseConfig(self) -> WifiEnterpriseConfig | None: ...
    def getMacRandomizationSetting(self) -> int: ...
    def getPassphrase(self) -> str | None: ...
    def getPasspointConfig(self) -> android.net.wifi.hotspot2.PasspointConfiguration | None: ...
    def getPriority(self) -> int: ...
    def getPriorityGroup(self) -> int: ...
    def getSsid(self) -> str | None: ...
    def getSubscriptionGroup(self) -> android.os.ParcelUuid | None: ...
    def getSubscriptionId(self) -> int: ...
    def getWifiSsid(self) -> WifiSsid | None: ...
    def hashCode(self) -> int: ...
    def isAppInteractionRequired(self) -> bool: ...
    def isCarrierMerged(self) -> bool: ...
    def isCredentialSharedWithUser(self) -> bool: ...
    def isEnhancedOpen(self) -> bool: ...
    def isHiddenSsid(self) -> bool: ...
    def isInitialAutojoinEnabled(self) -> bool: ...
    def isMetered(self) -> bool: ...
    def isRestricted(self) -> bool: ...
    def isUntrusted(self) -> bool: ...
    def isUserInteractionRequired(self) -> bool: ...
    def isWifi7Enabled(self) -> bool: ...
    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) -> WifiNetworkSuggestion: ...
        def setBssid(self, bssid: android.net.MacAddress, /) -> WifiNetworkSuggestion.Builder: ...
        def setCarrierMerged(self, isCarrierMerged: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSuggestion.Builder: ...
        def setCredentialSharedWithUser(self, isShared: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSuggestion.Builder: ...
        def setIsAppInteractionRequired(self, isAppInteractionRequired: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSuggestion.Builder: ...
        def setIsEnhancedOpen(self, isEnhancedOpen: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSuggestion.Builder: ...
        def setIsHiddenSsid(self, isHiddenSsid: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSuggestion.Builder: ...
        def setIsInitialAutojoinEnabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSuggestion.Builder: ...
        def setIsMetered(self, isMetered: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSuggestion.Builder: ...
        def setIsUserInteractionRequired(self, isUserInteractionRequired: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSuggestion.Builder: ...
        def setIsWpa3SaeH2eOnlyModeEnabled(self, enable: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSuggestion.Builder: ...
        def setMacRandomizationSetting(self, macRandomizationSetting: int | java.jint | java.lang.Integer, /) -> WifiNetworkSuggestion.Builder: ...
        def setPasspointConfig(self, passpointConfig: android.net.wifi.hotspot2.PasspointConfiguration, /) -> WifiNetworkSuggestion.Builder: ...
        def setPriority(self, priority: int | java.jint | java.lang.Integer, /) -> WifiNetworkSuggestion.Builder: ...
        def setPriorityGroup(self, priorityGroup: int | java.jint | java.lang.Integer, /) -> WifiNetworkSuggestion.Builder: ...
        def setRestricted(self, isRestricted: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSuggestion.Builder: ...
        def setSsid(self, ssid: str | java.lang.String, /) -> WifiNetworkSuggestion.Builder: ...
        def setSubscriptionGroup(self, groupUuid: android.os.ParcelUuid, /) -> WifiNetworkSuggestion.Builder: ...
        def setSubscriptionId(self, subscriptionId: int | java.jint | java.lang.Integer, /) -> WifiNetworkSuggestion.Builder: ...
        def setUntrusted(self, isUntrusted: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSuggestion.Builder: ...
        def setWapiEnterpriseConfig(self, enterpriseConfig: WifiEnterpriseConfig, /) -> WifiNetworkSuggestion.Builder: ...
        def setWapiPassphrase(self, passphrase: str | java.lang.String, /) -> WifiNetworkSuggestion.Builder: ...
        def setWifi7Enabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> WifiNetworkSuggestion.Builder: ...
        def setWifiSsid(self, wifiSsid: WifiSsid, /) -> WifiNetworkSuggestion.Builder: ...
        def setWpa2EnterpriseConfig(self, enterpriseConfig: WifiEnterpriseConfig, /) -> WifiNetworkSuggestion.Builder: ...
        def setWpa2Passphrase(self, passphrase: str | java.lang.String, /) -> WifiNetworkSuggestion.Builder: ...
        def setWpa3Enterprise192BitModeConfig(self, enterpriseConfig: WifiEnterpriseConfig, /) -> WifiNetworkSuggestion.Builder: ...
        def setWpa3EnterpriseConfig(self, enterpriseConfig: WifiEnterpriseConfig, /) -> WifiNetworkSuggestion.Builder: ...
        def setWpa3EnterpriseStandardModeConfig(self, enterpriseConfig: WifiEnterpriseConfig, /) -> WifiNetworkSuggestion.Builder: ...
        def setWpa3Passphrase(self, passphrase: str | java.lang.String, /) -> WifiNetworkSuggestion.Builder: ...

class WifiSsid(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WifiSsid]] = ...
    def describeContents(self) -> int: ...
    def equals(self, thatObject: java.lang.Object | int | bool | float | str, /) -> bool: ...
    @staticmethod
    def fromBytes(bytes: java.chaquopy.JavaArrayJByte, /) -> WifiSsid: ...
    def getBytes(self) -> java.chaquopy.JavaArrayJByte: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class WpsInfo(android.os.Parcelable):
    BSSID: str = ...
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WpsInfo]] = ...
    DISPLAY: typing.ClassVar[int] = ...
    INVALID: typing.ClassVar[int] = ...
    KEYPAD: typing.ClassVar[int] = ...
    LABEL: typing.ClassVar[int] = ...
    PBC: typing.ClassVar[int] = ...
    pin: str = ...
    setup: int = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, source: WpsInfo, /) -> None: ...
    def describeContents(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...
