import typing

import android.icu.math
import android.icu.text
import java
import java.chaquopy
import java.io
import java.lang
import java.util

class BuddhistCalendar(GregorianCalendar):
    BE: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, /) -> None: ...
    @typing.overload
    def __init__(self, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, date: java.util.Date, /) -> None: ...
    @typing.overload
    def __init__(self, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, second: int | java.jint | java.lang.Integer, /) -> None: ...
    def getType(self) -> str: ...
    def handleComputeFields(self, julianDay: int | java.jint | java.lang.Integer, /) -> None: ...
    def handleComputeMonthStart(self, eyear: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, useMonth: bool | java.jboolean | java.lang.Boolean, /) -> int: ...
    def handleGetExtendedYear(self) -> int: ...
    def handleGetLimit(self, field: int | java.jint | java.lang.Integer, limitType: int | java.jint | java.lang.Integer, /) -> int: ...

class Calendar(java.io.Serializable, java.lang.Cloneable, java.lang.Comparable[Calendar]):
    AM: typing.ClassVar[int] = ...
    AM_PM: typing.ClassVar[int] = ...
    APRIL: typing.ClassVar[int] = ...
    AUGUST: typing.ClassVar[int] = ...
    DATE: typing.ClassVar[int] = ...
    DAY_OF_MONTH: typing.ClassVar[int] = ...
    DAY_OF_WEEK: typing.ClassVar[int] = ...
    DAY_OF_WEEK_IN_MONTH: typing.ClassVar[int] = ...
    DAY_OF_YEAR: typing.ClassVar[int] = ...
    DECEMBER: typing.ClassVar[int] = ...
    DOW_LOCAL: typing.ClassVar[int] = ...
    DST_OFFSET: typing.ClassVar[int] = ...
    EPOCH_JULIAN_DAY: typing.ClassVar[int] = ...
    ERA: typing.ClassVar[int] = ...
    EXTENDED_YEAR: typing.ClassVar[int] = ...
    FEBRUARY: typing.ClassVar[int] = ...
    FRIDAY: typing.ClassVar[int] = ...
    GREATEST_MINIMUM: typing.ClassVar[int] = ...
    HOUR: typing.ClassVar[int] = ...
    HOUR_OF_DAY: typing.ClassVar[int] = ...
    INTERNALLY_SET: typing.ClassVar[int] = ...
    IS_LEAP_MONTH: typing.ClassVar[int] = ...
    JANUARY: typing.ClassVar[int] = ...
    JAN_1_1_JULIAN_DAY: typing.ClassVar[int] = ...
    JULIAN_DAY: typing.ClassVar[int] = ...
    JULY: typing.ClassVar[int] = ...
    JUNE: typing.ClassVar[int] = ...
    LEAST_MAXIMUM: typing.ClassVar[int] = ...
    MARCH: typing.ClassVar[int] = ...
    MAXIMUM: typing.ClassVar[int] = ...
    MAX_DATE: typing.ClassVar[java.util.Date] = ...
    MAX_FIELD_COUNT: typing.ClassVar[int] = ...
    MAX_JULIAN: typing.ClassVar[int] = ...
    MAX_MILLIS: typing.ClassVar[int] = ...
    MAY: typing.ClassVar[int] = ...
    MILLISECOND: typing.ClassVar[int] = ...
    MILLISECONDS_IN_DAY: typing.ClassVar[int] = ...
    MINIMUM: typing.ClassVar[int] = ...
    MINIMUM_USER_STAMP: typing.ClassVar[int] = ...
    MINUTE: typing.ClassVar[int] = ...
    MIN_DATE: typing.ClassVar[java.util.Date] = ...
    MIN_JULIAN: typing.ClassVar[int] = ...
    MIN_MILLIS: typing.ClassVar[int] = ...
    MONDAY: typing.ClassVar[int] = ...
    MONTH: typing.ClassVar[int] = ...
    NOVEMBER: typing.ClassVar[int] = ...
    OCTOBER: typing.ClassVar[int] = ...
    ONE_DAY: typing.ClassVar[int] = ...
    ONE_HOUR: typing.ClassVar[int] = ...
    ONE_MINUTE: typing.ClassVar[int] = ...
    ONE_SECOND: typing.ClassVar[int] = ...
    ONE_WEEK: typing.ClassVar[int] = ...
    ORDINAL_MONTH: typing.ClassVar[int] = ...
    PM: typing.ClassVar[int] = ...
    RESOLVE_REMAP: typing.ClassVar[int] = ...
    SATURDAY: typing.ClassVar[int] = ...
    SECOND: typing.ClassVar[int] = ...
    SEPTEMBER: typing.ClassVar[int] = ...
    SUNDAY: typing.ClassVar[int] = ...
    THURSDAY: typing.ClassVar[int] = ...
    TUESDAY: typing.ClassVar[int] = ...
    UNDECIMBER: typing.ClassVar[int] = ...
    UNSET: typing.ClassVar[int] = ...
    WALLTIME_FIRST: typing.ClassVar[int] = ...
    WALLTIME_LAST: typing.ClassVar[int] = ...
    WALLTIME_NEXT_VALID: typing.ClassVar[int] = ...
    WEDNESDAY: typing.ClassVar[int] = ...
    WEEK_OF_MONTH: typing.ClassVar[int] = ...
    WEEK_OF_YEAR: typing.ClassVar[int] = ...
    YEAR: typing.ClassVar[int] = ...
    YEAR_WOY: typing.ClassVar[int] = ...
    ZONE_OFFSET: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, aLocale: java.util.Locale, /) -> None: ...
    def add(self, field: int | java.jint | java.lang.Integer, amount: int | java.jint | java.lang.Integer, /) -> None: ...
    def after(self, when: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def before(self, when: java.lang.Object | int | bool | float | str, /) -> bool: ...
    @typing.overload
    def clear(self) -> None: ...
    @typing.overload
    def clear(self, field: int | java.jint | java.lang.Integer, /) -> None: ...
    def clone(self) -> java.lang.Object: ...
    def compareTo(self, that: Calendar, /) -> int: ...
    def complete(self) -> None: ...
    def computeFields(self) -> None: ...
    def computeGregorianFields(self, julianDay: int | java.jint | java.lang.Integer, /) -> None: ...
    def computeGregorianMonthStart(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, /) -> int: ...
    def computeJulianDay(self) -> int: ...
    def computeMillisInDay(self) -> int: ...
    def computeTime(self) -> None: ...
    def computeZoneOffset(self, millis: int | java.jlong | java.lang.Long, millisInDay: int | java.jint | java.lang.Integer, /) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def fieldDifference(self, when: java.util.Date, field: int | java.jint | java.lang.Integer, /) -> int: ...
    def fieldName(self, field: int | java.jint | java.lang.Integer, /) -> str: ...
    @typing.overload
    @staticmethod
    def floorDivide(numerator: int | java.jint | java.lang.Integer, denominator: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    @staticmethod
    def floorDivide(numerator: int | java.jlong | java.lang.Long, denominator: int | java.jlong | java.lang.Long, /) -> int: ...
    @typing.overload
    @staticmethod
    def floorDivide(numerator: int | java.jint | java.lang.Integer, denominator: int | java.jint | java.lang.Integer, remainder: java.chaquopy.JavaArrayJInt, /) -> int: ...
    @typing.overload
    @staticmethod
    def floorDivide(numerator: int | java.jlong | java.lang.Long, denominator: int | java.jint | java.lang.Integer, remainder: java.chaquopy.JavaArrayJInt, /) -> int: ...
    def get(self, field: int | java.jint | java.lang.Integer, /) -> int: ...
    def getActualMaximum(self, field: int | java.jint | java.lang.Integer, /) -> int: ...
    def getActualMinimum(self, field: int | java.jint | java.lang.Integer, /) -> int: ...
    @staticmethod
    def getAvailableLocales() -> java.chaquopy.JavaArray[java.util.Locale]: ...
    @typing.overload
    def getDateTimeFormat(self, dateStyle: int | java.jint | java.lang.Integer, timeStyle: int | java.jint | java.lang.Integer, loc: ULocale, /) -> android.icu.text.DateFormat: ...
    @typing.overload
    def getDateTimeFormat(self, dateStyle: int | java.jint | java.lang.Integer, timeStyle: int | java.jint | java.lang.Integer, loc: java.util.Locale, /) -> android.icu.text.DateFormat: ...
    @typing.overload
    def getDisplayName(self, loc: ULocale, /) -> str: ...
    @typing.overload
    def getDisplayName(self, loc: java.util.Locale, /) -> str: ...
    def getFieldCount(self) -> int: ...
    def getFieldResolutionTable(self) -> java.chaquopy.JavaArray[java.chaquopy.JavaArray[java.chaquopy.JavaArrayJInt]]: ...
    def getFirstDayOfWeek(self) -> int: ...
    def getGreatestMinimum(self, field: int | java.jint | java.lang.Integer, /) -> int: ...
    def getGregorianDayOfMonth(self) -> int: ...
    def getGregorianDayOfYear(self) -> int: ...
    def getGregorianMonth(self) -> int: ...
    def getGregorianYear(self) -> int: ...
    @typing.overload
    @staticmethod
    def getInstance() -> Calendar: ...
    @typing.overload
    @staticmethod
    def getInstance(zone: TimeZone, /) -> Calendar: ...
    @typing.overload
    @staticmethod
    def getInstance(locale: ULocale, /) -> Calendar: ...
    @typing.overload
    @staticmethod
    def getInstance(aLocale: java.util.Locale, /) -> Calendar: ...
    @typing.overload
    @staticmethod
    def getInstance(zone: TimeZone, locale: ULocale, /) -> Calendar: ...
    @typing.overload
    @staticmethod
    def getInstance(zone: TimeZone, aLocale: java.util.Locale, /) -> Calendar: ...
    @staticmethod
    def getKeywordValuesForLocale(key: str | java.lang.String, locale: ULocale, commonlyUsed: bool | java.jboolean | java.lang.Boolean, /) -> java.chaquopy.JavaArray[java.lang.String]: ...
    def getLeastMaximum(self, field: int | java.jint | java.lang.Integer, /) -> int: ...
    def getLimit(self, field: int | java.jint | java.lang.Integer, limitType: int | java.jint | java.lang.Integer, /) -> int: ...
    def getMaximum(self, field: int | java.jint | java.lang.Integer, /) -> int: ...
    def getMinimalDaysInFirstWeek(self) -> int: ...
    def getMinimum(self, field: int | java.jint | java.lang.Integer, /) -> int: ...
    def getRepeatedWallTimeOption(self) -> int: ...
    def getSkippedWallTimeOption(self) -> int: ...
    def getStamp(self, field: int | java.jint | java.lang.Integer, /) -> int: ...
    def getTemporalMonthCode(self) -> str: ...
    def getTime(self) -> java.util.Date: ...
    def getTimeInMillis(self) -> int: ...
    def getTimeZone(self) -> TimeZone: ...
    def getType(self) -> str: ...
    def getWeekData(self) -> Calendar.WeekData: ...
    @staticmethod
    def getWeekDataForRegion(region: str | java.lang.String, /) -> Calendar.WeekData: ...
    @staticmethod
    def gregorianMonthLength(y: int | java.jint | java.lang.Integer, m: int | java.jint | java.lang.Integer, /) -> int: ...
    @staticmethod
    def gregorianPreviousMonthLength(y: int | java.jint | java.lang.Integer, m: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleComputeFields(self, julianDay: int | java.jint | java.lang.Integer, /) -> None: ...
    def handleComputeJulianDay(self, bestField: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleComputeMonthStart(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, arg3: bool | java.jboolean | java.lang.Boolean, /) -> int: ...
    def handleCreateFields(self) -> java.chaquopy.JavaArrayJInt: ...
    @typing.overload
    def handleGetDateFormat(self, pattern: str | java.lang.String, locale: ULocale, /) -> android.icu.text.DateFormat: ...
    @typing.overload
    def handleGetDateFormat(self, pattern: str | java.lang.String, locale: java.util.Locale, /) -> android.icu.text.DateFormat: ...
    @typing.overload
    def handleGetDateFormat(self, pattern: str | java.lang.String, override: str | java.lang.String, locale: java.util.Locale, /) -> android.icu.text.DateFormat: ...
    def handleGetExtendedYear(self) -> int: ...
    def handleGetLimit(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleGetMonthLength(self, extendedYear: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleGetYearLength(self, eyear: int | java.jint | java.lang.Integer, /) -> int: ...
    def hashCode(self) -> int: ...
    def inTemporalLeapYear(self) -> bool: ...
    @typing.overload
    def internalGet(self, field: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def internalGet(self, field: int | java.jint | java.lang.Integer, defaultValue: int | java.jint | java.lang.Integer, /) -> int: ...
    def internalGetTimeInMillis(self) -> int: ...
    def internalSet(self, field: int | java.jint | java.lang.Integer, value: int | java.jint | java.lang.Integer, /) -> None: ...
    def isEquivalentTo(self, other: Calendar, /) -> bool: ...
    @staticmethod
    def isGregorianLeapYear(year: int | java.jint | java.lang.Integer, /) -> bool: ...
    def isLenient(self) -> bool: ...
    def isSet(self, field: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def isWeekend(self) -> bool: ...
    @typing.overload
    def isWeekend(self, date: java.util.Date, /) -> bool: ...
    @staticmethod
    def julianDayToDayOfWeek(julian: int | java.jint | java.lang.Integer, /) -> int: ...
    @staticmethod
    def julianDayToMillis(julian: int | java.jint | java.lang.Integer, /) -> int: ...
    @staticmethod
    def millisToJulianDay(millis: int | java.jlong | java.lang.Long, /) -> int: ...
    def newerField(self, defaultField: int | java.jint | java.lang.Integer, alternateField: int | java.jint | java.lang.Integer, /) -> int: ...
    def newestStamp(self, first: int | java.jint | java.lang.Integer, last: int | java.jint | java.lang.Integer, bestStampSoFar: int | java.jint | java.lang.Integer, /) -> int: ...
    def pinField(self, field: int | java.jint | java.lang.Integer, /) -> None: ...
    def prepareGetActual(self, field: int | java.jint | java.lang.Integer, isMinimum: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def resolveFields(self, precedenceTable: java.chaquopy.JavaArray[java.chaquopy.JavaArray[java.chaquopy.JavaArrayJInt]], /) -> int: ...
    @typing.overload
    def roll(self, field: int | java.jint | java.lang.Integer, amount: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def roll(self, field: int | java.jint | java.lang.Integer, up: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    @typing.overload
    def set(self, field: int | java.jint | java.lang.Integer, value: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def set(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def set(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def set(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, second: int | java.jint | java.lang.Integer, /) -> None: ...
    def setFirstDayOfWeek(self, value: int | java.jint | java.lang.Integer, /) -> None: ...
    def setLenient(self, lenient: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setMinimalDaysInFirstWeek(self, value: int | java.jint | java.lang.Integer, /) -> None: ...
    def setRepeatedWallTimeOption(self, option: int | java.jint | java.lang.Integer, /) -> None: ...
    def setSkippedWallTimeOption(self, option: int | java.jint | java.lang.Integer, /) -> None: ...
    def setTemporalMonthCode(self, temporalMonth: str | java.lang.String, /) -> None: ...
    def setTime(self, date: java.util.Date, /) -> None: ...
    def setTimeInMillis(self, millis: int | java.jlong | java.lang.Long, /) -> None: ...
    def setTimeZone(self, value: TimeZone, /) -> None: ...
    def setWeekData(self, wdata: Calendar.WeekData, /) -> Calendar: ...
    def toString(self) -> str: ...
    @typing.overload
    def validateField(self, field: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def validateField(self, field: int | java.jint | java.lang.Integer, min: int | java.jint | java.lang.Integer, max: int | java.jint | java.lang.Integer, /) -> None: ...
    def validateFields(self) -> None: ...
    @typing.overload
    def weekNumber(self, dayOfPeriod: int | java.jint | java.lang.Integer, dayOfWeek: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def weekNumber(self, desiredDay: int | java.jint | java.lang.Integer, dayOfPeriod: int | java.jint | java.lang.Integer, dayOfWeek: int | java.jint | java.lang.Integer, /) -> int: ...

    class WeekData(java.lang.Object):
        firstDayOfWeek: int = ...
        minimalDaysInFirstWeek: int = ...
        weekendCease: int = ...
        weekendCeaseMillis: int = ...
        weekendOnset: int = ...
        weekendOnsetMillis: int = ...
        def __init__(self, fdow: int | java.jint | java.lang.Integer, mdifw: int | java.jint | java.lang.Integer, weekendOnset: int | java.jint | java.lang.Integer, weekendOnsetMillis: int | java.jint | java.lang.Integer, weekendCease: int | java.jint | java.lang.Integer, weekendCeaseMillis: int | java.jint | java.lang.Integer, /) -> None: ...
        def equals(self, other: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def hashCode(self) -> int: ...
        def toString(self) -> str: ...

class ChineseCalendar(Calendar):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, /) -> None: ...
    @typing.overload
    def __init__(self, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, date: java.util.Date, /) -> None: ...
    @typing.overload
    def __init__(self, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, isLeapMonth: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, era: int | java.jint | java.lang.Integer, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, isLeapMonth: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, isLeapMonth: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, second: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, era: int | java.jint | java.lang.Integer, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, isLeapMonth: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, second: int | java.jint | java.lang.Integer, /) -> None: ...
    def add(self, field: int | java.jint | java.lang.Integer, amount: int | java.jint | java.lang.Integer, /) -> None: ...
    def getFieldResolutionTable(self) -> java.chaquopy.JavaArray[java.chaquopy.JavaArray[java.chaquopy.JavaArrayJInt]]: ...
    def getTemporalMonthCode(self) -> str: ...
    def getType(self) -> str: ...
    def handleComputeFields(self, julianDay: int | java.jint | java.lang.Integer, /) -> None: ...
    def handleComputeMonthStart(self, eyear: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, useMonth: bool | java.jboolean | java.lang.Boolean, /) -> int: ...
    def handleGetDateFormat(self, pattern: str | java.lang.String, override: str | java.lang.String, locale: ULocale, /) -> android.icu.text.DateFormat: ...
    def handleGetExtendedYear(self) -> int: ...
    def handleGetLimit(self, field: int | java.jint | java.lang.Integer, limitType: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleGetMonthLength(self, extendedYear: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, /) -> int: ...
    def inTemporalLeapYear(self) -> bool: ...
    def roll(self, field: int | java.jint | java.lang.Integer, amount: int | java.jint | java.lang.Integer, /) -> None: ...
    def setTemporalMonthCode(self, temporalMonth: str | java.lang.String, /) -> None: ...

class CopticCalendar(Calendar):
    AMSHIR: typing.ClassVar[int] = ...
    BABA: typing.ClassVar[int] = ...
    BARAMHAT: typing.ClassVar[int] = ...
    BARAMOUDA: typing.ClassVar[int] = ...
    BASHANS: typing.ClassVar[int] = ...
    EPEP: typing.ClassVar[int] = ...
    HATOR: typing.ClassVar[int] = ...
    KIAHK: typing.ClassVar[int] = ...
    MESRA: typing.ClassVar[int] = ...
    NASIE: typing.ClassVar[int] = ...
    PAONA: typing.ClassVar[int] = ...
    TOBA: typing.ClassVar[int] = ...
    TOUT: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, /) -> None: ...
    @typing.overload
    def __init__(self, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, date: java.util.Date, /) -> None: ...
    @typing.overload
    def __init__(self, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, second: int | java.jint | java.lang.Integer, /) -> None: ...
    def getTemporalMonthCode(self) -> str: ...
    def getType(self) -> str: ...
    def handleComputeFields(self, julianDay: int | java.jint | java.lang.Integer, /) -> None: ...
    def handleComputeMonthStart(self, eyear: int | java.jint | java.lang.Integer, emonth: int | java.jint | java.lang.Integer, useMonth: bool | java.jboolean | java.lang.Boolean, /) -> int: ...
    def handleGetExtendedYear(self) -> int: ...
    def handleGetLimit(self, field: int | java.jint | java.lang.Integer, limitType: int | java.jint | java.lang.Integer, /) -> int: ...
    def setTemporalMonthCode(self, temporalMonth: str | java.lang.String, /) -> None: ...

class Currency(MeasureUnit):
    FORMAL_SYMBOL_NAME: typing.ClassVar[int] = ...
    LONG_NAME: typing.ClassVar[int] = ...
    NARROW_SYMBOL_NAME: typing.ClassVar[int] = ...
    PLURAL_LONG_NAME: typing.ClassVar[int] = ...
    SYMBOL_NAME: typing.ClassVar[int] = ...
    VARIANT_SYMBOL_NAME: typing.ClassVar[int] = ...
    def __init__(self, theISOCode: str | java.lang.String, /) -> None: ...
    @staticmethod
    def fromJavaCurrency(currency: java.util.Currency, /) -> Currency: ...
    @staticmethod
    def getAvailableCurrencies() -> java.util.Set[Currency]: ...
    @typing.overload
    @staticmethod
    def getAvailableCurrencyCodes(loc: ULocale, d: java.util.Date, /) -> java.chaquopy.JavaArray[java.lang.String]: ...
    @typing.overload
    @staticmethod
    def getAvailableCurrencyCodes(loc: java.util.Locale, d: java.util.Date, /) -> java.chaquopy.JavaArray[java.lang.String]: ...
    @staticmethod
    def getAvailableLocales() -> java.chaquopy.JavaArray[java.util.Locale]: ...
    @staticmethod
    def getAvailableULocales() -> java.chaquopy.JavaArray[ULocale]: ...
    def getCurrencyCode(self) -> str: ...
    @typing.overload
    def getDefaultFractionDigits(self) -> int: ...
    @typing.overload
    def getDefaultFractionDigits(self, Usage: Currency.CurrencyUsage, /) -> int: ...
    @typing.overload
    def getDisplayName(self) -> str: ...
    @typing.overload
    def getDisplayName(self, locale: java.util.Locale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getInstance(locale: ULocale, /) -> Currency: ...
    @typing.overload
    @staticmethod
    def getInstance(theISOCode: str | java.lang.String, /) -> Currency: ...
    @typing.overload
    @staticmethod
    def getInstance(locale: java.util.Locale, /) -> Currency: ...
    @staticmethod
    def getKeywordValuesForLocale(key: str | java.lang.String, locale: ULocale, commonlyUsed: bool | java.jboolean | java.lang.Boolean, /) -> java.chaquopy.JavaArray[java.lang.String]: ...
    @typing.overload
    def getName(self, locale: ULocale, nameStyle: int | java.jint | java.lang.Integer, isChoiceFormat: java.chaquopy.JavaArrayJBoolean, /) -> str: ...
    @typing.overload
    def getName(self, locale: java.util.Locale, nameStyle: int | java.jint | java.lang.Integer, isChoiceFormat: java.chaquopy.JavaArrayJBoolean, /) -> str: ...
    @typing.overload
    def getName(self, locale: ULocale, nameStyle: int | java.jint | java.lang.Integer, pluralCount: str | java.lang.String, isChoiceFormat: java.chaquopy.JavaArrayJBoolean, /) -> str: ...
    @typing.overload
    def getName(self, locale: java.util.Locale, nameStyle: int | java.jint | java.lang.Integer, pluralCount: str | java.lang.String, isChoiceFormat: java.chaquopy.JavaArrayJBoolean, /) -> str: ...
    def getNumericCode(self) -> int: ...
    @typing.overload
    def getRoundingIncrement(self) -> float: ...
    @typing.overload
    def getRoundingIncrement(self, Usage: Currency.CurrencyUsage, /) -> float: ...
    @typing.overload
    def getSymbol(self) -> str: ...
    @typing.overload
    def getSymbol(self, uloc: ULocale, /) -> str: ...
    @typing.overload
    def getSymbol(self, loc: java.util.Locale, /) -> str: ...
    @staticmethod
    def isAvailable(code: str | java.lang.String, from_: java.util.Date, to: java.util.Date, /) -> bool: ...
    def toJavaCurrency(self) -> java.util.Currency: ...
    def toString(self) -> str: ...

    class CurrencyUsage(java.lang.Enum[Currency.CurrencyUsage]):
        CASH: typing.ClassVar[Currency.CurrencyUsage] = ...
        STANDARD: typing.ClassVar[Currency.CurrencyUsage] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Currency.CurrencyUsage: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Currency.CurrencyUsage]: ...

class CurrencyAmount(Measure):
    @typing.overload
    def __init__(self, number: float | java.jdouble | java.lang.Double, currency: Currency, /) -> None: ...
    @typing.overload
    def __init__(self, number: float | java.jdouble | java.lang.Double, currency: java.util.Currency, /) -> None: ...
    @typing.overload
    def __init__(self, number: java.lang.Number, currency: Currency, /) -> None: ...
    @typing.overload
    def __init__(self, number: java.lang.Number, currency: java.util.Currency, /) -> None: ...
    def getCurrency(self) -> Currency: ...

class DateInterval(java.io.Serializable):
    def __init__(self, from_: int | java.jlong | java.lang.Long, to: int | java.jlong | java.lang.Long, /) -> None: ...
    def equals(self, a: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getFromDate(self) -> int: ...
    def getToDate(self) -> int: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class EthiopicCalendar(Calendar):
    GENBOT: typing.ClassVar[int] = ...
    HAMLE: typing.ClassVar[int] = ...
    HEDAR: typing.ClassVar[int] = ...
    MEGABIT: typing.ClassVar[int] = ...
    MESKEREM: typing.ClassVar[int] = ...
    MIAZIA: typing.ClassVar[int] = ...
    NEHASSE: typing.ClassVar[int] = ...
    PAGUMEN: typing.ClassVar[int] = ...
    SENE: typing.ClassVar[int] = ...
    TAHSAS: typing.ClassVar[int] = ...
    TEKEMT: typing.ClassVar[int] = ...
    TER: typing.ClassVar[int] = ...
    YEKATIT: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, /) -> None: ...
    @typing.overload
    def __init__(self, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, date: java.util.Date, /) -> None: ...
    @typing.overload
    def __init__(self, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, second: int | java.jint | java.lang.Integer, /) -> None: ...
    def getTemporalMonthCode(self) -> str: ...
    def getType(self) -> str: ...
    def handleComputeFields(self, julianDay: int | java.jint | java.lang.Integer, /) -> None: ...
    def handleComputeMonthStart(self, eyear: int | java.jint | java.lang.Integer, emonth: int | java.jint | java.lang.Integer, useMonth: bool | java.jboolean | java.lang.Boolean, /) -> int: ...
    def handleGetExtendedYear(self) -> int: ...
    def handleGetLimit(self, field: int | java.jint | java.lang.Integer, limitType: int | java.jint | java.lang.Integer, /) -> int: ...
    def isAmeteAlemEra(self) -> bool: ...
    def setAmeteAlemEra(self, onOff: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setTemporalMonthCode(self, temporalMonth: str | java.lang.String, /) -> None: ...

_Freezable__T = typing.TypeVar('_Freezable__T')  # <T>
class Freezable(java.lang.Cloneable, typing.Generic[_Freezable__T]):
    def cloneAsThawed(self) -> _Freezable__T: ...
    def freeze(self) -> _Freezable__T: ...
    def isFrozen(self) -> bool: ...

class GregorianCalendar(Calendar):
    AD: typing.ClassVar[int] = ...
    BC: typing.ClassVar[int] = ...
    invertGregorian: bool = ...
    isGregorian: bool = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, /) -> None: ...
    @typing.overload
    def __init__(self, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, second: int | java.jint | java.lang.Integer, /) -> None: ...
    def getActualMaximum(self, field: int | java.jint | java.lang.Integer, /) -> int: ...
    def getActualMinimum(self, field: int | java.jint | java.lang.Integer, /) -> int: ...
    def getGregorianChange(self) -> java.util.Date: ...
    def getType(self) -> str: ...
    def handleComputeFields(self, julianDay: int | java.jint | java.lang.Integer, /) -> None: ...
    def handleComputeJulianDay(self, bestField: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleComputeMonthStart(self, eyear: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, useMonth: bool | java.jboolean | java.lang.Boolean, /) -> int: ...
    def handleGetExtendedYear(self) -> int: ...
    def handleGetLimit(self, field: int | java.jint | java.lang.Integer, limitType: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleGetMonthLength(self, extendedYear: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleGetYearLength(self, eyear: int | java.jint | java.lang.Integer, /) -> int: ...
    def hashCode(self) -> int: ...
    def isEquivalentTo(self, other: Calendar, /) -> bool: ...
    def isLeapYear(self, year: int | java.jint | java.lang.Integer, /) -> bool: ...
    def roll(self, field: int | java.jint | java.lang.Integer, amount: int | java.jint | java.lang.Integer, /) -> None: ...
    def setGregorianChange(self, date: java.util.Date, /) -> None: ...

class HebrewCalendar(Calendar):
    ADAR: typing.ClassVar[int] = ...
    ADAR_1: typing.ClassVar[int] = ...
    AV: typing.ClassVar[int] = ...
    ELUL: typing.ClassVar[int] = ...
    HESHVAN: typing.ClassVar[int] = ...
    IYAR: typing.ClassVar[int] = ...
    KISLEV: typing.ClassVar[int] = ...
    NISAN: typing.ClassVar[int] = ...
    SHEVAT: typing.ClassVar[int] = ...
    SIVAN: typing.ClassVar[int] = ...
    TAMUZ: typing.ClassVar[int] = ...
    TEVET: typing.ClassVar[int] = ...
    TISHRI: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, /) -> None: ...
    @typing.overload
    def __init__(self, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, date: java.util.Date, /) -> None: ...
    @typing.overload
    def __init__(self, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, second: int | java.jint | java.lang.Integer, /) -> None: ...
    def add(self, field: int | java.jint | java.lang.Integer, amount: int | java.jint | java.lang.Integer, /) -> None: ...
    def getTemporalMonthCode(self) -> str: ...
    def getType(self) -> str: ...
    def handleComputeFields(self, julianDay: int | java.jint | java.lang.Integer, /) -> None: ...
    def handleComputeMonthStart(self, eyear: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, useMonth: bool | java.jboolean | java.lang.Boolean, /) -> int: ...
    def handleGetExtendedYear(self) -> int: ...
    def handleGetLimit(self, field: int | java.jint | java.lang.Integer, limitType: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleGetMonthLength(self, extendedYear: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleGetYearLength(self, eyear: int | java.jint | java.lang.Integer, /) -> int: ...
    def inTemporalLeapYear(self) -> bool: ...
    def roll(self, field: int | java.jint | java.lang.Integer, amount: int | java.jint | java.lang.Integer, /) -> None: ...
    def setTemporalMonthCode(self, temporalMonth: str | java.lang.String, /) -> None: ...
    def validateField(self, field: int | java.jint | java.lang.Integer, /) -> None: ...

class ICUUncheckedIOException(java.lang.RuntimeException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, cause: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, cause: java.lang.Throwable, /) -> None: ...

class IllformedLocaleException(java.lang.RuntimeException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, errorIndex: int | java.jint | java.lang.Integer, /) -> None: ...
    def getErrorIndex(self) -> int: ...

class IndianCalendar(Calendar):
    AGRAHAYANA: typing.ClassVar[int] = ...
    ASADHA: typing.ClassVar[int] = ...
    ASVINA: typing.ClassVar[int] = ...
    BHADRA: typing.ClassVar[int] = ...
    CHAITRA: typing.ClassVar[int] = ...
    IE: typing.ClassVar[int] = ...
    JYAISTHA: typing.ClassVar[int] = ...
    KARTIKA: typing.ClassVar[int] = ...
    MAGHA: typing.ClassVar[int] = ...
    PAUSA: typing.ClassVar[int] = ...
    PHALGUNA: typing.ClassVar[int] = ...
    SRAVANA: typing.ClassVar[int] = ...
    VAISAKHA: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, /) -> None: ...
    @typing.overload
    def __init__(self, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, date: java.util.Date, /) -> None: ...
    @typing.overload
    def __init__(self, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, second: int | java.jint | java.lang.Integer, /) -> None: ...
    def getType(self) -> str: ...
    def handleComputeFields(self, julianDay: int | java.jint | java.lang.Integer, /) -> None: ...
    def handleComputeMonthStart(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, useMonth: bool | java.jboolean | java.lang.Boolean, /) -> int: ...
    def handleGetExtendedYear(self) -> int: ...
    def handleGetLimit(self, field: int | java.jint | java.lang.Integer, limitType: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleGetMonthLength(self, extendedYear: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleGetYearLength(self, extendedYear: int | java.jint | java.lang.Integer, /) -> int: ...

class IslamicCalendar(Calendar):
    DHU_AL_HIJJAH: typing.ClassVar[int] = ...
    DHU_AL_QIDAH: typing.ClassVar[int] = ...
    JUMADA_1: typing.ClassVar[int] = ...
    JUMADA_2: typing.ClassVar[int] = ...
    MUHARRAM: typing.ClassVar[int] = ...
    RABI_1: typing.ClassVar[int] = ...
    RABI_2: typing.ClassVar[int] = ...
    RAJAB: typing.ClassVar[int] = ...
    RAMADAN: typing.ClassVar[int] = ...
    SAFAR: typing.ClassVar[int] = ...
    SHABAN: typing.ClassVar[int] = ...
    SHAWWAL: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, /) -> None: ...
    @typing.overload
    def __init__(self, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, date: java.util.Date, /) -> None: ...
    @typing.overload
    def __init__(self, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, second: int | java.jint | java.lang.Integer, /) -> None: ...
    def getCalculationType(self) -> IslamicCalendar.CalculationType: ...
    def getType(self) -> str: ...
    def handleComputeFields(self, julianDay: int | java.jint | java.lang.Integer, /) -> None: ...
    def handleComputeMonthStart(self, eyear: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, useMonth: bool | java.jboolean | java.lang.Boolean, /) -> int: ...
    def handleGetExtendedYear(self) -> int: ...
    def handleGetLimit(self, field: int | java.jint | java.lang.Integer, limitType: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleGetMonthLength(self, extendedYear: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, /) -> int: ...
    def handleGetYearLength(self, extendedYear: int | java.jint | java.lang.Integer, /) -> int: ...
    def inTemporalLeapYear(self) -> bool: ...
    def setCalculationType(self, type: IslamicCalendar.CalculationType, /) -> None: ...

    class CalculationType(java.lang.Enum[IslamicCalendar.CalculationType]):
        ISLAMIC: typing.ClassVar[IslamicCalendar.CalculationType] = ...
        ISLAMIC_CIVIL: typing.ClassVar[IslamicCalendar.CalculationType] = ...
        ISLAMIC_TBLA: typing.ClassVar[IslamicCalendar.CalculationType] = ...
        ISLAMIC_UMALQURA: typing.ClassVar[IslamicCalendar.CalculationType] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> IslamicCalendar.CalculationType: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[IslamicCalendar.CalculationType]: ...

class JapaneseCalendar(GregorianCalendar):
    HEISEI: typing.ClassVar[int] = ...
    MEIJI: typing.ClassVar[int] = ...
    REIWA: typing.ClassVar[int] = ...
    SHOWA: typing.ClassVar[int] = ...
    TAISHO: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, /) -> None: ...
    @typing.overload
    def __init__(self, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, date: java.util.Date, /) -> None: ...
    @typing.overload
    def __init__(self, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, era: int | java.jint | java.lang.Integer, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, second: int | java.jint | java.lang.Integer, /) -> None: ...
    def getActualMaximum(self, field: int | java.jint | java.lang.Integer, /) -> int: ...
    def getType(self) -> str: ...
    def handleComputeFields(self, julianDay: int | java.jint | java.lang.Integer, /) -> None: ...
    def handleGetExtendedYear(self) -> int: ...
    def handleGetLimit(self, field: int | java.jint | java.lang.Integer, limitType: int | java.jint | java.lang.Integer, /) -> int: ...

class LocaleData(java.lang.Object):
    ALT_QUOTATION_END: typing.ClassVar[int] = ...
    ALT_QUOTATION_START: typing.ClassVar[int] = ...
    QUOTATION_END: typing.ClassVar[int] = ...
    QUOTATION_START: typing.ClassVar[int] = ...
    @staticmethod
    def getCLDRVersion() -> VersionInfo: ...
    def getDelimiter(self, type: int | java.jint | java.lang.Integer, /) -> str: ...
    @typing.overload
    @staticmethod
    def getInstance() -> LocaleData: ...
    @typing.overload
    @staticmethod
    def getInstance(locale: ULocale, /) -> LocaleData: ...
    @staticmethod
    def getMeasurementSystem(locale: ULocale, /) -> LocaleData.MeasurementSystem: ...
    def getNoSubstitute(self) -> bool: ...
    @staticmethod
    def getPaperSize(locale: ULocale, /) -> LocaleData.PaperSize: ...
    def setNoSubstitute(self, setting: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

    class PaperSize(java.lang.Object):
        def getHeight(self) -> int: ...
        def getWidth(self) -> int: ...

    class MeasurementSystem(java.lang.Object):
        SI: typing.ClassVar[LocaleData.MeasurementSystem] = ...
        UK: typing.ClassVar[LocaleData.MeasurementSystem] = ...
        US: typing.ClassVar[LocaleData.MeasurementSystem] = ...

class Measure(java.lang.Object):
    def __init__(self, number: java.lang.Number, unit: MeasureUnit, /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getNumber(self) -> java.lang.Number: ...
    def getUnit(self) -> MeasureUnit: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class MeasureUnit(java.io.Serializable):
    ACRE: typing.ClassVar[MeasureUnit] = ...
    ACRE_FOOT: typing.ClassVar[MeasureUnit] = ...
    AMPERE: typing.ClassVar[MeasureUnit] = ...
    ARC_MINUTE: typing.ClassVar[MeasureUnit] = ...
    ARC_SECOND: typing.ClassVar[MeasureUnit] = ...
    ASTRONOMICAL_UNIT: typing.ClassVar[MeasureUnit] = ...
    ATMOSPHERE: typing.ClassVar[MeasureUnit] = ...
    BEAUFORT: typing.ClassVar[MeasureUnit] = ...
    BIT: typing.ClassVar[MeasureUnit] = ...
    BUSHEL: typing.ClassVar[MeasureUnit] = ...
    BYTE: typing.ClassVar[MeasureUnit] = ...
    CALORIE: typing.ClassVar[MeasureUnit] = ...
    CANDELA: typing.ClassVar[MeasureUnit] = ...
    CARAT: typing.ClassVar[MeasureUnit] = ...
    CELSIUS: typing.ClassVar[MeasureUnit] = ...
    CENTILITER: typing.ClassVar[MeasureUnit] = ...
    CENTIMETER: typing.ClassVar[MeasureUnit] = ...
    CENTURY: typing.ClassVar[MeasureUnit] = ...
    CUBIC_CENTIMETER: typing.ClassVar[MeasureUnit] = ...
    CUBIC_FOOT: typing.ClassVar[MeasureUnit] = ...
    CUBIC_INCH: typing.ClassVar[MeasureUnit] = ...
    CUBIC_KILOMETER: typing.ClassVar[MeasureUnit] = ...
    CUBIC_METER: typing.ClassVar[MeasureUnit] = ...
    CUBIC_MILE: typing.ClassVar[MeasureUnit] = ...
    CUBIC_YARD: typing.ClassVar[MeasureUnit] = ...
    CUP: typing.ClassVar[MeasureUnit] = ...
    CUP_METRIC: typing.ClassVar[MeasureUnit] = ...
    DAY: typing.ClassVar[TimeUnit] = ...
    DECADE: typing.ClassVar[MeasureUnit] = ...
    DECILITER: typing.ClassVar[MeasureUnit] = ...
    DECIMETER: typing.ClassVar[MeasureUnit] = ...
    DEGREE: typing.ClassVar[MeasureUnit] = ...
    DOT: typing.ClassVar[MeasureUnit] = ...
    DOT_PER_CENTIMETER: typing.ClassVar[MeasureUnit] = ...
    DOT_PER_INCH: typing.ClassVar[MeasureUnit] = ...
    EM: typing.ClassVar[MeasureUnit] = ...
    FAHRENHEIT: typing.ClassVar[MeasureUnit] = ...
    FATHOM: typing.ClassVar[MeasureUnit] = ...
    FLUID_OUNCE: typing.ClassVar[MeasureUnit] = ...
    FOODCALORIE: typing.ClassVar[MeasureUnit] = ...
    FOOT: typing.ClassVar[MeasureUnit] = ...
    FURLONG: typing.ClassVar[MeasureUnit] = ...
    GALLON: typing.ClassVar[MeasureUnit] = ...
    GALLON_IMPERIAL: typing.ClassVar[MeasureUnit] = ...
    GASOLINE_ENERGY_DENSITY: typing.ClassVar[MeasureUnit] = ...
    GENERIC_TEMPERATURE: typing.ClassVar[MeasureUnit] = ...
    GIGABIT: typing.ClassVar[MeasureUnit] = ...
    GIGABYTE: typing.ClassVar[MeasureUnit] = ...
    GIGAHERTZ: typing.ClassVar[MeasureUnit] = ...
    GIGAWATT: typing.ClassVar[MeasureUnit] = ...
    GRAM: typing.ClassVar[MeasureUnit] = ...
    G_FORCE: typing.ClassVar[MeasureUnit] = ...
    HECTARE: typing.ClassVar[MeasureUnit] = ...
    HECTOLITER: typing.ClassVar[MeasureUnit] = ...
    HECTOPASCAL: typing.ClassVar[MeasureUnit] = ...
    HERTZ: typing.ClassVar[MeasureUnit] = ...
    HORSEPOWER: typing.ClassVar[MeasureUnit] = ...
    HOUR: typing.ClassVar[TimeUnit] = ...
    INCH: typing.ClassVar[MeasureUnit] = ...
    INCH_HG: typing.ClassVar[MeasureUnit] = ...
    ITEM: typing.ClassVar[MeasureUnit] = ...
    JOULE: typing.ClassVar[MeasureUnit] = ...
    KARAT: typing.ClassVar[MeasureUnit] = ...
    KELVIN: typing.ClassVar[MeasureUnit] = ...
    KILOBIT: typing.ClassVar[MeasureUnit] = ...
    KILOBYTE: typing.ClassVar[MeasureUnit] = ...
    KILOCALORIE: typing.ClassVar[MeasureUnit] = ...
    KILOGRAM: typing.ClassVar[MeasureUnit] = ...
    KILOHERTZ: typing.ClassVar[MeasureUnit] = ...
    KILOJOULE: typing.ClassVar[MeasureUnit] = ...
    KILOMETER: typing.ClassVar[MeasureUnit] = ...
    KILOMETER_PER_HOUR: typing.ClassVar[MeasureUnit] = ...
    KILOWATT: typing.ClassVar[MeasureUnit] = ...
    KILOWATT_HOUR: typing.ClassVar[MeasureUnit] = ...
    KILOWATT_HOUR_PER_100_KILOMETER: typing.ClassVar[MeasureUnit] = ...
    KNOT: typing.ClassVar[MeasureUnit] = ...
    LIGHT_YEAR: typing.ClassVar[MeasureUnit] = ...
    LITER: typing.ClassVar[MeasureUnit] = ...
    LITER_PER_100KILOMETERS: typing.ClassVar[MeasureUnit] = ...
    LITER_PER_KILOMETER: typing.ClassVar[MeasureUnit] = ...
    LUMEN: typing.ClassVar[MeasureUnit] = ...
    LUX: typing.ClassVar[MeasureUnit] = ...
    MEGABIT: typing.ClassVar[MeasureUnit] = ...
    MEGABYTE: typing.ClassVar[MeasureUnit] = ...
    MEGAHERTZ: typing.ClassVar[MeasureUnit] = ...
    MEGALITER: typing.ClassVar[MeasureUnit] = ...
    MEGAPIXEL: typing.ClassVar[MeasureUnit] = ...
    MEGAWATT: typing.ClassVar[MeasureUnit] = ...
    METER: typing.ClassVar[MeasureUnit] = ...
    METER_PER_SECOND: typing.ClassVar[MeasureUnit] = ...
    METER_PER_SECOND_SQUARED: typing.ClassVar[MeasureUnit] = ...
    METRIC_TON: typing.ClassVar[MeasureUnit] = ...
    MICROGRAM: typing.ClassVar[MeasureUnit] = ...
    MICROMETER: typing.ClassVar[MeasureUnit] = ...
    MICROSECOND: typing.ClassVar[MeasureUnit] = ...
    MILE: typing.ClassVar[MeasureUnit] = ...
    MILE_PER_GALLON: typing.ClassVar[MeasureUnit] = ...
    MILE_PER_GALLON_IMPERIAL: typing.ClassVar[MeasureUnit] = ...
    MILE_PER_HOUR: typing.ClassVar[MeasureUnit] = ...
    MILE_SCANDINAVIAN: typing.ClassVar[MeasureUnit] = ...
    MILLIAMPERE: typing.ClassVar[MeasureUnit] = ...
    MILLIBAR: typing.ClassVar[MeasureUnit] = ...
    MILLIGRAM: typing.ClassVar[MeasureUnit] = ...
    MILLIGRAM_OFGLUCOSE_PER_DECILITER: typing.ClassVar[MeasureUnit] = ...
    MILLIGRAM_PER_DECILITER: typing.ClassVar[MeasureUnit] = ...
    MILLILITER: typing.ClassVar[MeasureUnit] = ...
    MILLIMETER: typing.ClassVar[MeasureUnit] = ...
    MILLIMETER_OF_MERCURY: typing.ClassVar[MeasureUnit] = ...
    MILLIMOLE_PER_LITER: typing.ClassVar[MeasureUnit] = ...
    MILLISECOND: typing.ClassVar[MeasureUnit] = ...
    MILLIWATT: typing.ClassVar[MeasureUnit] = ...
    MINUTE: typing.ClassVar[TimeUnit] = ...
    MONTH: typing.ClassVar[TimeUnit] = ...
    NANOMETER: typing.ClassVar[MeasureUnit] = ...
    NANOSECOND: typing.ClassVar[MeasureUnit] = ...
    NAUTICAL_MILE: typing.ClassVar[MeasureUnit] = ...
    OHM: typing.ClassVar[MeasureUnit] = ...
    OUNCE: typing.ClassVar[MeasureUnit] = ...
    OUNCE_TROY: typing.ClassVar[MeasureUnit] = ...
    PARSEC: typing.ClassVar[MeasureUnit] = ...
    PART_PER_MILLION: typing.ClassVar[MeasureUnit] = ...
    PERCENT: typing.ClassVar[MeasureUnit] = ...
    PERMILLE: typing.ClassVar[MeasureUnit] = ...
    PETABYTE: typing.ClassVar[MeasureUnit] = ...
    PICOMETER: typing.ClassVar[MeasureUnit] = ...
    PINT: typing.ClassVar[MeasureUnit] = ...
    PINT_METRIC: typing.ClassVar[MeasureUnit] = ...
    PIXEL: typing.ClassVar[MeasureUnit] = ...
    PIXEL_PER_CENTIMETER: typing.ClassVar[MeasureUnit] = ...
    PIXEL_PER_INCH: typing.ClassVar[MeasureUnit] = ...
    POINT: typing.ClassVar[MeasureUnit] = ...
    POUND: typing.ClassVar[MeasureUnit] = ...
    POUND_PER_SQUARE_INCH: typing.ClassVar[MeasureUnit] = ...
    QUART: typing.ClassVar[MeasureUnit] = ...
    QUARTER: typing.ClassVar[MeasureUnit] = ...
    RADIAN: typing.ClassVar[MeasureUnit] = ...
    REVOLUTION_ANGLE: typing.ClassVar[MeasureUnit] = ...
    SECOND: typing.ClassVar[TimeUnit] = ...
    SQUARE_CENTIMETER: typing.ClassVar[MeasureUnit] = ...
    SQUARE_FOOT: typing.ClassVar[MeasureUnit] = ...
    SQUARE_INCH: typing.ClassVar[MeasureUnit] = ...
    SQUARE_KILOMETER: typing.ClassVar[MeasureUnit] = ...
    SQUARE_METER: typing.ClassVar[MeasureUnit] = ...
    SQUARE_MILE: typing.ClassVar[MeasureUnit] = ...
    SQUARE_YARD: typing.ClassVar[MeasureUnit] = ...
    STONE: typing.ClassVar[MeasureUnit] = ...
    TABLESPOON: typing.ClassVar[MeasureUnit] = ...
    TEASPOON: typing.ClassVar[MeasureUnit] = ...
    TERABIT: typing.ClassVar[MeasureUnit] = ...
    TERABYTE: typing.ClassVar[MeasureUnit] = ...
    TON: typing.ClassVar[MeasureUnit] = ...
    TONNE: typing.ClassVar[MeasureUnit] = ...
    VOLT: typing.ClassVar[MeasureUnit] = ...
    WATT: typing.ClassVar[MeasureUnit] = ...
    WEEK: typing.ClassVar[TimeUnit] = ...
    YARD: typing.ClassVar[MeasureUnit] = ...
    YEAR: typing.ClassVar[TimeUnit] = ...
    def equals(self, rhs: java.lang.Object | int | bool | float | str, /) -> bool: ...
    @staticmethod
    def forIdentifier(identifier: str | java.lang.String, /) -> MeasureUnit: ...
    @typing.overload
    @staticmethod
    def getAvailable() -> java.util.Set[MeasureUnit]: ...
    @typing.overload
    @staticmethod
    def getAvailable(type: str | java.lang.String, /) -> java.util.Set[MeasureUnit]: ...
    @staticmethod
    def getAvailableTypes() -> java.util.Set[java.lang.String]: ...
    def getComplexity(self) -> MeasureUnit.Complexity: ...
    def getDimensionality(self) -> int: ...
    def getIdentifier(self) -> str: ...
    def getPrefix(self) -> MeasureUnit.MeasurePrefix: ...
    def getSubtype(self) -> str: ...
    def getType(self) -> str: ...
    def hashCode(self) -> int: ...
    def product(self, other: MeasureUnit, /) -> MeasureUnit: ...
    def reciprocal(self) -> MeasureUnit: ...
    def splitToSingleUnits(self) -> java.util.List[MeasureUnit]: ...
    def toString(self) -> str: ...
    def withDimensionality(self, dimensionality: int | java.jint | java.lang.Integer, /) -> MeasureUnit: ...
    def withPrefix(self, prefix: MeasureUnit.MeasurePrefix, /) -> MeasureUnit: ...

    class MeasurePrefix(java.lang.Enum[MeasureUnit.MeasurePrefix]):
        ATTO: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        CENTI: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        DECI: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        DEKA: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        EXA: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        EXBI: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        FEMTO: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        GIBI: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        GIGA: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        HECTO: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        KIBI: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        KILO: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        MEBI: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        MEGA: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        MICRO: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        MILLI: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        NANO: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        ONE: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        PEBI: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        PETA: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        PICO: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        TEBI: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        TERA: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        YOBI: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        YOCTO: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        YOTTA: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        ZEBI: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        ZEPTO: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        ZETTA: typing.ClassVar[MeasureUnit.MeasurePrefix] = ...
        def getBase(self) -> int: ...
        def getPower(self) -> int: ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> MeasureUnit.MeasurePrefix: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[MeasureUnit.MeasurePrefix]: ...

    class Complexity(java.lang.Enum[MeasureUnit.Complexity]):
        COMPOUND: typing.ClassVar[MeasureUnit.Complexity] = ...
        MIXED: typing.ClassVar[MeasureUnit.Complexity] = ...
        SINGLE: typing.ClassVar[MeasureUnit.Complexity] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> MeasureUnit.Complexity: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[MeasureUnit.Complexity]: ...

_Output__T = typing.TypeVar('_Output__T')  # <T>
class Output(java.lang.Object, typing.Generic[_Output__T]):
    value: _Output__T = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, value: _Output__T, /) -> None: ...
    def toString(self) -> str: ...

class RangeValueIterator(java.lang.Object):
    def next(self, arg1: RangeValueIterator.Element, /) -> bool: ...
    def reset(self) -> None: ...

    class Element(java.lang.Object):
        limit: int = ...
        start: int = ...
        value: int = ...
        def __init__(self) -> None: ...

class TaiwanCalendar(GregorianCalendar):
    BEFORE_MINGUO: typing.ClassVar[int] = ...
    MINGUO: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, /) -> None: ...
    @typing.overload
    def __init__(self, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, date: java.util.Date, /) -> None: ...
    @typing.overload
    def __init__(self, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, locale: ULocale, /) -> None: ...
    @typing.overload
    def __init__(self, zone: TimeZone, aLocale: java.util.Locale, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, year: int | java.jint | java.lang.Integer, month: int | java.jint | java.lang.Integer, date: int | java.jint | java.lang.Integer, hour: int | java.jint | java.lang.Integer, minute: int | java.jint | java.lang.Integer, second: int | java.jint | java.lang.Integer, /) -> None: ...
    def getType(self) -> str: ...
    def handleComputeFields(self, julianDay: int | java.jint | java.lang.Integer, /) -> None: ...
    def handleGetExtendedYear(self) -> int: ...
    def handleGetLimit(self, field: int | java.jint | java.lang.Integer, limitType: int | java.jint | java.lang.Integer, /) -> int: ...

class TimeUnit(MeasureUnit):
    @staticmethod
    def values() -> java.chaquopy.JavaArray[TimeUnit]: ...

class TimeZone(Freezable[TimeZone], java.io.Serializable, java.lang.Cloneable):
    GENERIC_LOCATION: typing.ClassVar[int] = ...
    GMT_ZONE: typing.ClassVar[TimeZone] = ...
    LONG: typing.ClassVar[int] = ...
    LONG_GENERIC: typing.ClassVar[int] = ...
    LONG_GMT: typing.ClassVar[int] = ...
    SHORT: typing.ClassVar[int] = ...
    SHORT_COMMONLY_USED: typing.ClassVar[int] = ...
    SHORT_GENERIC: typing.ClassVar[int] = ...
    SHORT_GMT: typing.ClassVar[int] = ...
    TIMEZONE_ICU: typing.ClassVar[int] = ...
    TIMEZONE_JDK: typing.ClassVar[int] = ...
    UNKNOWN_ZONE: typing.ClassVar[TimeZone] = ...
    UNKNOWN_ZONE_ID: typing.ClassVar[str] = ...
    def __init__(self) -> None: ...
    def clone(self) -> java.lang.Object: ...
    def cloneAsThawed(self) -> TimeZone: ...
    @staticmethod
    def countEquivalentIDs(id: str | java.lang.String, /) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def freeze(self) -> TimeZone: ...
    @typing.overload
    @staticmethod
    def getAvailableIDs() -> java.chaquopy.JavaArray[java.lang.String]: ...
    @typing.overload
    @staticmethod
    def getAvailableIDs(rawOffset: int | java.jint | java.lang.Integer, /) -> java.chaquopy.JavaArray[java.lang.String]: ...
    @typing.overload
    @staticmethod
    def getAvailableIDs(country: str | java.lang.String, /) -> java.chaquopy.JavaArray[java.lang.String]: ...
    @typing.overload
    @staticmethod
    def getAvailableIDs(zoneType: TimeZone.SystemTimeZoneType, region: str | java.lang.String, rawOffset: int | java.jint | java.lang.Integer, /) -> java.util.Set[java.lang.String]: ...
    @typing.overload
    @staticmethod
    def getCanonicalID(id: str | java.lang.String, /) -> str: ...
    @typing.overload
    @staticmethod
    def getCanonicalID(id: str | java.lang.String, isSystemID: java.chaquopy.JavaArrayJBoolean, /) -> str: ...
    def getDSTSavings(self) -> int: ...
    @staticmethod
    def getDefault() -> TimeZone: ...
    @typing.overload
    def getDisplayName(self) -> str: ...
    @typing.overload
    def getDisplayName(self, locale: ULocale, /) -> str: ...
    @typing.overload
    def getDisplayName(self, locale: java.util.Locale, /) -> str: ...
    @typing.overload
    def getDisplayName(self, daylight: bool | java.jboolean | java.lang.Boolean, style: int | java.jint | java.lang.Integer, /) -> str: ...
    @typing.overload
    def getDisplayName(self, daylight: bool | java.jboolean | java.lang.Boolean, style: int | java.jint | java.lang.Integer, locale: ULocale, /) -> str: ...
    @typing.overload
    def getDisplayName(self, daylight: bool | java.jboolean | java.lang.Boolean, style: int | java.jint | java.lang.Integer, locale: java.util.Locale, /) -> str: ...
    @staticmethod
    def getEquivalentID(id: str | java.lang.String, index: int | java.jint | java.lang.Integer, /) -> str: ...
    @staticmethod
    def getFrozenTimeZone(ID: str | java.lang.String, /) -> TimeZone: ...
    def getID(self) -> str: ...
    @staticmethod
    def getIDForWindowsID(winid: str | java.lang.String, region: str | java.lang.String, /) -> str: ...
    @staticmethod
    def getIanaID(id: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getOffset(self, date: int | java.jlong | java.lang.Long, /) -> int: ...
    @typing.overload
    def getOffset(self, date: int | java.jlong | java.lang.Long, local: bool | java.jboolean | java.lang.Boolean, offsets: java.chaquopy.JavaArrayJInt, /) -> None: ...
    @typing.overload
    def getOffset(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, arg3: int | java.jint | java.lang.Integer, arg4: int | java.jint | java.lang.Integer, arg5: int | java.jint | java.lang.Integer, arg6: int | java.jint | java.lang.Integer, /) -> int: ...
    def getRawOffset(self) -> int: ...
    @staticmethod
    def getRegion(id: str | java.lang.String, /) -> str: ...
    @staticmethod
    def getTZDataVersion() -> str: ...
    @typing.overload
    @staticmethod
    def getTimeZone(ID: str | java.lang.String, /) -> TimeZone: ...
    @typing.overload
    @staticmethod
    def getTimeZone(ID: str | java.lang.String, type: int | java.jint | java.lang.Integer, /) -> TimeZone: ...
    @staticmethod
    def getWindowsID(id: str | java.lang.String, /) -> str: ...
    def hasSameRules(self, other: TimeZone, /) -> bool: ...
    def hashCode(self) -> int: ...
    def inDaylightTime(self, arg1: java.util.Date, /) -> bool: ...
    def isFrozen(self) -> bool: ...
    def observesDaylightTime(self) -> bool: ...
    def setID(self, ID: str | java.lang.String, /) -> None: ...
    def setRawOffset(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...
    def useDaylightTime(self) -> bool: ...

    class SystemTimeZoneType(java.lang.Enum[TimeZone.SystemTimeZoneType]):
        ANY: typing.ClassVar[TimeZone.SystemTimeZoneType] = ...
        CANONICAL: typing.ClassVar[TimeZone.SystemTimeZoneType] = ...
        CANONICAL_LOCATION: typing.ClassVar[TimeZone.SystemTimeZoneType] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> TimeZone.SystemTimeZoneType: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[TimeZone.SystemTimeZoneType]: ...

class ULocale(java.io.Serializable, java.lang.Comparable[ULocale]):
    CANADA: typing.ClassVar[ULocale] = ...
    CANADA_FRENCH: typing.ClassVar[ULocale] = ...
    CHINA: typing.ClassVar[ULocale] = ...
    CHINESE: typing.ClassVar[ULocale] = ...
    ENGLISH: typing.ClassVar[ULocale] = ...
    FRANCE: typing.ClassVar[ULocale] = ...
    FRENCH: typing.ClassVar[ULocale] = ...
    GERMAN: typing.ClassVar[ULocale] = ...
    GERMANY: typing.ClassVar[ULocale] = ...
    ITALIAN: typing.ClassVar[ULocale] = ...
    ITALY: typing.ClassVar[ULocale] = ...
    JAPAN: typing.ClassVar[ULocale] = ...
    JAPANESE: typing.ClassVar[ULocale] = ...
    KOREA: typing.ClassVar[ULocale] = ...
    KOREAN: typing.ClassVar[ULocale] = ...
    PRC: typing.ClassVar[ULocale] = ...
    PRIVATE_USE_EXTENSION: typing.ClassVar[str] = ...
    ROOT: typing.ClassVar[ULocale] = ...
    SIMPLIFIED_CHINESE: typing.ClassVar[ULocale] = ...
    TAIWAN: typing.ClassVar[ULocale] = ...
    TRADITIONAL_CHINESE: typing.ClassVar[ULocale] = ...
    UK: typing.ClassVar[ULocale] = ...
    UNICODE_LOCALE_EXTENSION: typing.ClassVar[str] = ...
    US: typing.ClassVar[ULocale] = ...
    @typing.overload
    def __init__(self, localeID: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, a: str | java.lang.String, b: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, a: str | java.lang.String, b: str | java.lang.String, c: str | java.lang.String, /) -> None: ...
    @typing.overload
    @staticmethod
    def acceptLanguage(acceptLanguageList: str | java.lang.String, fallback: java.chaquopy.JavaArrayJBoolean, /) -> ULocale | None: ...
    @typing.overload
    @staticmethod
    def acceptLanguage(acceptLanguageList: java.chaquopy.JavaArray[ULocale], fallback: java.chaquopy.JavaArrayJBoolean, /) -> ULocale | None: ...
    @typing.overload
    @staticmethod
    def acceptLanguage(acceptLanguageList: str | java.lang.String, availableLocales: java.chaquopy.JavaArray[ULocale], fallback: java.chaquopy.JavaArrayJBoolean, /) -> ULocale | None: ...
    @typing.overload
    @staticmethod
    def acceptLanguage(acceptLanguageList: java.chaquopy.JavaArray[ULocale], availableLocales: java.chaquopy.JavaArray[ULocale], fallback: java.chaquopy.JavaArrayJBoolean, /) -> ULocale | None: ...
    @staticmethod
    def addLikelySubtags(loc: ULocale, /) -> ULocale: ...
    @staticmethod
    def canonicalize(localeID: str | java.lang.String, /) -> str: ...
    def clone(self) -> java.lang.Object: ...
    def compareTo(self, other: ULocale, /) -> int: ...
    @typing.overload
    @staticmethod
    def createCanonical(locale: ULocale, /) -> ULocale: ...
    @typing.overload
    @staticmethod
    def createCanonical(nonCanonicalID: str | java.lang.String, /) -> ULocale: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    @staticmethod
    def forLanguageTag(languageTag: str | java.lang.String, /) -> ULocale: ...
    @staticmethod
    def forLocale(loc: java.util.Locale, /) -> ULocale: ...
    @staticmethod
    def getAvailableLocales() -> java.chaquopy.JavaArray[ULocale]: ...
    @staticmethod
    def getAvailableLocalesByType(type: ULocale.AvailableType, /) -> java.util.Collection[ULocale]: ...
    @typing.overload
    def getBaseName(self) -> str: ...
    @typing.overload
    @staticmethod
    def getBaseName(localeID: str | java.lang.String, /) -> str: ...
    def getCharacterOrientation(self) -> str: ...
    @typing.overload
    def getCountry(self) -> str: ...
    @typing.overload
    @staticmethod
    def getCountry(localeID: str | java.lang.String, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDefault() -> ULocale: ...
    @typing.overload
    @staticmethod
    def getDefault(category: ULocale.Category, /) -> ULocale: ...
    @typing.overload
    def getDisplayCountry(self) -> str: ...
    @typing.overload
    def getDisplayCountry(self, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayCountry(localeID: str | java.lang.String, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayCountry(localeID: str | java.lang.String, displayLocaleID: str | java.lang.String, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayKeyword(keyword: str | java.lang.String, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayKeyword(keyword: str | java.lang.String, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayKeyword(keyword: str | java.lang.String, displayLocaleID: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getDisplayKeywordValue(self, keyword: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getDisplayKeywordValue(self, keyword: str | java.lang.String, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayKeywordValue(localeID: str | java.lang.String, keyword: str | java.lang.String, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayKeywordValue(localeID: str | java.lang.String, keyword: str | java.lang.String, displayLocaleID: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getDisplayLanguage(self) -> str: ...
    @typing.overload
    def getDisplayLanguage(self, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayLanguage(localeID: str | java.lang.String, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayLanguage(localeID: str | java.lang.String, displayLocaleID: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getDisplayLanguageWithDialect(self) -> str: ...
    @typing.overload
    def getDisplayLanguageWithDialect(self, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayLanguageWithDialect(localeID: str | java.lang.String, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayLanguageWithDialect(localeID: str | java.lang.String, displayLocaleID: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getDisplayName(self) -> str: ...
    @typing.overload
    def getDisplayName(self, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayName(localeID: str | java.lang.String, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayName(localeID: str | java.lang.String, displayLocaleID: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getDisplayNameWithDialect(self) -> str: ...
    @typing.overload
    def getDisplayNameWithDialect(self, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayNameWithDialect(localeID: str | java.lang.String, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayNameWithDialect(localeID: str | java.lang.String, displayLocaleID: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getDisplayScript(self) -> str: ...
    @typing.overload
    def getDisplayScript(self, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayScript(localeID: str | java.lang.String, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayScript(localeID: str | java.lang.String, displayLocaleID: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getDisplayVariant(self) -> str: ...
    @typing.overload
    def getDisplayVariant(self, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayVariant(localeID: str | java.lang.String, displayLocale: ULocale, /) -> str: ...
    @typing.overload
    @staticmethod
    def getDisplayVariant(localeID: str | java.lang.String, displayLocaleID: str | java.lang.String, /) -> str: ...
    def getExtension(self, key: str | java.jchar | java.lang.Character, /) -> str | None: ...
    def getExtensionKeys(self) -> java.util.Set[java.lang.Character]: ...
    @typing.overload
    def getFallback(self) -> ULocale: ...
    @typing.overload
    @staticmethod
    def getFallback(localeID: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getISO3Country(self) -> str: ...
    @typing.overload
    @staticmethod
    def getISO3Country(localeID: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getISO3Language(self) -> str: ...
    @typing.overload
    @staticmethod
    def getISO3Language(localeID: str | java.lang.String, /) -> str: ...
    @staticmethod
    def getISOCountries() -> java.chaquopy.JavaArray[java.lang.String]: ...
    @staticmethod
    def getISOLanguages() -> java.chaquopy.JavaArray[java.lang.String]: ...
    @typing.overload
    def getKeywordValue(self, keywordName: str | java.lang.String, /) -> str | None: ...
    @typing.overload
    @staticmethod
    def getKeywordValue(localeID: str | java.lang.String, keywordName: str | java.lang.String, /) -> str | None: ...
    @typing.overload
    def getKeywords(self) -> java.util.Iterator[java.lang.String] | None: ...
    @typing.overload
    @staticmethod
    def getKeywords(localeID: str | java.lang.String, /) -> java.util.Iterator[java.lang.String] | None: ...
    @typing.overload
    def getLanguage(self) -> str: ...
    @typing.overload
    @staticmethod
    def getLanguage(localeID: str | java.lang.String, /) -> str: ...
    def getLineOrientation(self) -> str: ...
    @typing.overload
    def getName(self) -> str: ...
    @typing.overload
    @staticmethod
    def getName(localeID: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getScript(self) -> str: ...
    @typing.overload
    @staticmethod
    def getScript(localeID: str | java.lang.String, /) -> str: ...
    def getUnicodeLocaleAttributes(self) -> java.util.Set[java.lang.String]: ...
    def getUnicodeLocaleKeys(self) -> java.util.Set[java.lang.String]: ...
    def getUnicodeLocaleType(self, key: str | java.lang.String, /) -> str | None: ...
    @typing.overload
    def getVariant(self) -> str: ...
    @typing.overload
    @staticmethod
    def getVariant(localeID: str | java.lang.String, /) -> str: ...
    def hashCode(self) -> int: ...
    def isRightToLeft(self) -> bool: ...
    @staticmethod
    def minimizeSubtags(loc: ULocale, /) -> ULocale: ...
    @typing.overload
    def setKeywordValue(self, keyword: str | java.lang.String, value: str | java.lang.String, /) -> ULocale: ...
    @typing.overload
    @staticmethod
    def setKeywordValue(localeID: str | java.lang.String, keyword: str | java.lang.String, value: str | java.lang.String, /) -> str: ...
    def toLanguageTag(self) -> str: ...
    @staticmethod
    def toLegacyKey(keyword: str | java.lang.String, /) -> str | None: ...
    @staticmethod
    def toLegacyType(keyword: str | java.lang.String, value: str | java.lang.String, /) -> str | None: ...
    def toLocale(self) -> java.util.Locale: ...
    def toString(self) -> str: ...
    @staticmethod
    def toUnicodeLocaleKey(keyword: str | java.lang.String, /) -> str | None: ...
    @staticmethod
    def toUnicodeLocaleType(keyword: str | java.lang.String, value: str | java.lang.String, /) -> str | None: ...

    class Category(java.lang.Enum[ULocale.Category]):
        DISPLAY: typing.ClassVar[ULocale.Category] = ...
        FORMAT: typing.ClassVar[ULocale.Category] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> ULocale.Category: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[ULocale.Category]: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def addUnicodeLocaleAttribute(self, attribute: str | java.lang.String, /) -> ULocale.Builder: ...
        def build(self) -> ULocale: ...
        def clear(self) -> ULocale.Builder: ...
        def clearExtensions(self) -> ULocale.Builder: ...
        def removeUnicodeLocaleAttribute(self, attribute: str | java.lang.String, /) -> ULocale.Builder: ...
        def setExtension(self, key: str | java.jchar | java.lang.Character, value: str | java.lang.String, /) -> ULocale.Builder: ...
        def setLanguage(self, language: str | java.lang.String, /) -> ULocale.Builder: ...
        def setLanguageTag(self, languageTag: str | java.lang.String, /) -> ULocale.Builder: ...
        def setLocale(self, locale: ULocale, /) -> ULocale.Builder: ...
        def setRegion(self, region: str | java.lang.String, /) -> ULocale.Builder: ...
        def setScript(self, script: str | java.lang.String, /) -> ULocale.Builder: ...
        def setUnicodeLocaleKeyword(self, key: str | java.lang.String, type: str | java.lang.String, /) -> ULocale.Builder: ...
        def setVariant(self, variant: str | java.lang.String, /) -> ULocale.Builder: ...

    class AvailableType(java.lang.Enum[ULocale.AvailableType]):
        DEFAULT: typing.ClassVar[ULocale.AvailableType] = ...
        ONLY_LEGACY_ALIASES: typing.ClassVar[ULocale.AvailableType] = ...
        WITH_LEGACY_ALIASES: typing.ClassVar[ULocale.AvailableType] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> ULocale.AvailableType: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[ULocale.AvailableType]: ...

class UniversalTimeScale(java.lang.Object):
    DB2_TIME: typing.ClassVar[int] = ...
    DOTNET_DATE_TIME: typing.ClassVar[int] = ...
    EPOCH_OFFSET_PLUS_1_VALUE: typing.ClassVar[int] = ...
    EPOCH_OFFSET_VALUE: typing.ClassVar[int] = ...
    EXCEL_TIME: typing.ClassVar[int] = ...
    FROM_MAX_VALUE: typing.ClassVar[int] = ...
    FROM_MIN_VALUE: typing.ClassVar[int] = ...
    ICU4C_TIME: typing.ClassVar[int] = ...
    JAVA_TIME: typing.ClassVar[int] = ...
    MAC_OLD_TIME: typing.ClassVar[int] = ...
    MAC_TIME: typing.ClassVar[int] = ...
    MAX_SCALE: typing.ClassVar[int] = ...
    TO_MAX_VALUE: typing.ClassVar[int] = ...
    TO_MIN_VALUE: typing.ClassVar[int] = ...
    UNITS_VALUE: typing.ClassVar[int] = ...
    UNIX_MICROSECONDS_TIME: typing.ClassVar[int] = ...
    UNIX_TIME: typing.ClassVar[int] = ...
    WINDOWS_FILE_TIME: typing.ClassVar[int] = ...
    @typing.overload
    @staticmethod
    def bigDecimalFrom(otherTime: float | java.jdouble | java.lang.Double, timeScale: int | java.jint | java.lang.Integer, /) -> android.icu.math.BigDecimal: ...
    @typing.overload
    @staticmethod
    def bigDecimalFrom(otherTime: int | java.jlong | java.lang.Long, timeScale: int | java.jint | java.lang.Integer, /) -> android.icu.math.BigDecimal: ...
    @typing.overload
    @staticmethod
    def bigDecimalFrom(otherTime: android.icu.math.BigDecimal, timeScale: int | java.jint | java.lang.Integer, /) -> android.icu.math.BigDecimal: ...
    @staticmethod
    def from_(otherTime: int | java.jlong | java.lang.Long, timeScale: int | java.jint | java.lang.Integer, /) -> int: ...
    @staticmethod
    def getTimeScaleValue(scale: int | java.jint | java.lang.Integer, value: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    @staticmethod
    def toBigDecimal(universalTime: int | java.jlong | java.lang.Long, timeScale: int | java.jint | java.lang.Integer, /) -> android.icu.math.BigDecimal: ...
    @typing.overload
    @staticmethod
    def toBigDecimal(universalTime: android.icu.math.BigDecimal, timeScale: int | java.jint | java.lang.Integer, /) -> android.icu.math.BigDecimal: ...
    @staticmethod
    def toLong(universalTime: int | java.jlong | java.lang.Long, timeScale: int | java.jint | java.lang.Integer, /) -> int: ...

class ValueIterator(java.lang.Object):
    def next(self, arg1: ValueIterator.Element, /) -> bool: ...
    def reset(self) -> None: ...
    def setRange(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, /) -> None: ...

    class Element(java.lang.Object):
        integer: int = ...
        value: java.lang.Object = ...
        def __init__(self) -> None: ...

class VersionInfo(java.lang.Comparable[VersionInfo]):
    ICU_VERSION: typing.ClassVar[VersionInfo] = ...
    UCOL_BUILDER_VERSION: typing.ClassVar[VersionInfo] = ...
    UCOL_RUNTIME_VERSION: typing.ClassVar[VersionInfo] = ...
    UNICODE_10_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_11_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_12_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_12_1: typing.ClassVar[VersionInfo] = ...
    UNICODE_13_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_14_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_15_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_15_1: typing.ClassVar[VersionInfo] = ...
    UNICODE_16_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_1_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_1_0_1: typing.ClassVar[VersionInfo] = ...
    UNICODE_1_1_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_1_1_5: typing.ClassVar[VersionInfo] = ...
    UNICODE_2_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_2_1_2: typing.ClassVar[VersionInfo] = ...
    UNICODE_2_1_5: typing.ClassVar[VersionInfo] = ...
    UNICODE_2_1_8: typing.ClassVar[VersionInfo] = ...
    UNICODE_2_1_9: typing.ClassVar[VersionInfo] = ...
    UNICODE_3_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_3_0_1: typing.ClassVar[VersionInfo] = ...
    UNICODE_3_1_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_3_1_1: typing.ClassVar[VersionInfo] = ...
    UNICODE_3_2: typing.ClassVar[VersionInfo] = ...
    UNICODE_4_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_4_0_1: typing.ClassVar[VersionInfo] = ...
    UNICODE_4_1: typing.ClassVar[VersionInfo] = ...
    UNICODE_5_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_5_1: typing.ClassVar[VersionInfo] = ...
    UNICODE_5_2: typing.ClassVar[VersionInfo] = ...
    UNICODE_6_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_6_1: typing.ClassVar[VersionInfo] = ...
    UNICODE_6_2: typing.ClassVar[VersionInfo] = ...
    UNICODE_6_3: typing.ClassVar[VersionInfo] = ...
    UNICODE_7_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_8_0: typing.ClassVar[VersionInfo] = ...
    UNICODE_9_0: typing.ClassVar[VersionInfo] = ...
    def compareTo(self, other: VersionInfo, /) -> int: ...
    def equals(self, other: java.lang.Object | int | bool | float | str, /) -> bool: ...
    @typing.overload
    @staticmethod
    def getInstance(major: int | java.jint | java.lang.Integer, /) -> VersionInfo: ...
    @typing.overload
    @staticmethod
    def getInstance(version: str | java.lang.String, /) -> VersionInfo: ...
    @typing.overload
    @staticmethod
    def getInstance(major: int | java.jint | java.lang.Integer, minor: int | java.jint | java.lang.Integer, /) -> VersionInfo: ...
    @typing.overload
    @staticmethod
    def getInstance(major: int | java.jint | java.lang.Integer, minor: int | java.jint | java.lang.Integer, milli: int | java.jint | java.lang.Integer, /) -> VersionInfo: ...
    @typing.overload
    @staticmethod
    def getInstance(major: int | java.jint | java.lang.Integer, minor: int | java.jint | java.lang.Integer, milli: int | java.jint | java.lang.Integer, micro: int | java.jint | java.lang.Integer, /) -> VersionInfo: ...
    def getMajor(self) -> int: ...
    def getMicro(self) -> int: ...
    def getMilli(self) -> int: ...
    def getMinor(self) -> int: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
