import typing

import android.app
import android.os
import android.telephony
import java
import java.chaquopy
import java.lang
import java.util

class GsmCellLocation(android.telephony.CellLocation):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, bundle: android.os.Bundle, /) -> None: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def fillInNotifierBundle(self, m: android.os.Bundle, /) -> None: ...
    def getCid(self) -> int: ...
    def getLac(self) -> int: ...
    def getPsc(self) -> int: ...
    def hashCode(self) -> int: ...
    def setLacAndCid(self, lac: int | java.jint | java.lang.Integer, cid: int | java.jint | java.lang.Integer, /) -> None: ...
    def setStateInvalid(self) -> None: ...
    def toString(self) -> str: ...

class SmsManager(java.lang.Object):
    RESULT_ERROR_GENERIC_FAILURE: typing.ClassVar[int] = ...
    RESULT_ERROR_NO_SERVICE: typing.ClassVar[int] = ...
    RESULT_ERROR_NULL_PDU: typing.ClassVar[int] = ...
    RESULT_ERROR_RADIO_OFF: typing.ClassVar[int] = ...
    STATUS_ON_SIM_FREE: typing.ClassVar[int] = ...
    STATUS_ON_SIM_READ: typing.ClassVar[int] = ...
    STATUS_ON_SIM_SENT: typing.ClassVar[int] = ...
    STATUS_ON_SIM_UNREAD: typing.ClassVar[int] = ...
    STATUS_ON_SIM_UNSENT: typing.ClassVar[int] = ...
    def divideMessage(self, text: str | java.lang.String, /) -> java.util.ArrayList[java.lang.String]: ...
    @staticmethod
    def getDefault() -> SmsManager: ...
    def sendDataMessage(self, destinationAddress: str | java.lang.String, scAddress: str | java.lang.String, destinationPort: int | java.jshort | java.lang.Short, data: java.chaquopy.JavaArrayJByte, sentIntent: android.app.PendingIntent, deliveryIntent: android.app.PendingIntent, /) -> None: ...
    def sendMultipartTextMessage(self, destinationAddress: str | java.lang.String, scAddress: str | java.lang.String, parts: java.util.ArrayList[java.lang.String], sentIntents: java.util.ArrayList[android.app.PendingIntent], deliveryIntents: java.util.ArrayList[android.app.PendingIntent], /) -> None: ...
    def sendTextMessage(self, destinationAddress: str | java.lang.String, scAddress: str | java.lang.String, text: str | java.lang.String, sentIntent: android.app.PendingIntent, deliveryIntent: android.app.PendingIntent, /) -> None: ...

class SmsMessage(java.lang.Object):
    ENCODING_16BIT: typing.ClassVar[int] = ...
    ENCODING_7BIT: typing.ClassVar[int] = ...
    ENCODING_8BIT: typing.ClassVar[int] = ...
    ENCODING_UNKNOWN: typing.ClassVar[int] = ...
    MAX_USER_DATA_BYTES: typing.ClassVar[int] = ...
    MAX_USER_DATA_SEPTETS: typing.ClassVar[int] = ...
    MAX_USER_DATA_SEPTETS_WITH_HEADER: typing.ClassVar[int] = ...
    def __init__(self) -> None: ...
    @typing.overload
    @staticmethod
    def calculateLength(messageBody: java.lang.CharSequence, use7bitOnly: bool | java.jboolean | java.lang.Boolean, /) -> java.chaquopy.JavaArrayJInt: ...
    @typing.overload
    @staticmethod
    def calculateLength(messageBody: str | java.lang.String, use7bitOnly: bool | java.jboolean | java.lang.Boolean, /) -> java.chaquopy.JavaArrayJInt: ...
    @staticmethod
    def createFromPdu(pdu: java.chaquopy.JavaArrayJByte, /) -> SmsMessage: ...
    def getDisplayMessageBody(self) -> str: ...
    def getDisplayOriginatingAddress(self) -> str: ...
    def getEmailBody(self) -> str: ...
    def getEmailFrom(self) -> str: ...
    def getIndexOnSim(self) -> int: ...
    def getMessageBody(self) -> str | None: ...
    def getMessageClass(self) -> SmsMessage.MessageClass: ...
    def getOriginatingAddress(self) -> str: ...
    def getPdu(self) -> java.chaquopy.JavaArrayJByte: ...
    def getProtocolIdentifier(self) -> int: ...
    def getPseudoSubject(self) -> str: ...
    def getServiceCenterAddress(self) -> str: ...
    def getStatus(self) -> int: ...
    def getStatusOnSim(self) -> int: ...
    @typing.overload
    @staticmethod
    def getSubmitPdu(scAddress: str | java.lang.String, destinationAddress: str | java.lang.String, message: str | java.lang.String, statusReportRequested: bool | java.jboolean | java.lang.Boolean, /) -> SmsMessage.SubmitPdu | None: ...
    @typing.overload
    @staticmethod
    def getSubmitPdu(scAddress: str | java.lang.String, destinationAddress: str | java.lang.String, destinationPort: int | java.jshort | java.lang.Short, data: java.chaquopy.JavaArrayJByte, statusReportRequested: bool | java.jboolean | java.lang.Boolean, /) -> SmsMessage.SubmitPdu | None: ...
    @staticmethod
    def getTPLayerLengthForPDU(pdu: str | java.lang.String, /) -> int: ...
    def getTimestampMillis(self) -> int: ...
    def getUserData(self) -> java.chaquopy.JavaArrayJByte: ...
    def isCphsMwiMessage(self) -> bool: ...
    def isEmail(self) -> bool: ...
    def isMWIClearMessage(self) -> bool: ...
    def isMWISetMessage(self) -> bool: ...
    def isMwiDontStore(self) -> bool: ...
    def isReplace(self) -> bool: ...
    def isReplyPathPresent(self) -> bool: ...
    def isStatusReportMessage(self) -> bool: ...

    class SubmitPdu(java.lang.Object):
        encodedMessage: java.chaquopy.JavaArrayJByte = ...
        encodedScAddress: java.chaquopy.JavaArrayJByte = ...
        def __init__(self) -> None: ...
        def toString(self) -> str: ...

    class MessageClass(java.lang.Enum[SmsMessage.MessageClass]):
        CLASS_0: typing.ClassVar[SmsMessage.MessageClass] = ...
        CLASS_1: typing.ClassVar[SmsMessage.MessageClass] = ...
        CLASS_2: typing.ClassVar[SmsMessage.MessageClass] = ...
        CLASS_3: typing.ClassVar[SmsMessage.MessageClass] = ...
        UNKNOWN: typing.ClassVar[SmsMessage.MessageClass] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> SmsMessage.MessageClass: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[SmsMessage.MessageClass]: ...
