import typing

import java
import java.chaquopy
import java.io
import java.lang
import java.text
import java.util

class NumericShaper(java.io.Serializable):
    ALL_RANGES: typing.ClassVar[int] = ...
    ARABIC: typing.ClassVar[int] = ...
    BENGALI: typing.ClassVar[int] = ...
    DEVANAGARI: typing.ClassVar[int] = ...
    EASTERN_ARABIC: typing.ClassVar[int] = ...
    ETHIOPIC: typing.ClassVar[int] = ...
    EUROPEAN: typing.ClassVar[int] = ...
    GUJARATI: typing.ClassVar[int] = ...
    GURMUKHI: typing.ClassVar[int] = ...
    KANNADA: typing.ClassVar[int] = ...
    KHMER: typing.ClassVar[int] = ...
    LAO: typing.ClassVar[int] = ...
    MALAYALAM: typing.ClassVar[int] = ...
    MONGOLIAN: typing.ClassVar[int] = ...
    MYANMAR: typing.ClassVar[int] = ...
    ORIYA: typing.ClassVar[int] = ...
    TAMIL: typing.ClassVar[int] = ...
    TELUGU: typing.ClassVar[int] = ...
    THAI: typing.ClassVar[int] = ...
    TIBETAN: typing.ClassVar[int] = ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    @typing.overload
    @staticmethod
    def getContextualShaper(ranges: int | java.jint | java.lang.Integer, /) -> NumericShaper: ...
    @typing.overload
    @staticmethod
    def getContextualShaper(ranges: java.util.Set[NumericShaper.Range], /) -> NumericShaper: ...
    @typing.overload
    @staticmethod
    def getContextualShaper(ranges: int | java.jint | java.lang.Integer, defaultContext: int | java.jint | java.lang.Integer, /) -> NumericShaper: ...
    @typing.overload
    @staticmethod
    def getContextualShaper(ranges: java.util.Set[NumericShaper.Range], defaultContext: NumericShaper.Range, /) -> NumericShaper: ...
    def getRangeSet(self) -> java.util.Set[NumericShaper.Range]: ...
    def getRanges(self) -> int: ...
    @typing.overload
    @staticmethod
    def getShaper(singleRange: int | java.jint | java.lang.Integer, /) -> NumericShaper: ...
    @typing.overload
    @staticmethod
    def getShaper(singleRange: NumericShaper.Range, /) -> NumericShaper: ...
    def hashCode(self) -> int: ...
    def isContextual(self) -> bool: ...
    @typing.overload
    def shape(self, text: java.chaquopy.JavaArrayJChar, start: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def shape(self, text: java.chaquopy.JavaArrayJChar, start: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, context: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def shape(self, text: java.chaquopy.JavaArrayJChar, start: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, context: NumericShaper.Range, /) -> None: ...
    def toString(self) -> str: ...

    class Range(java.lang.Enum[NumericShaper.Range]):
        ARABIC: typing.ClassVar[NumericShaper.Range] = ...
        BALINESE: typing.ClassVar[NumericShaper.Range] = ...
        BENGALI: typing.ClassVar[NumericShaper.Range] = ...
        CHAM: typing.ClassVar[NumericShaper.Range] = ...
        DEVANAGARI: typing.ClassVar[NumericShaper.Range] = ...
        EASTERN_ARABIC: typing.ClassVar[NumericShaper.Range] = ...
        ETHIOPIC: typing.ClassVar[NumericShaper.Range] = ...
        EUROPEAN: typing.ClassVar[NumericShaper.Range] = ...
        GUJARATI: typing.ClassVar[NumericShaper.Range] = ...
        GURMUKHI: typing.ClassVar[NumericShaper.Range] = ...
        JAVANESE: typing.ClassVar[NumericShaper.Range] = ...
        KANNADA: typing.ClassVar[NumericShaper.Range] = ...
        KAYAH_LI: typing.ClassVar[NumericShaper.Range] = ...
        KHMER: typing.ClassVar[NumericShaper.Range] = ...
        LAO: typing.ClassVar[NumericShaper.Range] = ...
        LEPCHA: typing.ClassVar[NumericShaper.Range] = ...
        LIMBU: typing.ClassVar[NumericShaper.Range] = ...
        MALAYALAM: typing.ClassVar[NumericShaper.Range] = ...
        MEETEI_MAYEK: typing.ClassVar[NumericShaper.Range] = ...
        MONGOLIAN: typing.ClassVar[NumericShaper.Range] = ...
        MYANMAR: typing.ClassVar[NumericShaper.Range] = ...
        MYANMAR_SHAN: typing.ClassVar[NumericShaper.Range] = ...
        NEW_TAI_LUE: typing.ClassVar[NumericShaper.Range] = ...
        NKO: typing.ClassVar[NumericShaper.Range] = ...
        OL_CHIKI: typing.ClassVar[NumericShaper.Range] = ...
        ORIYA: typing.ClassVar[NumericShaper.Range] = ...
        SAURASHTRA: typing.ClassVar[NumericShaper.Range] = ...
        SUNDANESE: typing.ClassVar[NumericShaper.Range] = ...
        TAI_THAM_HORA: typing.ClassVar[NumericShaper.Range] = ...
        TAI_THAM_THAM: typing.ClassVar[NumericShaper.Range] = ...
        TAMIL: typing.ClassVar[NumericShaper.Range] = ...
        TELUGU: typing.ClassVar[NumericShaper.Range] = ...
        THAI: typing.ClassVar[NumericShaper.Range] = ...
        TIBETAN: typing.ClassVar[NumericShaper.Range] = ...
        VAI: typing.ClassVar[NumericShaper.Range] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> NumericShaper.Range: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[NumericShaper.Range]: ...

class TextAttribute(java.text.AttributedCharacterIterator.Attribute):
    BACKGROUND: typing.ClassVar[TextAttribute] = ...
    BIDI_EMBEDDING: typing.ClassVar[TextAttribute] = ...
    CHAR_REPLACEMENT: typing.ClassVar[TextAttribute] = ...
    FAMILY: typing.ClassVar[TextAttribute] = ...
    FONT: typing.ClassVar[TextAttribute] = ...
    FOREGROUND: typing.ClassVar[TextAttribute] = ...
    INPUT_METHOD_HIGHLIGHT: typing.ClassVar[TextAttribute] = ...
    INPUT_METHOD_UNDERLINE: typing.ClassVar[TextAttribute] = ...
    JUSTIFICATION: typing.ClassVar[TextAttribute] = ...
    JUSTIFICATION_FULL: typing.ClassVar[float] = ...
    JUSTIFICATION_NONE: typing.ClassVar[float] = ...
    KERNING: typing.ClassVar[TextAttribute] = ...
    KERNING_ON: typing.ClassVar[int] = ...
    LIGATURES: typing.ClassVar[TextAttribute] = ...
    LIGATURES_ON: typing.ClassVar[int] = ...
    NUMERIC_SHAPING: typing.ClassVar[TextAttribute] = ...
    POSTURE: typing.ClassVar[TextAttribute] = ...
    POSTURE_OBLIQUE: typing.ClassVar[float] = ...
    POSTURE_REGULAR: typing.ClassVar[float] = ...
    RUN_DIRECTION: typing.ClassVar[TextAttribute] = ...
    RUN_DIRECTION_LTR: typing.ClassVar[bool] = ...
    RUN_DIRECTION_RTL: typing.ClassVar[bool] = ...
    SIZE: typing.ClassVar[TextAttribute] = ...
    STRIKETHROUGH: typing.ClassVar[TextAttribute] = ...
    STRIKETHROUGH_ON: typing.ClassVar[bool] = ...
    SUPERSCRIPT: typing.ClassVar[TextAttribute] = ...
    SUPERSCRIPT_SUB: typing.ClassVar[int] = ...
    SUPERSCRIPT_SUPER: typing.ClassVar[int] = ...
    SWAP_COLORS: typing.ClassVar[TextAttribute] = ...
    SWAP_COLORS_ON: typing.ClassVar[bool] = ...
    TRACKING: typing.ClassVar[TextAttribute] = ...
    TRACKING_LOOSE: typing.ClassVar[float] = ...
    TRACKING_TIGHT: typing.ClassVar[float] = ...
    TRANSFORM: typing.ClassVar[TextAttribute] = ...
    UNDERLINE: typing.ClassVar[TextAttribute] = ...
    UNDERLINE_LOW_DASHED: typing.ClassVar[int] = ...
    UNDERLINE_LOW_DOTTED: typing.ClassVar[int] = ...
    UNDERLINE_LOW_GRAY: typing.ClassVar[int] = ...
    UNDERLINE_LOW_ONE_PIXEL: typing.ClassVar[int] = ...
    UNDERLINE_LOW_TWO_PIXEL: typing.ClassVar[int] = ...
    UNDERLINE_ON: typing.ClassVar[int] = ...
    WEIGHT: typing.ClassVar[TextAttribute] = ...
    WEIGHT_BOLD: typing.ClassVar[float] = ...
    WEIGHT_DEMIBOLD: typing.ClassVar[float] = ...
    WEIGHT_DEMILIGHT: typing.ClassVar[float] = ...
    WEIGHT_EXTRABOLD: typing.ClassVar[float] = ...
    WEIGHT_EXTRA_LIGHT: typing.ClassVar[float] = ...
    WEIGHT_HEAVY: typing.ClassVar[float] = ...
    WEIGHT_LIGHT: typing.ClassVar[float] = ...
    WEIGHT_MEDIUM: typing.ClassVar[float] = ...
    WEIGHT_REGULAR: typing.ClassVar[float] = ...
    WEIGHT_SEMIBOLD: typing.ClassVar[float] = ...
    WEIGHT_ULTRABOLD: typing.ClassVar[float] = ...
    WIDTH: typing.ClassVar[TextAttribute] = ...
    WIDTH_CONDENSED: typing.ClassVar[float] = ...
    WIDTH_EXTENDED: typing.ClassVar[float] = ...
    WIDTH_REGULAR: typing.ClassVar[float] = ...
    WIDTH_SEMI_CONDENSED: typing.ClassVar[float] = ...
    WIDTH_SEMI_EXTENDED: typing.ClassVar[float] = ...
    def __init__(self, name: str | java.lang.String, /) -> None: ...
    def readResolve(self) -> java.lang.Object: ...
