import typing

import java
import java.chaquopy
import java.lang
import java.security.cert

class EapAkaInfo(EapInfo):
    def getReauthId(self) -> java.chaquopy.JavaArrayJByte | None: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> EapAkaInfo: ...
        def setReauthId(self, reauthId: java.chaquopy.JavaArrayJByte, /) -> EapAkaInfo.Builder: ...

class EapInfo(java.lang.Object):
    def getEapMethodType(self) -> int: ...

class EapSessionConfig(java.lang.Object):
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getEapAkaConfig(self) -> EapSessionConfig.EapAkaConfig | None: ...
    def getEapAkaPrimeConfig(self) -> EapSessionConfig.EapAkaPrimeConfig | None: ...
    def getEapIdentity(self) -> java.chaquopy.JavaArrayJByte: ...
    def getEapMsChapV2Config(self) -> EapSessionConfig.EapMsChapV2Config | None: ...
    def getEapSimConfig(self) -> EapSessionConfig.EapSimConfig | None: ...
    def getEapTtlsConfig(self) -> EapSessionConfig.EapTtlsConfig | None: ...
    def hashCode(self) -> int: ...

    class EapTtlsConfig(EapSessionConfig.EapMethodConfig):
        def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def getInnerEapSessionConfig(self) -> EapSessionConfig: ...
        def getServerCaCert(self) -> java.security.cert.X509Certificate: ...
        def hashCode(self) -> int: ...

    class EapSimConfig(EapSessionConfig.EapMethodConfig):
        def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def getAppType(self) -> int: ...
        def getSubId(self) -> int: ...
        def hashCode(self) -> int: ...

    class EapMsChapV2Config(EapSessionConfig.EapMethodConfig):
        def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def getPassword(self) -> str: ...
        def getUsername(self) -> str: ...
        def hashCode(self) -> int: ...

    class EapMethodConfig(java.lang.Object):
        EAP_TYPE_AKA: typing.ClassVar[int] = ...
        EAP_TYPE_AKA_PRIME: typing.ClassVar[int] = ...
        EAP_TYPE_MSCHAP_V2: typing.ClassVar[int] = ...
        EAP_TYPE_SIM: typing.ClassVar[int] = ...
        EAP_TYPE_TTLS: typing.ClassVar[int] = ...
        def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def getMethodType(self) -> int: ...
        def hashCode(self) -> int: ...

    class EapAkaPrimeConfig(EapSessionConfig.EapAkaConfig):
        def allowsMismatchedNetworkNames(self) -> bool: ...
        def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def getNetworkName(self) -> str: ...
        def hashCode(self) -> int: ...

    class EapAkaOption(java.lang.Object):
        def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def getReauthId(self) -> java.chaquopy.JavaArrayJByte: ...
        def hashCode(self) -> int: ...

        class Builder(java.lang.Object):
            def __init__(self) -> None: ...
            def build(self) -> EapSessionConfig.EapAkaOption: ...
            def setReauthId(self, reauthId: java.chaquopy.JavaArrayJByte, /) -> EapSessionConfig.EapAkaOption.Builder: ...

    class EapAkaConfig(EapSessionConfig.EapMethodConfig):
        def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def getAppType(self) -> int: ...
        def getEapAkaOption(self) -> EapSessionConfig.EapAkaOption: ...
        def getSubId(self) -> int: ...
        def hashCode(self) -> int: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> EapSessionConfig: ...
        @typing.overload
        def setEapAkaConfig(self, subId: int | java.jint | java.lang.Integer, apptype: int | java.jint | java.lang.Integer, /) -> EapSessionConfig.Builder: ...
        @typing.overload
        def setEapAkaConfig(self, subId: int | java.jint | java.lang.Integer, apptype: int | java.jint | java.lang.Integer, options: EapSessionConfig.EapAkaOption, /) -> EapSessionConfig.Builder: ...
        def setEapAkaPrimeConfig(self, subId: int | java.jint | java.lang.Integer, apptype: int | java.jint | java.lang.Integer, networkName: str | java.lang.String, allowMismatchedNetworkNames: bool | java.jboolean | java.lang.Boolean, /) -> EapSessionConfig.Builder: ...
        def setEapIdentity(self, eapIdentity: java.chaquopy.JavaArrayJByte, /) -> EapSessionConfig.Builder: ...
        def setEapMsChapV2Config(self, username: str | java.lang.String, password: str | java.lang.String, /) -> EapSessionConfig.Builder: ...
        def setEapSimConfig(self, subId: int | java.jint | java.lang.Integer, apptype: int | java.jint | java.lang.Integer, /) -> EapSessionConfig.Builder: ...
        def setEapTtlsConfig(self, serverCaCert: java.security.cert.X509Certificate, innerEapSessionConfig: EapSessionConfig, /) -> EapSessionConfig.Builder: ...
