import typing

import android.net
import android.os
import java
import java.chaquopy
import java.lang
import java.net
import java.util

class ApnSetting(android.os.Parcelable):
    AUTH_TYPE_CHAP: typing.ClassVar[int] = ...
    AUTH_TYPE_NONE: typing.ClassVar[int] = ...
    AUTH_TYPE_PAP: typing.ClassVar[int] = ...
    AUTH_TYPE_PAP_OR_CHAP: typing.ClassVar[int] = ...
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ApnSetting]] = ...
    MVNO_TYPE_GID: typing.ClassVar[int] = ...
    MVNO_TYPE_ICCID: typing.ClassVar[int] = ...
    MVNO_TYPE_IMSI: typing.ClassVar[int] = ...
    MVNO_TYPE_SPN: typing.ClassVar[int] = ...
    PROTOCOL_IP: typing.ClassVar[int] = ...
    PROTOCOL_IPV4V6: typing.ClassVar[int] = ...
    PROTOCOL_IPV6: typing.ClassVar[int] = ...
    PROTOCOL_NON_IP: typing.ClassVar[int] = ...
    PROTOCOL_PPP: typing.ClassVar[int] = ...
    PROTOCOL_UNSTRUCTURED: typing.ClassVar[int] = ...
    TYPE_BIP: typing.ClassVar[int] = ...
    TYPE_CBS: typing.ClassVar[int] = ...
    TYPE_DEFAULT: typing.ClassVar[int] = ...
    TYPE_DUN: typing.ClassVar[int] = ...
    TYPE_EMERGENCY: typing.ClassVar[int] = ...
    TYPE_ENTERPRISE: typing.ClassVar[int] = ...
    TYPE_FOTA: typing.ClassVar[int] = ...
    TYPE_HIPRI: typing.ClassVar[int] = ...
    TYPE_IA: typing.ClassVar[int] = ...
    TYPE_IMS: typing.ClassVar[int] = ...
    TYPE_MCX: typing.ClassVar[int] = ...
    TYPE_MMS: typing.ClassVar[int] = ...
    TYPE_OEM_PAID: typing.ClassVar[int] = ...
    TYPE_OEM_PRIVATE: typing.ClassVar[int] = ...
    TYPE_RCS: typing.ClassVar[int] = ...
    TYPE_SUPL: typing.ClassVar[int] = ...
    TYPE_VSIM: typing.ClassVar[int] = ...
    TYPE_XCAP: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getApnName(self) -> str: ...
    def getApnTypeBitmask(self) -> int: ...
    def getAuthType(self) -> int: ...
    def getCarrierId(self) -> int: ...
    def getEntryName(self) -> str: ...
    def getId(self) -> int: ...
    def getMmsProxyAddress(self) -> java.net.InetAddress: ...
    def getMmsProxyAddressAsString(self) -> str: ...
    def getMmsProxyPort(self) -> int: ...
    def getMmsc(self) -> android.net.Uri: ...
    def getMtuV4(self) -> int: ...
    def getMtuV6(self) -> int: ...
    def getMvnoType(self) -> int: ...
    def getNetworkTypeBitmask(self) -> int: ...
    def getOperatorNumeric(self) -> str: ...
    def getPassword(self) -> str: ...
    def getProfileId(self) -> int: ...
    def getProtocol(self) -> int: ...
    def getProxyAddress(self) -> java.net.InetAddress: ...
    def getProxyAddressAsString(self) -> str: ...
    def getProxyPort(self) -> int: ...
    def getRoamingProtocol(self) -> int: ...
    def getUser(self) -> str: ...
    def hashCode(self) -> int: ...
    def isAlwaysOn(self) -> bool: ...
    def isEnabled(self) -> bool: ...
    def isPersistent(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) -> ApnSetting: ...
        def setAlwaysOn(self, alwaysOn: bool | java.jboolean | java.lang.Boolean, /) -> ApnSetting.Builder: ...
        def setApnName(self, apnName: str | java.lang.String, /) -> ApnSetting.Builder: ...
        def setApnTypeBitmask(self, apnTypeBitmask: int | java.jint | java.lang.Integer, /) -> ApnSetting.Builder: ...
        def setAuthType(self, authType: int | java.jint | java.lang.Integer, /) -> ApnSetting.Builder: ...
        def setCarrierEnabled(self, carrierEnabled: bool | java.jboolean | java.lang.Boolean, /) -> ApnSetting.Builder: ...
        def setCarrierId(self, carrierId: int | java.jint | java.lang.Integer, /) -> ApnSetting.Builder: ...
        def setEntryName(self, entryName: str | java.lang.String, /) -> ApnSetting.Builder: ...
        @typing.overload
        def setMmsProxyAddress(self, mmsProxy: str | java.lang.String, /) -> ApnSetting.Builder: ...
        @typing.overload
        def setMmsProxyAddress(self, mmsProxy: java.net.InetAddress, /) -> ApnSetting.Builder: ...
        def setMmsProxyPort(self, mmsPort: int | java.jint | java.lang.Integer, /) -> ApnSetting.Builder: ...
        def setMmsc(self, mmsc: android.net.Uri, /) -> ApnSetting.Builder: ...
        def setMtuV4(self, mtuV4: int | java.jint | java.lang.Integer, /) -> ApnSetting.Builder: ...
        def setMtuV6(self, mtuV6: int | java.jint | java.lang.Integer, /) -> ApnSetting.Builder: ...
        def setMvnoType(self, mvnoType: int | java.jint | java.lang.Integer, /) -> ApnSetting.Builder: ...
        def setNetworkTypeBitmask(self, networkTypeBitmask: int | java.jint | java.lang.Integer, /) -> ApnSetting.Builder: ...
        def setOperatorNumeric(self, operatorNumeric: str | java.lang.String, /) -> ApnSetting.Builder: ...
        def setPassword(self, password: str | java.lang.String, /) -> ApnSetting.Builder: ...
        def setPersistent(self, isPersistent: bool | java.jboolean | java.lang.Boolean, /) -> ApnSetting.Builder: ...
        def setProfileId(self, profileId: int | java.jint | java.lang.Integer, /) -> ApnSetting.Builder: ...
        def setProtocol(self, protocol: int | java.jint | java.lang.Integer, /) -> ApnSetting.Builder: ...
        @typing.overload
        def setProxyAddress(self, proxy: str | java.lang.String, /) -> ApnSetting.Builder: ...
        @typing.overload
        def setProxyAddress(self, proxy: java.net.InetAddress, /) -> ApnSetting.Builder: ...
        def setProxyPort(self, port: int | java.jint | java.lang.Integer, /) -> ApnSetting.Builder: ...
        def setRoamingProtocol(self, roamingProtocol: int | java.jint | java.lang.Integer, /) -> ApnSetting.Builder: ...
        def setUser(self, user: str | java.lang.String, /) -> ApnSetting.Builder: ...

class NetworkSliceInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[NetworkSliceInfo]] = ...
    SLICE_DIFFERENTIATOR_NO_SLICE: typing.ClassVar[int] = ...
    SLICE_SERVICE_TYPE_EMBB: typing.ClassVar[int] = ...
    SLICE_SERVICE_TYPE_MIOT: typing.ClassVar[int] = ...
    SLICE_SERVICE_TYPE_NONE: typing.ClassVar[int] = ...
    SLICE_SERVICE_TYPE_URLLC: typing.ClassVar[int] = ...
    SLICE_STATUS_ALLOWED: typing.ClassVar[int] = ...
    SLICE_STATUS_CONFIGURED: typing.ClassVar[int] = ...
    SLICE_STATUS_DEFAULT_CONFIGURED: typing.ClassVar[int] = ...
    SLICE_STATUS_REJECTED_NOT_AVAILABLE_IN_PLMN: typing.ClassVar[int] = ...
    SLICE_STATUS_REJECTED_NOT_AVAILABLE_IN_REGISTERED_AREA: typing.ClassVar[int] = ...
    SLICE_STATUS_UNKNOWN: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getMappedHplmnSliceDifferentiator(self) -> int: ...
    def getMappedHplmnSliceServiceType(self) -> int: ...
    def getSliceDifferentiator(self) -> int: ...
    def getSliceServiceType(self) -> int: ...
    def getStatus(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 Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> NetworkSliceInfo: ...
        def setMappedHplmnSliceDifferentiator(self, mappedHplmnSliceDifferentiator: int | java.jint | java.lang.Integer, /) -> NetworkSliceInfo.Builder: ...
        def setMappedHplmnSliceServiceType(self, mappedHplmnSliceServiceType: int | java.jint | java.lang.Integer, /) -> NetworkSliceInfo.Builder: ...
        def setSliceDifferentiator(self, sliceDifferentiator: int | java.jint | java.lang.Integer, /) -> NetworkSliceInfo.Builder: ...
        def setSliceServiceType(self, mSliceServiceType: int | java.jint | java.lang.Integer, /) -> NetworkSliceInfo.Builder: ...
        def setStatus(self, status: int | java.jint | java.lang.Integer, /) -> NetworkSliceInfo.Builder: ...

class NetworkSlicingConfig(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[NetworkSlicingConfig]] = ...
    def __init__(self) -> None: ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getSliceInfo(self) -> java.util.List[NetworkSliceInfo]: ...
    def getUrspRules(self) -> java.util.List[UrspRule]: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class RouteSelectionDescriptor(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[RouteSelectionDescriptor]] = ...
    ROUTE_SSC_MODE_1: typing.ClassVar[int] = ...
    ROUTE_SSC_MODE_2: typing.ClassVar[int] = ...
    ROUTE_SSC_MODE_3: typing.ClassVar[int] = ...
    SESSION_TYPE_IPV4: typing.ClassVar[int] = ...
    SESSION_TYPE_IPV4V6: typing.ClassVar[int] = ...
    SESSION_TYPE_IPV6: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getDataNetworkName(self) -> java.util.List[java.lang.String]: ...
    def getPrecedence(self) -> int: ...
    def getSessionType(self) -> int: ...
    def getSliceInfo(self) -> java.util.List[NetworkSliceInfo]: ...
    def getSscMode(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 TrafficDescriptor(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TrafficDescriptor]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getDataNetworkName(self) -> str | None: ...
    def getOsAppId(self) -> java.chaquopy.JavaArrayJByte | None: ...
    def hashCode(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) -> TrafficDescriptor: ...
        def setDataNetworkName(self, dnn: str | java.lang.String, /) -> TrafficDescriptor.Builder: ...
        def setOsAppId(self, osAppId: java.chaquopy.JavaArrayJByte, /) -> TrafficDescriptor.Builder: ...

class UrspRule(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[UrspRule]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getPrecedence(self) -> int: ...
    def getRouteSelectionDescriptor(self) -> java.util.List[RouteSelectionDescriptor]: ...
    def getTrafficDescriptors(self) -> java.util.List[TrafficDescriptor]: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...
