import typing

import android.content
import android.content.res
import android.graphics.drawable
import android.graphics.fonts
import android.graphics.text
import android.hardware
import android.net
import android.os
import android.util
import android.view
import java
import java.chaquopy
import java.io
import java.lang
import java.nio
import java.util
import java.util.concurrent
import java.util.function

class Bitmap(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[Bitmap]] = ...
    DENSITY_NONE: typing.ClassVar[int] = ...
    def asShared(self) -> Bitmap: ...
    def compress(self, format: Bitmap.CompressFormat, quality: int | java.jint | java.lang.Integer, stream: java.io.OutputStream, /) -> bool: ...
    def copy(self, config: Bitmap.Config, isMutable: bool | java.jboolean | java.lang.Boolean, /) -> Bitmap | None: ...
    def copyPixelsFromBuffer(self, src: java.nio.Buffer, /) -> None: ...
    def copyPixelsToBuffer(self, dst: java.nio.Buffer, /) -> None: ...
    @typing.overload
    @staticmethod
    def createBitmap(src: Bitmap, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(source: Picture, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, config: Bitmap.Config, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, config: Bitmap.Config, hasAlpha: bool | java.jboolean | java.lang.Boolean, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(source: Picture, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, config: Bitmap.Config, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(display: android.util.DisplayMetrics, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, config: Bitmap.Config, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(colors: java.chaquopy.JavaArrayJInt, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, config: Bitmap.Config, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, config: Bitmap.Config, hasAlpha: bool | java.jboolean | java.lang.Boolean, colorSpace: ColorSpace, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(source: Bitmap, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(display: android.util.DisplayMetrics, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, config: Bitmap.Config, hasAlpha: bool | java.jboolean | java.lang.Boolean, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(display: android.util.DisplayMetrics, colors: java.chaquopy.JavaArrayJInt, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, config: Bitmap.Config, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(display: android.util.DisplayMetrics, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, config: Bitmap.Config, hasAlpha: bool | java.jboolean | java.lang.Boolean, colorSpace: ColorSpace, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(colors: java.chaquopy.JavaArrayJInt, offset: int | java.jint | java.lang.Integer, stride: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, config: Bitmap.Config, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(source: Bitmap, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, m: Matrix, filter: bool | java.jboolean | java.lang.Boolean, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def createBitmap(display: android.util.DisplayMetrics, colors: java.chaquopy.JavaArrayJInt, offset: int | java.jint | java.lang.Integer, stride: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, config: Bitmap.Config, /) -> Bitmap: ...
    @staticmethod
    def createScaledBitmap(src: Bitmap, dstWidth: int | java.jint | java.lang.Integer, dstHeight: int | java.jint | java.lang.Integer, filter: bool | java.jboolean | java.lang.Boolean, /) -> Bitmap: ...
    def describeContents(self) -> int: ...
    @typing.overload
    def eraseColor(self, c: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def eraseColor(self, color: int | java.jlong | java.lang.Long, /) -> None: ...
    @typing.overload
    def extractAlpha(self) -> Bitmap: ...
    @typing.overload
    def extractAlpha(self, paint: Paint, offsetXY: java.chaquopy.JavaArrayJInt, /) -> Bitmap: ...
    def getAllocationByteCount(self) -> int: ...
    def getByteCount(self) -> int: ...
    def getColor(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, /) -> Color: ...
    def getColorSpace(self) -> ColorSpace | None: ...
    def getConfig(self) -> Bitmap.Config | None: ...
    def getDensity(self) -> int: ...
    def getGainmap(self) -> Gainmap | None: ...
    def getGenerationId(self) -> int: ...
    def getHardwareBuffer(self) -> android.hardware.HardwareBuffer: ...
    def getHeight(self) -> int: ...
    def getNinePatchChunk(self) -> java.chaquopy.JavaArrayJByte | None: ...
    def getPixel(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, /) -> int: ...
    def getPixels(self, pixels: java.chaquopy.JavaArrayJInt, offset: int | java.jint | java.lang.Integer, stride: int | java.jint | java.lang.Integer, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, /) -> None: ...
    def getRowBytes(self) -> int: ...
    @typing.overload
    def getScaledHeight(self, targetDensity: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def getScaledHeight(self, canvas: Canvas, /) -> int: ...
    @typing.overload
    def getScaledHeight(self, metrics: android.util.DisplayMetrics, /) -> int: ...
    @typing.overload
    def getScaledWidth(self, targetDensity: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def getScaledWidth(self, canvas: Canvas, /) -> int: ...
    @typing.overload
    def getScaledWidth(self, metrics: android.util.DisplayMetrics, /) -> int: ...
    def getWidth(self) -> int: ...
    def hasAlpha(self) -> bool: ...
    def hasGainmap(self) -> bool: ...
    def hasMipMap(self) -> bool: ...
    def isMutable(self) -> bool: ...
    def isPremultiplied(self) -> bool: ...
    def isRecycled(self) -> bool: ...
    def prepareToDraw(self) -> None: ...
    def reconfigure(self, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, config: Bitmap.Config, /) -> None: ...
    def recycle(self) -> None: ...
    def sameAs(self, other: Bitmap, /) -> bool: ...
    def setColorSpace(self, colorSpace: ColorSpace, /) -> None: ...
    def setConfig(self, config: Bitmap.Config, /) -> None: ...
    def setDensity(self, density: int | java.jint | java.lang.Integer, /) -> None: ...
    def setGainmap(self, gainmap: Gainmap, /) -> None: ...
    def setHasAlpha(self, hasAlpha: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setHasMipMap(self, hasMipMap: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setHeight(self, height: int | java.jint | java.lang.Integer, /) -> None: ...
    def setPixel(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, color: int | java.jint | java.lang.Integer, /) -> None: ...
    def setPixels(self, pixels: java.chaquopy.JavaArrayJInt, offset: int | java.jint | java.lang.Integer, stride: int | java.jint | java.lang.Integer, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, /) -> None: ...
    def setPremultiplied(self, premultiplied: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setWidth(self, width: int | java.jint | java.lang.Integer, /) -> None: ...
    @staticmethod
    def wrapHardwareBuffer(hardwareBuffer: android.hardware.HardwareBuffer, colorSpace: ColorSpace, /) -> Bitmap | None: ...
    def writeToParcel(self, p: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Config(java.lang.Enum[Bitmap.Config]):
        ALPHA_8: typing.ClassVar[Bitmap.Config] = ...
        ARGB_4444: typing.ClassVar[Bitmap.Config] = ...
        ARGB_8888: typing.ClassVar[Bitmap.Config] = ...
        HARDWARE: typing.ClassVar[Bitmap.Config] = ...
        RGBA_1010102: typing.ClassVar[Bitmap.Config] = ...
        RGBA_F16: typing.ClassVar[Bitmap.Config] = ...
        RGB_565: typing.ClassVar[Bitmap.Config] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Bitmap.Config: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Bitmap.Config]: ...

    class CompressFormat(java.lang.Enum[Bitmap.CompressFormat]):
        JPEG: typing.ClassVar[Bitmap.CompressFormat] = ...
        PNG: typing.ClassVar[Bitmap.CompressFormat] = ...
        WEBP: typing.ClassVar[Bitmap.CompressFormat] = ...
        WEBP_LOSSLESS: typing.ClassVar[Bitmap.CompressFormat] = ...
        WEBP_LOSSY: typing.ClassVar[Bitmap.CompressFormat] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Bitmap.CompressFormat: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Bitmap.CompressFormat]: ...

class BitmapFactory(java.lang.Object):
    def __init__(self) -> None: ...
    @typing.overload
    @staticmethod
    def decodeByteArray(data: java.chaquopy.JavaArrayJByte, offset: int | java.jint | java.lang.Integer, length: int | java.jint | java.lang.Integer, /) -> Bitmap | None: ...
    @typing.overload
    @staticmethod
    def decodeByteArray(data: java.chaquopy.JavaArrayJByte, offset: int | java.jint | java.lang.Integer, length: int | java.jint | java.lang.Integer, opts: BitmapFactory.Options, /) -> Bitmap | None: ...
    @typing.overload
    @staticmethod
    def decodeFile(pathName: str | java.lang.String, /) -> Bitmap | None: ...
    @typing.overload
    @staticmethod
    def decodeFile(pathName: str | java.lang.String, opts: BitmapFactory.Options, /) -> Bitmap | None: ...
    @typing.overload
    @staticmethod
    def decodeFileDescriptor(fd: java.io.FileDescriptor, /) -> Bitmap | None: ...
    @typing.overload
    @staticmethod
    def decodeFileDescriptor(fd: java.io.FileDescriptor, outPadding: Rect, opts: BitmapFactory.Options, /) -> Bitmap | None: ...
    @typing.overload
    @staticmethod
    def decodeResource(res: android.content.res.Resources, id: int | java.jint | java.lang.Integer, /) -> Bitmap | None: ...
    @typing.overload
    @staticmethod
    def decodeResource(res: android.content.res.Resources, id: int | java.jint | java.lang.Integer, opts: BitmapFactory.Options, /) -> Bitmap | None: ...
    @staticmethod
    def decodeResourceStream(res: android.content.res.Resources, value: android.util.TypedValue, is_: java.io.InputStream, pad: Rect, opts: BitmapFactory.Options, /) -> Bitmap | None: ...
    @typing.overload
    @staticmethod
    def decodeStream(is_: java.io.InputStream, /) -> Bitmap | None: ...
    @typing.overload
    @staticmethod
    def decodeStream(is_: java.io.InputStream, outPadding: Rect, opts: BitmapFactory.Options, /) -> Bitmap | None: ...

    class Options(java.lang.Object):
        inBitmap: Bitmap = ...
        inDensity: int = ...
        inDither: bool = ...
        inInputShareable: bool = ...
        inJustDecodeBounds: bool = ...
        inMutable: bool = ...
        inPreferQualityOverSpeed: bool = ...
        inPreferredColorSpace: ColorSpace = ...
        inPreferredConfig: Bitmap.Config = ...
        inPremultiplied: bool = ...
        inPurgeable: bool = ...
        inSampleSize: int = ...
        inScaled: bool = ...
        inScreenDensity: int = ...
        inTargetDensity: int = ...
        inTempStorage: java.chaquopy.JavaArrayJByte = ...
        mCancel: bool = ...
        outColorSpace: ColorSpace = ...
        outConfig: Bitmap.Config = ...
        outHeight: int = ...
        outMimeType: str = ...
        outWidth: int = ...
        def __init__(self) -> None: ...
        def requestCancelDecode(self) -> None: ...

class BitmapRegionDecoder(java.lang.Object):
    def decodeRegion(self, rect: Rect, options: BitmapFactory.Options, /) -> Bitmap | None: ...
    def finalize(self) -> None: ...
    def getHeight(self) -> int: ...
    def getWidth(self) -> int: ...
    def isRecycled(self) -> bool: ...
    @typing.overload
    @staticmethod
    def newInstance(pfd: android.os.ParcelFileDescriptor, /) -> BitmapRegionDecoder | None: ...
    @typing.overload
    @staticmethod
    def newInstance(is_: java.io.InputStream, /) -> BitmapRegionDecoder | None: ...
    @typing.overload
    @staticmethod
    def newInstance(pathName: str | java.lang.String, /) -> BitmapRegionDecoder | None: ...
    @typing.overload
    @staticmethod
    def newInstance(fd: java.io.FileDescriptor, isShareable: bool | java.jboolean | java.lang.Boolean, /) -> BitmapRegionDecoder | None: ...
    @typing.overload
    @staticmethod
    def newInstance(is_: java.io.InputStream, isShareable: bool | java.jboolean | java.lang.Boolean, /) -> BitmapRegionDecoder | None: ...
    @typing.overload
    @staticmethod
    def newInstance(pathName: str | java.lang.String, isShareable: bool | java.jboolean | java.lang.Boolean, /) -> BitmapRegionDecoder | None: ...
    @typing.overload
    @staticmethod
    def newInstance(data: java.chaquopy.JavaArrayJByte, offset: int | java.jint | java.lang.Integer, length: int | java.jint | java.lang.Integer, /) -> BitmapRegionDecoder | None: ...
    @typing.overload
    @staticmethod
    def newInstance(data: java.chaquopy.JavaArrayJByte, offset: int | java.jint | java.lang.Integer, length: int | java.jint | java.lang.Integer, isShareable: bool | java.jboolean | java.lang.Boolean, /) -> BitmapRegionDecoder | None: ...
    def recycle(self) -> None: ...

class BitmapShader(Shader):
    FILTER_MODE_DEFAULT: typing.ClassVar[int] = ...
    FILTER_MODE_LINEAR: typing.ClassVar[int] = ...
    FILTER_MODE_NEAREST: typing.ClassVar[int] = ...
    def __init__(self, bitmap: Bitmap, tileX: Shader.TileMode, tileY: Shader.TileMode, /) -> None: ...
    def getFilterMode(self) -> int: ...
    def getMaxAnisotropy(self) -> int: ...
    def setFilterMode(self, mode: int | java.jint | java.lang.Integer, /) -> None: ...
    def setMaxAnisotropy(self, maxAnisotropy: int | java.jint | java.lang.Integer, /) -> None: ...
    def setOverrideGainmap(self, overrideGainmap: Gainmap, /) -> None: ...

class BlendMode(java.lang.Enum[BlendMode]):
    CLEAR: typing.ClassVar[BlendMode] = ...
    COLOR: typing.ClassVar[BlendMode] = ...
    COLOR_BURN: typing.ClassVar[BlendMode] = ...
    COLOR_DODGE: typing.ClassVar[BlendMode] = ...
    DARKEN: typing.ClassVar[BlendMode] = ...
    DIFFERENCE: typing.ClassVar[BlendMode] = ...
    DST: typing.ClassVar[BlendMode] = ...
    DST_ATOP: typing.ClassVar[BlendMode] = ...
    DST_IN: typing.ClassVar[BlendMode] = ...
    DST_OUT: typing.ClassVar[BlendMode] = ...
    DST_OVER: typing.ClassVar[BlendMode] = ...
    EXCLUSION: typing.ClassVar[BlendMode] = ...
    HARD_LIGHT: typing.ClassVar[BlendMode] = ...
    HUE: typing.ClassVar[BlendMode] = ...
    LIGHTEN: typing.ClassVar[BlendMode] = ...
    LUMINOSITY: typing.ClassVar[BlendMode] = ...
    MODULATE: typing.ClassVar[BlendMode] = ...
    MULTIPLY: typing.ClassVar[BlendMode] = ...
    OVERLAY: typing.ClassVar[BlendMode] = ...
    PLUS: typing.ClassVar[BlendMode] = ...
    SATURATION: typing.ClassVar[BlendMode] = ...
    SCREEN: typing.ClassVar[BlendMode] = ...
    SOFT_LIGHT: typing.ClassVar[BlendMode] = ...
    SRC: typing.ClassVar[BlendMode] = ...
    SRC_ATOP: typing.ClassVar[BlendMode] = ...
    SRC_IN: typing.ClassVar[BlendMode] = ...
    SRC_OUT: typing.ClassVar[BlendMode] = ...
    SRC_OVER: typing.ClassVar[BlendMode] = ...
    XOR: typing.ClassVar[BlendMode] = ...
    @staticmethod
    def valueOf(name: str | java.lang.String, /) -> BlendMode: ...
    @staticmethod
    def values() -> java.chaquopy.JavaArray[BlendMode]: ...

class BlendModeColorFilter(ColorFilter):
    def __init__(self, color: int | java.jint | java.lang.Integer, mode: BlendMode, /) -> None: ...
    def equals(self, object: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getColor(self) -> int: ...
    def getMode(self) -> BlendMode: ...
    def hashCode(self) -> int: ...

class BlurMaskFilter(MaskFilter):
    def __init__(self, radius: float | java.jfloat | java.lang.Float, style: BlurMaskFilter.Blur, /) -> None: ...

    class Blur(java.lang.Enum[BlurMaskFilter.Blur]):
        INNER: typing.ClassVar[BlurMaskFilter.Blur] = ...
        NORMAL: typing.ClassVar[BlurMaskFilter.Blur] = ...
        OUTER: typing.ClassVar[BlurMaskFilter.Blur] = ...
        SOLID: typing.ClassVar[BlurMaskFilter.Blur] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> BlurMaskFilter.Blur: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[BlurMaskFilter.Blur]: ...

class Camera(java.lang.Object):
    def __init__(self) -> None: ...
    def applyToCanvas(self, canvas: Canvas, /) -> None: ...
    def dotWithNormal(self, arg1: float | java.jfloat | java.lang.Float, arg2: float | java.jfloat | java.lang.Float, arg3: float | java.jfloat | java.lang.Float, /) -> float: ...
    def finalize(self) -> None: ...
    def getLocationX(self) -> float: ...
    def getLocationY(self) -> float: ...
    def getLocationZ(self) -> float: ...
    def getMatrix(self, matrix: Matrix, /) -> None: ...
    def restore(self) -> None: ...
    def rotate(self, arg1: float | java.jfloat | java.lang.Float, arg2: float | java.jfloat | java.lang.Float, arg3: float | java.jfloat | java.lang.Float, /) -> None: ...
    def rotateX(self, arg1: float | java.jfloat | java.lang.Float, /) -> None: ...
    def rotateY(self, arg1: float | java.jfloat | java.lang.Float, /) -> None: ...
    def rotateZ(self, arg1: float | java.jfloat | java.lang.Float, /) -> None: ...
    def save(self) -> None: ...
    def setLocation(self, arg1: float | java.jfloat | java.lang.Float, arg2: float | java.jfloat | java.lang.Float, arg3: float | java.jfloat | java.lang.Float, /) -> None: ...
    def translate(self, arg1: float | java.jfloat | java.lang.Float, arg2: float | java.jfloat | java.lang.Float, arg3: float | java.jfloat | java.lang.Float, /) -> None: ...

class Canvas(java.lang.Object):
    ALL_SAVE_FLAG: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, bitmap: Bitmap, /) -> None: ...
    def clipOutPath(self, path: Path, /) -> bool: ...
    @typing.overload
    def clipOutRect(self, rect: Rect, /) -> bool: ...
    @typing.overload
    def clipOutRect(self, rect: RectF, /) -> bool: ...
    @typing.overload
    def clipOutRect(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def clipOutRect(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> bool: ...
    def clipOutShader(self, shader: Shader, /) -> None: ...
    @typing.overload
    def clipPath(self, path: Path, /) -> bool: ...
    @typing.overload
    def clipPath(self, path: Path, op: Region.Op, /) -> bool: ...
    @typing.overload
    def clipRect(self, rect: Rect, /) -> bool: ...
    @typing.overload
    def clipRect(self, rect: RectF, /) -> bool: ...
    @typing.overload
    def clipRect(self, rect: Rect, op: Region.Op, /) -> bool: ...
    @typing.overload
    def clipRect(self, rect: RectF, op: Region.Op, /) -> bool: ...
    @typing.overload
    def clipRect(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def clipRect(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def clipRect(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, op: Region.Op, /) -> bool: ...
    def clipShader(self, shader: Shader, /) -> None: ...
    @typing.overload
    def concat(self, m: Matrix44, /) -> None: ...
    @typing.overload
    def concat(self, matrix: Matrix, /) -> None: ...
    def disableZ(self) -> None: ...
    def drawARGB(self, a: int | java.jint | java.lang.Integer, r: int | java.jint | java.lang.Integer, g: int | java.jint | java.lang.Integer, b: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def drawArc(self, oval: RectF, startAngle: float | java.jfloat | java.lang.Float, sweepAngle: float | java.jfloat | java.lang.Float, useCenter: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    @typing.overload
    def drawArc(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, startAngle: float | java.jfloat | java.lang.Float, sweepAngle: float | java.jfloat | java.lang.Float, useCenter: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    @typing.overload
    def drawBitmap(self, bitmap: Bitmap, matrix: Matrix, paint: Paint, /) -> None: ...
    @typing.overload
    def drawBitmap(self, bitmap: Bitmap, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawBitmap(self, bitmap: Bitmap, src: Rect, dst: Rect, paint: Paint, /) -> None: ...
    @typing.overload
    def drawBitmap(self, bitmap: Bitmap, src: Rect, dst: RectF, paint: Paint, /) -> None: ...
    @typing.overload
    def drawBitmap(self, colors: java.chaquopy.JavaArrayJInt, offset: int | java.jint | java.lang.Integer, stride: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, hasAlpha: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    @typing.overload
    def drawBitmap(self, colors: java.chaquopy.JavaArrayJInt, offset: int | java.jint | java.lang.Integer, stride: int | java.jint | java.lang.Integer, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, hasAlpha: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    def drawBitmapMesh(self, bitmap: Bitmap, meshWidth: int | java.jint | java.lang.Integer, meshHeight: int | java.jint | java.lang.Integer, verts: java.chaquopy.JavaArrayJFloat, vertOffset: int | java.jint | java.lang.Integer, colors: java.chaquopy.JavaArrayJInt, colorOffset: int | java.jint | java.lang.Integer, paint: Paint, /) -> None: ...
    def drawCircle(self, cx: float | java.jfloat | java.lang.Float, cy: float | java.jfloat | java.lang.Float, radius: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawColor(self, color: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def drawColor(self, color: int | java.jlong | java.lang.Long, /) -> None: ...
    @typing.overload
    def drawColor(self, color: int | java.jint | java.lang.Integer, mode: BlendMode, /) -> None: ...
    @typing.overload
    def drawColor(self, color: int | java.jint | java.lang.Integer, mode: PorterDuff.Mode, /) -> None: ...
    @typing.overload
    def drawColor(self, color: int | java.jlong | java.lang.Long, mode: BlendMode, /) -> None: ...
    @typing.overload
    def drawDoubleRoundRect(self, outer: RectF, outerRadii: java.chaquopy.JavaArrayJFloat, inner: RectF, innerRadii: java.chaquopy.JavaArrayJFloat, paint: Paint, /) -> None: ...
    @typing.overload
    def drawDoubleRoundRect(self, outer: RectF, outerRx: float | java.jfloat | java.lang.Float, outerRy: float | java.jfloat | java.lang.Float, inner: RectF, innerRx: float | java.jfloat | java.lang.Float, innerRy: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    def drawGlyphs(self, glyphIds: java.chaquopy.JavaArrayJInt, glyphIdOffset: int | java.jint | java.lang.Integer, positions: java.chaquopy.JavaArrayJFloat, positionOffset: int | java.jint | java.lang.Integer, glyphCount: int | java.jint | java.lang.Integer, font: android.graphics.fonts.Font, paint: Paint, /) -> None: ...
    def drawLine(self, startX: float | java.jfloat | java.lang.Float, startY: float | java.jfloat | java.lang.Float, stopX: float | java.jfloat | java.lang.Float, stopY: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawLines(self, pts: java.chaquopy.JavaArrayJFloat, paint: Paint, /) -> None: ...
    @typing.overload
    def drawLines(self, pts: java.chaquopy.JavaArrayJFloat, offset: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, paint: Paint, /) -> None: ...
    def drawMesh(self, mesh: Mesh, blendMode: BlendMode, paint: Paint, /) -> None: ...
    @typing.overload
    def drawOval(self, oval: RectF, paint: Paint, /) -> None: ...
    @typing.overload
    def drawOval(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    def drawPaint(self, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPatch(self, patch: NinePatch, dst: Rect, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPatch(self, patch: NinePatch, dst: RectF, paint: Paint, /) -> None: ...
    def drawPath(self, path: Path, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPicture(self, picture: Picture, /) -> None: ...
    @typing.overload
    def drawPicture(self, picture: Picture, dst: Rect, /) -> None: ...
    @typing.overload
    def drawPicture(self, picture: Picture, dst: RectF, /) -> None: ...
    def drawPoint(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPoints(self, pts: java.chaquopy.JavaArrayJFloat, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPoints(self, pts: java.chaquopy.JavaArrayJFloat, offset: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPosText(self, text: str | java.lang.String, pos: java.chaquopy.JavaArrayJFloat, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPosText(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, pos: java.chaquopy.JavaArrayJFloat, paint: Paint, /) -> None: ...
    def drawRGB(self, r: int | java.jint | java.lang.Integer, g: int | java.jint | java.lang.Integer, b: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def drawRect(self, r: Rect, paint: Paint, /) -> None: ...
    @typing.overload
    def drawRect(self, rect: RectF, paint: Paint, /) -> None: ...
    @typing.overload
    def drawRect(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    def drawRegion(self, region: Region, paint: Paint, /) -> None: ...
    def drawRenderNode(self, renderNode: RenderNode, /) -> None: ...
    @typing.overload
    def drawRoundRect(self, rect: RectF, rx: float | java.jfloat | java.lang.Float, ry: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawRoundRect(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, rx: float | java.jfloat | java.lang.Float, ry: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawText(self, text: str | java.lang.String, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawText(self, text: java.lang.CharSequence, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawText(self, text: str | java.lang.String, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawText(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawTextOnPath(self, text: str | java.lang.String, path: Path, hOffset: float | java.jfloat | java.lang.Float, vOffset: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawTextOnPath(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, path: Path, hOffset: float | java.jfloat | java.lang.Float, vOffset: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawTextRun(self, text: android.graphics.text.MeasuredText, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, contextStart: int | java.jint | java.lang.Integer, contextEnd: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, isRtl: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    @typing.overload
    def drawTextRun(self, text: java.lang.CharSequence, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, contextStart: int | java.jint | java.lang.Integer, contextEnd: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, isRtl: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    @typing.overload
    def drawTextRun(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, contextIndex: int | java.jint | java.lang.Integer, contextCount: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, isRtl: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    def drawVertices(self, mode: Canvas.VertexMode, vertexCount: int | java.jint | java.lang.Integer, verts: java.chaquopy.JavaArrayJFloat, vertOffset: int | java.jint | java.lang.Integer, texs: java.chaquopy.JavaArrayJFloat, texOffset: int | java.jint | java.lang.Integer, colors: java.chaquopy.JavaArrayJInt, colorOffset: int | java.jint | java.lang.Integer, indices: java.chaquopy.JavaArrayJShort, indexOffset: int | java.jint | java.lang.Integer, indexCount: int | java.jint | java.lang.Integer, paint: Paint, /) -> None: ...
    def enableZ(self) -> None: ...
    @typing.overload
    def getClipBounds(self) -> Rect: ...
    @typing.overload
    def getClipBounds(self, bounds: Rect, /) -> bool: ...
    def getDensity(self) -> int: ...
    def getDrawFilter(self) -> DrawFilter | None: ...
    def getHeight(self) -> int: ...
    @typing.overload
    def getMatrix(self) -> Matrix: ...
    @typing.overload
    def getMatrix(self, ctm: Matrix, /) -> None: ...
    def getMaximumBitmapHeight(self) -> int: ...
    def getMaximumBitmapWidth(self) -> int: ...
    def getSaveCount(self) -> int: ...
    def getWidth(self) -> int: ...
    def isHardwareAccelerated(self) -> bool: ...
    def isOpaque(self) -> bool: ...
    @typing.overload
    def quickReject(self, path: Path, /) -> bool: ...
    @typing.overload
    def quickReject(self, rect: RectF, /) -> bool: ...
    @typing.overload
    def quickReject(self, path: Path, type: Canvas.EdgeType, /) -> bool: ...
    @typing.overload
    def quickReject(self, rect: RectF, type: Canvas.EdgeType, /) -> bool: ...
    @typing.overload
    def quickReject(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def quickReject(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, type: Canvas.EdgeType, /) -> bool: ...
    def restore(self) -> None: ...
    def restoreToCount(self, saveCount: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def rotate(self, degrees: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def rotate(self, degrees: float | java.jfloat | java.lang.Float, px: float | java.jfloat | java.lang.Float, py: float | java.jfloat | java.lang.Float, /) -> None: ...
    def save(self) -> int: ...
    @typing.overload
    def saveLayer(self, bounds: RectF, paint: Paint, /) -> int: ...
    @typing.overload
    def saveLayer(self, bounds: RectF, paint: Paint, saveFlags: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def saveLayer(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, paint: Paint, /) -> int: ...
    @typing.overload
    def saveLayer(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, paint: Paint, saveFlags: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def saveLayerAlpha(self, bounds: RectF, alpha: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def saveLayerAlpha(self, bounds: RectF, alpha: int | java.jint | java.lang.Integer, saveFlags: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def saveLayerAlpha(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, alpha: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def saveLayerAlpha(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, alpha: int | java.jint | java.lang.Integer, saveFlags: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def scale(self, sx: float | java.jfloat | java.lang.Float, sy: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def scale(self, sx: float | java.jfloat | java.lang.Float, sy: float | java.jfloat | java.lang.Float, px: float | java.jfloat | java.lang.Float, py: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setBitmap(self, bitmap: Bitmap, /) -> None: ...
    def setDensity(self, density: int | java.jint | java.lang.Integer, /) -> None: ...
    def setDrawFilter(self, filter: DrawFilter, /) -> None: ...
    def setMatrix(self, matrix: Matrix, /) -> None: ...
    def skew(self, sx: float | java.jfloat | java.lang.Float, sy: float | java.jfloat | java.lang.Float, /) -> None: ...
    def translate(self, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, /) -> None: ...

    class VertexMode(java.lang.Enum[Canvas.VertexMode]):
        TRIANGLES: typing.ClassVar[Canvas.VertexMode] = ...
        TRIANGLE_FAN: typing.ClassVar[Canvas.VertexMode] = ...
        TRIANGLE_STRIP: typing.ClassVar[Canvas.VertexMode] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Canvas.VertexMode: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Canvas.VertexMode]: ...

    class EdgeType(java.lang.Enum[Canvas.EdgeType]):
        AA: typing.ClassVar[Canvas.EdgeType] = ...
        BW: typing.ClassVar[Canvas.EdgeType] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Canvas.EdgeType: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Canvas.EdgeType]: ...

class Color(java.lang.Object):
    BLACK: typing.ClassVar[int] = ...
    BLUE: typing.ClassVar[int] = ...
    CYAN: typing.ClassVar[int] = ...
    DKGRAY: typing.ClassVar[int] = ...
    GRAY: typing.ClassVar[int] = ...
    GREEN: typing.ClassVar[int] = ...
    LTGRAY: typing.ClassVar[int] = ...
    MAGENTA: typing.ClassVar[int] = ...
    RED: typing.ClassVar[int] = ...
    TRANSPARENT: typing.ClassVar[int] = ...
    WHITE: typing.ClassVar[int] = ...
    YELLOW: typing.ClassVar[int] = ...
    def __init__(self) -> None: ...
    @typing.overload
    @staticmethod
    def HSVToColor(hsv: java.chaquopy.JavaArrayJFloat, /) -> int: ...
    @typing.overload
    @staticmethod
    def HSVToColor(alpha: int | java.jint | java.lang.Integer, hsv: java.chaquopy.JavaArrayJFloat, /) -> int: ...
    @staticmethod
    def RGBToHSV(red: int | java.jint | java.lang.Integer, green: int | java.jint | java.lang.Integer, blue: int | java.jint | java.lang.Integer, hsv: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    @typing.overload
    def alpha(self) -> float: ...
    @typing.overload
    @staticmethod
    def alpha(color: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    @staticmethod
    def alpha(color: int | java.jlong | java.lang.Long, /) -> float: ...
    @typing.overload
    @staticmethod
    def argb(alpha: float | java.jfloat | java.lang.Float, red: float | java.jfloat | java.lang.Float, green: float | java.jfloat | java.lang.Float, blue: float | java.jfloat | java.lang.Float, /) -> int: ...
    @typing.overload
    @staticmethod
    def argb(alpha: int | java.jint | java.lang.Integer, red: int | java.jint | java.lang.Integer, green: int | java.jint | java.lang.Integer, blue: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def blue(self) -> float: ...
    @typing.overload
    @staticmethod
    def blue(color: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    @staticmethod
    def blue(color: int | java.jlong | java.lang.Long, /) -> float: ...
    @staticmethod
    def colorSpace(color: int | java.jlong | java.lang.Long, /) -> ColorSpace: ...
    @staticmethod
    def colorToHSV(color: int | java.jint | java.lang.Integer, hsv: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    @typing.overload
    def convert(self, colorSpace: ColorSpace, /) -> Color: ...
    @typing.overload
    @staticmethod
    def convert(color: int | java.jint | java.lang.Integer, colorSpace: ColorSpace, /) -> int: ...
    @typing.overload
    @staticmethod
    def convert(color: int | java.jlong | java.lang.Long, connector: ColorSpace.Connector, /) -> int: ...
    @typing.overload
    @staticmethod
    def convert(color: int | java.jlong | java.lang.Long, colorSpace: ColorSpace, /) -> int: ...
    @typing.overload
    @staticmethod
    def convert(r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, a: float | java.jfloat | java.lang.Float, connector: ColorSpace.Connector, /) -> int: ...
    @typing.overload
    @staticmethod
    def convert(r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, a: float | java.jfloat | java.lang.Float, source: ColorSpace, destination: ColorSpace, /) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getColorSpace(self) -> ColorSpace: ...
    def getComponent(self, component: int | java.jint | java.lang.Integer, /) -> float: ...
    def getComponentCount(self) -> int: ...
    @typing.overload
    def getComponents(self) -> java.chaquopy.JavaArrayJFloat: ...
    @typing.overload
    def getComponents(self, components: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...
    def getModel(self) -> ColorSpace.Model: ...
    @typing.overload
    def green(self) -> float: ...
    @typing.overload
    @staticmethod
    def green(color: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    @staticmethod
    def green(color: int | java.jlong | java.lang.Long, /) -> float: ...
    def hashCode(self) -> int: ...
    @staticmethod
    def isInColorSpace(color: int | java.jlong | java.lang.Long, colorSpace: ColorSpace, /) -> bool: ...
    @typing.overload
    def isSrgb(self) -> bool: ...
    @typing.overload
    @staticmethod
    def isSrgb(color: int | java.jlong | java.lang.Long, /) -> bool: ...
    @typing.overload
    def isWideGamut(self) -> bool: ...
    @typing.overload
    @staticmethod
    def isWideGamut(color: int | java.jlong | java.lang.Long, /) -> bool: ...
    @typing.overload
    def luminance(self) -> float: ...
    @typing.overload
    @staticmethod
    def luminance(color: int | java.jint | java.lang.Integer, /) -> float: ...
    @typing.overload
    @staticmethod
    def luminance(color: int | java.jlong | java.lang.Long, /) -> float: ...
    @typing.overload
    def pack(self) -> int: ...
    @typing.overload
    @staticmethod
    def pack(color: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    @staticmethod
    def pack(red: float | java.jfloat | java.lang.Float, green: float | java.jfloat | java.lang.Float, blue: float | java.jfloat | java.lang.Float, /) -> int: ...
    @typing.overload
    @staticmethod
    def pack(red: float | java.jfloat | java.lang.Float, green: float | java.jfloat | java.lang.Float, blue: float | java.jfloat | java.lang.Float, alpha: float | java.jfloat | java.lang.Float, /) -> int: ...
    @typing.overload
    @staticmethod
    def pack(red: float | java.jfloat | java.lang.Float, green: float | java.jfloat | java.lang.Float, blue: float | java.jfloat | java.lang.Float, alpha: float | java.jfloat | java.lang.Float, colorSpace: ColorSpace, /) -> int: ...
    @staticmethod
    def parseColor(colorString: str | java.lang.String, /) -> int: ...
    @typing.overload
    def red(self) -> float: ...
    @typing.overload
    @staticmethod
    def red(color: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    @staticmethod
    def red(color: int | java.jlong | java.lang.Long, /) -> float: ...
    @typing.overload
    @staticmethod
    def rgb(red: float | java.jfloat | java.lang.Float, green: float | java.jfloat | java.lang.Float, blue: float | java.jfloat | java.lang.Float, /) -> int: ...
    @typing.overload
    @staticmethod
    def rgb(red: int | java.jint | java.lang.Integer, green: int | java.jint | java.lang.Integer, blue: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def toArgb(self) -> int: ...
    @typing.overload
    @staticmethod
    def toArgb(color: int | java.jlong | java.lang.Long, /) -> int: ...
    def toString(self) -> str: ...
    @typing.overload
    @staticmethod
    def valueOf(color: int | java.jint | java.lang.Integer, /) -> Color: ...
    @typing.overload
    @staticmethod
    def valueOf(color: int | java.jlong | java.lang.Long, /) -> Color: ...
    @typing.overload
    @staticmethod
    def valueOf(components: java.chaquopy.JavaArrayJFloat, colorSpace: ColorSpace, /) -> Color: ...
    @typing.overload
    @staticmethod
    def valueOf(r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, /) -> Color: ...
    @typing.overload
    @staticmethod
    def valueOf(r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, a: float | java.jfloat | java.lang.Float, /) -> Color: ...
    @typing.overload
    @staticmethod
    def valueOf(r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, a: float | java.jfloat | java.lang.Float, colorSpace: ColorSpace, /) -> Color: ...

class ColorFilter(java.lang.Object):
    def __init__(self) -> None: ...

class ColorMatrix(java.lang.Object):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, src: ColorMatrix, /) -> None: ...
    @typing.overload
    def __init__(self, src: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getArray(self) -> java.chaquopy.JavaArrayJFloat: ...
    def postConcat(self, postmatrix: ColorMatrix, /) -> None: ...
    def preConcat(self, prematrix: ColorMatrix, /) -> None: ...
    def reset(self) -> None: ...
    @typing.overload
    def set(self, src: ColorMatrix, /) -> None: ...
    @typing.overload
    def set(self, src: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    def setConcat(self, matA: ColorMatrix, matB: ColorMatrix, /) -> None: ...
    def setRGB2YUV(self) -> None: ...
    def setRotate(self, axis: int | java.jint | java.lang.Integer, degrees: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setSaturation(self, sat: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setScale(self, rScale: float | java.jfloat | java.lang.Float, gScale: float | java.jfloat | java.lang.Float, bScale: float | java.jfloat | java.lang.Float, aScale: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setYUV2RGB(self) -> None: ...

class ColorMatrixColorFilter(ColorFilter):
    @typing.overload
    def __init__(self, matrix: ColorMatrix, /) -> None: ...
    @typing.overload
    def __init__(self, array: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    def getColorMatrix(self, colorMatrix: ColorMatrix, /) -> None: ...

class ColorSpace(java.lang.Object):
    ILLUMINANT_A: typing.ClassVar[java.chaquopy.JavaArrayJFloat] = ...
    ILLUMINANT_B: typing.ClassVar[java.chaquopy.JavaArrayJFloat] = ...
    ILLUMINANT_C: typing.ClassVar[java.chaquopy.JavaArrayJFloat] = ...
    ILLUMINANT_D50: typing.ClassVar[java.chaquopy.JavaArrayJFloat] = ...
    ILLUMINANT_D55: typing.ClassVar[java.chaquopy.JavaArrayJFloat] = ...
    ILLUMINANT_D60: typing.ClassVar[java.chaquopy.JavaArrayJFloat] = ...
    ILLUMINANT_D65: typing.ClassVar[java.chaquopy.JavaArrayJFloat] = ...
    ILLUMINANT_D75: typing.ClassVar[java.chaquopy.JavaArrayJFloat] = ...
    ILLUMINANT_E: typing.ClassVar[java.chaquopy.JavaArrayJFloat] = ...
    MAX_ID: typing.ClassVar[int] = ...
    MIN_ID: typing.ClassVar[int] = ...
    @typing.overload
    @staticmethod
    def adapt(colorSpace: ColorSpace, whitePoint: java.chaquopy.JavaArrayJFloat, /) -> ColorSpace: ...
    @typing.overload
    @staticmethod
    def adapt(colorSpace: ColorSpace, whitePoint: java.chaquopy.JavaArrayJFloat, adaptation: ColorSpace.Adaptation, /) -> ColorSpace: ...
    @staticmethod
    def cctToXyz(cct: int | java.jint | java.lang.Integer, /) -> java.chaquopy.JavaArrayJFloat: ...
    @staticmethod
    def chromaticAdaptation(adaptation: ColorSpace.Adaptation, srcWhitePoint: java.chaquopy.JavaArrayJFloat, dstWhitePoint: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...
    @typing.overload
    @staticmethod
    def connect(source: ColorSpace, /) -> ColorSpace.Connector: ...
    @typing.overload
    @staticmethod
    def connect(source: ColorSpace, intent: ColorSpace.RenderIntent, /) -> ColorSpace.Connector: ...
    @typing.overload
    @staticmethod
    def connect(source: ColorSpace, destination: ColorSpace, /) -> ColorSpace.Connector: ...
    @typing.overload
    @staticmethod
    def connect(source: ColorSpace, destination: ColorSpace, intent: ColorSpace.RenderIntent, /) -> ColorSpace.Connector: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    @typing.overload
    def fromXyz(self, arg1: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...
    @typing.overload
    def fromXyz(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, z: float | java.jfloat | java.lang.Float, /) -> java.chaquopy.JavaArrayJFloat: ...
    @staticmethod
    def get(name: ColorSpace.Named, /) -> ColorSpace: ...
    def getComponentCount(self) -> int: ...
    def getDataSpace(self) -> int: ...
    @staticmethod
    def getFromDataSpace(dataSpace: int | java.jint | java.lang.Integer, /) -> ColorSpace | None: ...
    def getId(self) -> int: ...
    def getMaxValue(self, arg1: int | java.jint | java.lang.Integer, /) -> float: ...
    def getMinValue(self, arg1: int | java.jint | java.lang.Integer, /) -> float: ...
    def getModel(self) -> ColorSpace.Model: ...
    def getName(self) -> str: ...
    def hashCode(self) -> int: ...
    def isSrgb(self) -> bool: ...
    def isWideGamut(self) -> bool: ...
    @staticmethod
    def match(toXYZD50: java.chaquopy.JavaArrayJFloat, function: ColorSpace.Rgb.TransferParameters, /) -> ColorSpace | None: ...
    def toString(self) -> str: ...
    @typing.overload
    def toXyz(self, arg1: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...
    @typing.overload
    def toXyz(self, r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, /) -> java.chaquopy.JavaArrayJFloat: ...

    class Rgb(ColorSpace):
        @typing.overload
        def __init__(self, name: str | java.lang.String, toXYZ: java.chaquopy.JavaArrayJFloat, gamma: float | java.jdouble | java.lang.Double, /) -> None: ...
        @typing.overload
        def __init__(self, name: str | java.lang.String, toXYZ: java.chaquopy.JavaArrayJFloat, function: ColorSpace.Rgb.TransferParameters, /) -> None: ...
        @typing.overload
        def __init__(self, name: str | java.lang.String, toXYZ: java.chaquopy.JavaArrayJFloat, oetf: java.util.function.DoubleUnaryOperator, eotf: java.util.function.DoubleUnaryOperator, /) -> None: ...
        @typing.overload
        def __init__(self, name: str | java.lang.String, primaries: java.chaquopy.JavaArrayJFloat, whitePoint: java.chaquopy.JavaArrayJFloat, gamma: float | java.jdouble | java.lang.Double, /) -> None: ...
        @typing.overload
        def __init__(self, name: str | java.lang.String, primaries: java.chaquopy.JavaArrayJFloat, whitePoint: java.chaquopy.JavaArrayJFloat, function: ColorSpace.Rgb.TransferParameters, /) -> None: ...
        @typing.overload
        def __init__(self, name: str | java.lang.String, primaries: java.chaquopy.JavaArrayJFloat, whitePoint: java.chaquopy.JavaArrayJFloat, oetf: java.util.function.DoubleUnaryOperator, eotf: java.util.function.DoubleUnaryOperator, min: float | java.jfloat | java.lang.Float, max: float | java.jfloat | java.lang.Float, /) -> None: ...
        def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
        @typing.overload
        def fromLinear(self, v: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...
        @typing.overload
        def fromLinear(self, r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, /) -> java.chaquopy.JavaArrayJFloat: ...
        def fromXyz(self, v: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...
        def getEotf(self) -> java.util.function.DoubleUnaryOperator: ...
        @typing.overload
        def getInverseTransform(self) -> java.chaquopy.JavaArrayJFloat: ...
        @typing.overload
        def getInverseTransform(self, inverseTransform: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...
        def getMaxValue(self, component: int | java.jint | java.lang.Integer, /) -> float: ...
        def getMinValue(self, component: int | java.jint | java.lang.Integer, /) -> float: ...
        def getOetf(self) -> java.util.function.DoubleUnaryOperator: ...
        @typing.overload
        def getPrimaries(self) -> java.chaquopy.JavaArrayJFloat: ...
        @typing.overload
        def getPrimaries(self, primaries: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...
        def getTransferParameters(self) -> ColorSpace.Rgb.TransferParameters: ...
        @typing.overload
        def getTransform(self) -> java.chaquopy.JavaArrayJFloat: ...
        @typing.overload
        def getTransform(self, transform: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...
        @typing.overload
        def getWhitePoint(self) -> java.chaquopy.JavaArrayJFloat: ...
        @typing.overload
        def getWhitePoint(self, whitePoint: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...
        def hashCode(self) -> int: ...
        def isSrgb(self) -> bool: ...
        def isWideGamut(self) -> bool: ...
        @typing.overload
        def toLinear(self, v: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...
        @typing.overload
        def toLinear(self, r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, /) -> java.chaquopy.JavaArrayJFloat: ...
        def toXyz(self, v: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...

        class TransferParameters(java.lang.Object):
            a: float = ...
            b: float = ...
            c: float = ...
            d: float = ...
            e: float = ...
            f: float = ...
            g: float = ...
            @typing.overload
            def __init__(self, a: float | java.jdouble | java.lang.Double, b: float | java.jdouble | java.lang.Double, c: float | java.jdouble | java.lang.Double, d: float | java.jdouble | java.lang.Double, g: float | java.jdouble | java.lang.Double, /) -> None: ...
            @typing.overload
            def __init__(self, a: float | java.jdouble | java.lang.Double, b: float | java.jdouble | java.lang.Double, c: float | java.jdouble | java.lang.Double, d: float | java.jdouble | java.lang.Double, e: float | java.jdouble | java.lang.Double, f: float | java.jdouble | java.lang.Double, g: float | java.jdouble | java.lang.Double, /) -> None: ...
            def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
            def hashCode(self) -> int: ...

    class RenderIntent(java.lang.Enum[ColorSpace.RenderIntent]):
        ABSOLUTE: typing.ClassVar[ColorSpace.RenderIntent] = ...
        PERCEPTUAL: typing.ClassVar[ColorSpace.RenderIntent] = ...
        RELATIVE: typing.ClassVar[ColorSpace.RenderIntent] = ...
        SATURATION: typing.ClassVar[ColorSpace.RenderIntent] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> ColorSpace.RenderIntent: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[ColorSpace.RenderIntent]: ...

    class Named(java.lang.Enum[ColorSpace.Named]):
        ACES: typing.ClassVar[ColorSpace.Named] = ...
        ACESCG: typing.ClassVar[ColorSpace.Named] = ...
        ADOBE_RGB: typing.ClassVar[ColorSpace.Named] = ...
        BT2020: typing.ClassVar[ColorSpace.Named] = ...
        BT2020_HLG: typing.ClassVar[ColorSpace.Named] = ...
        BT2020_PQ: typing.ClassVar[ColorSpace.Named] = ...
        BT709: typing.ClassVar[ColorSpace.Named] = ...
        CIE_LAB: typing.ClassVar[ColorSpace.Named] = ...
        CIE_XYZ: typing.ClassVar[ColorSpace.Named] = ...
        DCI_P3: typing.ClassVar[ColorSpace.Named] = ...
        DISPLAY_P3: typing.ClassVar[ColorSpace.Named] = ...
        EXTENDED_SRGB: typing.ClassVar[ColorSpace.Named] = ...
        LINEAR_EXTENDED_SRGB: typing.ClassVar[ColorSpace.Named] = ...
        LINEAR_SRGB: typing.ClassVar[ColorSpace.Named] = ...
        NTSC_1953: typing.ClassVar[ColorSpace.Named] = ...
        OK_LAB: typing.ClassVar[ColorSpace.Named] = ...
        PRO_PHOTO_RGB: typing.ClassVar[ColorSpace.Named] = ...
        SMPTE_C: typing.ClassVar[ColorSpace.Named] = ...
        SRGB: typing.ClassVar[ColorSpace.Named] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> ColorSpace.Named: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[ColorSpace.Named]: ...

    class Model(java.lang.Enum[ColorSpace.Model]):
        CMYK: typing.ClassVar[ColorSpace.Model] = ...
        LAB: typing.ClassVar[ColorSpace.Model] = ...
        RGB: typing.ClassVar[ColorSpace.Model] = ...
        XYZ: typing.ClassVar[ColorSpace.Model] = ...
        def getComponentCount(self) -> int: ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> ColorSpace.Model: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[ColorSpace.Model]: ...

    class Connector(java.lang.Object):
        def getDestination(self) -> ColorSpace: ...
        def getRenderIntent(self) -> ColorSpace.RenderIntent: ...
        def getSource(self) -> ColorSpace: ...
        @typing.overload
        def transform(self, v: java.chaquopy.JavaArrayJFloat, /) -> java.chaquopy.JavaArrayJFloat: ...
        @typing.overload
        def transform(self, r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, /) -> java.chaquopy.JavaArrayJFloat: ...

    class Adaptation(java.lang.Enum[ColorSpace.Adaptation]):
        BRADFORD: typing.ClassVar[ColorSpace.Adaptation] = ...
        CIECAT02: typing.ClassVar[ColorSpace.Adaptation] = ...
        VON_KRIES: typing.ClassVar[ColorSpace.Adaptation] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> ColorSpace.Adaptation: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[ColorSpace.Adaptation]: ...

class ComposePathEffect(PathEffect):
    def __init__(self, outerpe: PathEffect, innerpe: PathEffect, /) -> None: ...

class ComposeShader(Shader):
    @typing.overload
    def __init__(self, shaderA: Shader, shaderB: Shader, blendMode: BlendMode, /) -> None: ...
    @typing.overload
    def __init__(self, shaderA: Shader, shaderB: Shader, mode: PorterDuff.Mode, /) -> None: ...
    @typing.overload
    def __init__(self, shaderA: Shader, shaderB: Shader, mode: Xfermode, /) -> None: ...

class CornerPathEffect(PathEffect):
    def __init__(self, radius: float | java.jfloat | java.lang.Float, /) -> None: ...

class DashPathEffect(PathEffect):
    def __init__(self, intervals: java.chaquopy.JavaArrayJFloat, phase: float | java.jfloat | java.lang.Float, /) -> None: ...

class DiscretePathEffect(PathEffect):
    def __init__(self, segmentLength: float | java.jfloat | java.lang.Float, deviation: float | java.jfloat | java.lang.Float, /) -> None: ...

class DrawFilter(java.lang.Object):
    def __init__(self) -> None: ...
    def finalize(self) -> None: ...

class EmbossMaskFilter(MaskFilter):
    def __init__(self, direction: java.chaquopy.JavaArrayJFloat, ambient: float | java.jfloat | java.lang.Float, specular: float | java.jfloat | java.lang.Float, blurRadius: float | java.jfloat | java.lang.Float, /) -> None: ...

class Gainmap(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[Gainmap]] = ...
    GAINMAP_DIRECTION_HDR_TO_SDR: typing.ClassVar[int] = ...
    GAINMAP_DIRECTION_SDR_TO_HDR: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self, gainmapContents: Bitmap, /) -> None: ...
    @typing.overload
    def __init__(self, gainmap: Gainmap, gainmapContents: Bitmap, /) -> None: ...
    def describeContents(self) -> int: ...
    def getAlternativeImagePrimaries(self) -> ColorSpace: ...
    def getDisplayRatioForFullHdr(self) -> float: ...
    def getEpsilonHdr(self) -> java.chaquopy.JavaArrayJFloat: ...
    def getEpsilonSdr(self) -> java.chaquopy.JavaArrayJFloat: ...
    def getGainmapContents(self) -> Bitmap: ...
    def getGainmapDirection(self) -> int: ...
    def getGamma(self) -> java.chaquopy.JavaArrayJFloat: ...
    def getMinDisplayRatioForHdrTransition(self) -> float: ...
    def getRatioMax(self) -> java.chaquopy.JavaArrayJFloat: ...
    def getRatioMin(self) -> java.chaquopy.JavaArrayJFloat: ...
    def setAlternativeImagePrimaries(self, colorSpace: ColorSpace, /) -> None: ...
    def setDisplayRatioForFullHdr(self, max: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setEpsilonHdr(self, r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setEpsilonSdr(self, r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setGainmapContents(self, bitmap: Bitmap, /) -> None: ...
    def setGainmapDirection(self, direction: int | java.jint | java.lang.Integer, /) -> None: ...
    def setGamma(self, r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setMinDisplayRatioForHdrTransition(self, min: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setRatioMax(self, r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setRatioMin(self, r: float | java.jfloat | java.lang.Float, g: float | java.jfloat | java.lang.Float, b: float | java.jfloat | java.lang.Float, /) -> None: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class HardwareBufferRenderer(java.lang.AutoCloseable):
    def __init__(self, buffer: android.hardware.HardwareBuffer, /) -> None: ...
    def close(self) -> None: ...
    def isClosed(self) -> bool: ...
    def obtainRenderRequest(self) -> HardwareBufferRenderer.RenderRequest: ...
    def setContentRoot(self, content: RenderNode, /) -> None: ...
    def setLightSourceAlpha(self, ambientShadowAlpha: float | java.jfloat | java.lang.Float, spotShadowAlpha: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setLightSourceGeometry(self, lightX: float | java.jfloat | java.lang.Float, lightY: float | java.jfloat | java.lang.Float, lightZ: float | java.jfloat | java.lang.Float, lightRadius: float | java.jfloat | java.lang.Float, /) -> None: ...

    class RenderResult(java.lang.Object):
        ERROR_UNKNOWN: typing.ClassVar[int] = ...
        SUCCESS: typing.ClassVar[int] = ...
        def getFence(self) -> android.hardware.SyncFence: ...
        def getStatus(self) -> int: ...

    class RenderRequest(java.lang.Object):
        def draw(self, executor: java.util.concurrent.Executor, renderCallback: java.util.function.Consumer[HardwareBufferRenderer.RenderResult], /) -> None: ...
        def setBufferTransform(self, bufferTransform: int | java.jint | java.lang.Integer, /) -> HardwareBufferRenderer.RenderRequest: ...
        def setColorSpace(self, colorSpace: ColorSpace, /) -> HardwareBufferRenderer.RenderRequest: ...

class HardwareRenderer(java.lang.Object):
    SYNC_CONTEXT_IS_STOPPED: typing.ClassVar[int] = ...
    SYNC_FRAME_DROPPED: typing.ClassVar[int] = ...
    SYNC_LOST_SURFACE_REWARD_IF_FOUND: typing.ClassVar[int] = ...
    SYNC_OK: typing.ClassVar[int] = ...
    SYNC_REDRAW_REQUESTED: typing.ClassVar[int] = ...
    def __init__(self) -> None: ...
    def clearContent(self) -> None: ...
    def createRenderRequest(self) -> HardwareRenderer.FrameRenderRequest: ...
    def destroy(self) -> None: ...
    @staticmethod
    def isDrawingEnabled() -> bool: ...
    def isOpaque(self) -> bool: ...
    def notifyFramePending(self) -> None: ...
    def setContentRoot(self, content: RenderNode, /) -> None: ...
    @staticmethod
    def setDrawingEnabled(drawingEnabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setLightSourceAlpha(self, ambientShadowAlpha: float | java.jfloat | java.lang.Float, spotShadowAlpha: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setLightSourceGeometry(self, lightX: float | java.jfloat | java.lang.Float, lightY: float | java.jfloat | java.lang.Float, lightZ: float | java.jfloat | java.lang.Float, lightRadius: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setName(self, name: str | java.lang.String, /) -> None: ...
    def setOpaque(self, opaque: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setSurface(self, surface: android.view.Surface, /) -> None: ...
    def start(self) -> None: ...
    def stop(self) -> None: ...

    class FrameRenderRequest(java.lang.Object):
        def setFrameCommitCallback(self, executor: java.util.concurrent.Executor, frameCommitCallback: java.lang.Runnable, /) -> HardwareRenderer.FrameRenderRequest: ...
        def setVsyncTime(self, vsyncTime: int | java.jlong | java.lang.Long, /) -> HardwareRenderer.FrameRenderRequest: ...
        def setWaitForPresent(self, shouldWait: bool | java.jboolean | java.lang.Boolean, /) -> HardwareRenderer.FrameRenderRequest: ...
        def syncAndDraw(self) -> int: ...

class ImageDecoder(java.lang.AutoCloseable):
    ALLOCATOR_DEFAULT: typing.ClassVar[int] = ...
    ALLOCATOR_HARDWARE: typing.ClassVar[int] = ...
    ALLOCATOR_SHARED_MEMORY: typing.ClassVar[int] = ...
    ALLOCATOR_SOFTWARE: typing.ClassVar[int] = ...
    MEMORY_POLICY_DEFAULT: typing.ClassVar[int] = ...
    MEMORY_POLICY_LOW_RAM: typing.ClassVar[int] = ...
    def close(self) -> None: ...
    @typing.overload
    @staticmethod
    def createSource(file: java.io.File, /) -> ImageDecoder.Source: ...
    @typing.overload
    @staticmethod
    def createSource(buffer: java.nio.ByteBuffer, /) -> ImageDecoder.Source: ...
    @typing.overload
    @staticmethod
    def createSource(callable: java.util.concurrent.Callable[android.content.res.AssetFileDescriptor], /) -> ImageDecoder.Source: ...
    @typing.overload
    @staticmethod
    def createSource(data: java.chaquopy.JavaArrayJByte, /) -> ImageDecoder.Source: ...
    @typing.overload
    @staticmethod
    def createSource(cr: android.content.ContentResolver, uri: android.net.Uri, /) -> ImageDecoder.Source: ...
    @typing.overload
    @staticmethod
    def createSource(assets: android.content.res.AssetManager, fileName: str | java.lang.String, /) -> ImageDecoder.Source: ...
    @typing.overload
    @staticmethod
    def createSource(res: android.content.res.Resources, resId: int | java.jint | java.lang.Integer, /) -> ImageDecoder.Source: ...
    @typing.overload
    @staticmethod
    def createSource(data: java.chaquopy.JavaArrayJByte, offset: int | java.jint | java.lang.Integer, length: int | java.jint | java.lang.Integer, /) -> ImageDecoder.Source: ...
    @typing.overload
    @staticmethod
    def decodeBitmap(src: ImageDecoder.Source, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def decodeBitmap(src: ImageDecoder.Source, listener: ImageDecoder.OnHeaderDecodedListener, /) -> Bitmap: ...
    @typing.overload
    @staticmethod
    def decodeDrawable(src: ImageDecoder.Source, /) -> android.graphics.drawable.Drawable: ...
    @typing.overload
    @staticmethod
    def decodeDrawable(src: ImageDecoder.Source, listener: ImageDecoder.OnHeaderDecodedListener, /) -> android.graphics.drawable.Drawable: ...
    def finalize(self) -> None: ...
    def getAllocator(self) -> int: ...
    def getCrop(self) -> Rect | None: ...
    def getMemorySizePolicy(self) -> int: ...
    def getOnPartialImageListener(self) -> ImageDecoder.OnPartialImageListener | None: ...
    def getPostProcessor(self) -> PostProcessor | None: ...
    def isDecodeAsAlphaMaskEnabled(self) -> bool: ...
    @staticmethod
    def isMimeTypeSupported(mimeType: str | java.lang.String, /) -> bool: ...
    def isMutableRequired(self) -> bool: ...
    def isUnpremultipliedRequired(self) -> bool: ...
    def setAllocator(self, allocator: int | java.jint | java.lang.Integer, /) -> None: ...
    def setCrop(self, subset: Rect, /) -> None: ...
    def setDecodeAsAlphaMaskEnabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setMemorySizePolicy(self, policy: int | java.jint | java.lang.Integer, /) -> None: ...
    def setMutableRequired(self, mutable: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setOnPartialImageListener(self, listener: ImageDecoder.OnPartialImageListener, /) -> None: ...
    def setPostProcessor(self, postProcessor: PostProcessor, /) -> None: ...
    def setTargetColorSpace(self, colorSpace: ColorSpace, /) -> None: ...
    def setTargetSampleSize(self, sampleSize: int | java.jint | java.lang.Integer, /) -> None: ...
    def setTargetSize(self, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, /) -> None: ...
    def setUnpremultipliedRequired(self, unpremultipliedRequired: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

    class Source(java.lang.Object): ...

    class OnPartialImageListener(java.lang.Object):
        def onPartialImage(self, arg1: ImageDecoder.DecodeException, /) -> bool: ...

    class OnHeaderDecodedListener(java.lang.Object):
        def onHeaderDecoded(self, arg1: ImageDecoder, arg2: ImageDecoder.ImageInfo, arg3: ImageDecoder.Source, /) -> None: ...

    class ImageInfo(java.lang.Object):
        def getColorSpace(self) -> ColorSpace: ...
        def getMimeType(self) -> str: ...
        def getSize(self) -> android.util.Size: ...
        def isAnimated(self) -> bool: ...

    class DecodeException(java.io.IOException):
        SOURCE_EXCEPTION: typing.ClassVar[int] = ...
        SOURCE_INCOMPLETE: typing.ClassVar[int] = ...
        SOURCE_MALFORMED_DATA: typing.ClassVar[int] = ...
        def getError(self) -> int: ...
        def getSource(self) -> ImageDecoder.Source: ...

class ImageFormat(java.lang.Object):
    DEPTH16: typing.ClassVar[int] = ...
    DEPTH_JPEG: typing.ClassVar[int] = ...
    DEPTH_POINT_CLOUD: typing.ClassVar[int] = ...
    FLEX_RGBA_8888: typing.ClassVar[int] = ...
    FLEX_RGB_888: typing.ClassVar[int] = ...
    HEIC: typing.ClassVar[int] = ...
    HEIC_ULTRAHDR: typing.ClassVar[int] = ...
    JPEG: typing.ClassVar[int] = ...
    JPEG_R: typing.ClassVar[int] = ...
    NV16: typing.ClassVar[int] = ...
    NV21: typing.ClassVar[int] = ...
    PRIVATE: typing.ClassVar[int] = ...
    RAW10: typing.ClassVar[int] = ...
    RAW12: typing.ClassVar[int] = ...
    RAW_PRIVATE: typing.ClassVar[int] = ...
    RAW_SENSOR: typing.ClassVar[int] = ...
    RGB_565: typing.ClassVar[int] = ...
    UNKNOWN: typing.ClassVar[int] = ...
    Y8: typing.ClassVar[int] = ...
    YCBCR_P010: typing.ClassVar[int] = ...
    YCBCR_P210: typing.ClassVar[int] = ...
    YUV_420_888: typing.ClassVar[int] = ...
    YUV_422_888: typing.ClassVar[int] = ...
    YUV_444_888: typing.ClassVar[int] = ...
    YUY2: typing.ClassVar[int] = ...
    YV12: typing.ClassVar[int] = ...
    def __init__(self) -> None: ...
    @staticmethod
    def getBitsPerPixel(format: int | java.jint | java.lang.Integer, /) -> int: ...

class Insets(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[Insets]] = ...
    NONE: typing.ClassVar[Insets] = ...
    bottom: int = ...
    left: int = ...
    right: int = ...
    top: int = ...
    @staticmethod
    def add(a: Insets, b: Insets, /) -> Insets: ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def hashCode(self) -> int: ...
    @staticmethod
    def max(a: Insets, b: Insets, /) -> Insets: ...
    @staticmethod
    def min(a: Insets, b: Insets, /) -> Insets: ...
    @typing.overload
    @staticmethod
    def of(r: Rect, /) -> Insets: ...
    @typing.overload
    @staticmethod
    def of(left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> Insets: ...
    @staticmethod
    def subtract(a: Insets, b: Insets, /) -> Insets: ...
    def toString(self) -> str: ...
    def writeToParcel(self, out: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class Interpolator(java.lang.Object):
    @typing.overload
    def __init__(self, valueCount: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, valueCount: int | java.jint | java.lang.Integer, frameCount: int | java.jint | java.lang.Integer, /) -> None: ...
    def finalize(self) -> None: ...
    def getKeyFrameCount(self) -> int: ...
    def getValueCount(self) -> int: ...
    @typing.overload
    def reset(self, valueCount: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def reset(self, valueCount: int | java.jint | java.lang.Integer, frameCount: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setKeyFrame(self, index: int | java.jint | java.lang.Integer, msec: int | java.jint | java.lang.Integer, values: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    @typing.overload
    def setKeyFrame(self, index: int | java.jint | java.lang.Integer, msec: int | java.jint | java.lang.Integer, values: java.chaquopy.JavaArrayJFloat, blend: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    def setRepeatMirror(self, repeatCount: float | java.jfloat | java.lang.Float, mirror: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    @typing.overload
    def timeToValues(self, values: java.chaquopy.JavaArrayJFloat, /) -> Interpolator.Result: ...
    @typing.overload
    def timeToValues(self, msec: int | java.jint | java.lang.Integer, values: java.chaquopy.JavaArrayJFloat, /) -> Interpolator.Result: ...

    class Result(java.lang.Enum[Interpolator.Result]):
        FREEZE_END: typing.ClassVar[Interpolator.Result] = ...
        FREEZE_START: typing.ClassVar[Interpolator.Result] = ...
        NORMAL: typing.ClassVar[Interpolator.Result] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Interpolator.Result: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Interpolator.Result]: ...

class LightingColorFilter(ColorFilter):
    def __init__(self, mul: int | java.jint | java.lang.Integer, add: int | java.jint | java.lang.Integer, /) -> None: ...
    def getColorAdd(self) -> int: ...
    def getColorMultiply(self) -> int: ...

class LinearGradient(Shader):
    @typing.overload
    def __init__(self, x0: float | java.jfloat | java.lang.Float, y0: float | java.jfloat | java.lang.Float, x1: float | java.jfloat | java.lang.Float, y1: float | java.jfloat | java.lang.Float, color0: int | java.jint | java.lang.Integer, color1: int | java.jint | java.lang.Integer, tile: Shader.TileMode, /) -> None: ...
    @typing.overload
    def __init__(self, x0: float | java.jfloat | java.lang.Float, y0: float | java.jfloat | java.lang.Float, x1: float | java.jfloat | java.lang.Float, y1: float | java.jfloat | java.lang.Float, color0: int | java.jlong | java.lang.Long, color1: int | java.jlong | java.lang.Long, tile: Shader.TileMode, /) -> None: ...
    @typing.overload
    def __init__(self, x0: float | java.jfloat | java.lang.Float, y0: float | java.jfloat | java.lang.Float, x1: float | java.jfloat | java.lang.Float, y1: float | java.jfloat | java.lang.Float, colors: java.chaquopy.JavaArrayJInt, positions: java.chaquopy.JavaArrayJFloat, tile: Shader.TileMode, /) -> None: ...
    @typing.overload
    def __init__(self, x0: float | java.jfloat | java.lang.Float, y0: float | java.jfloat | java.lang.Float, x1: float | java.jfloat | java.lang.Float, y1: float | java.jfloat | java.lang.Float, colors: java.chaquopy.JavaArrayJLong, positions: java.chaquopy.JavaArrayJFloat, tile: Shader.TileMode, /) -> None: ...

class MaskFilter(java.lang.Object):
    def __init__(self) -> None: ...
    def finalize(self) -> None: ...

class Matrix(java.lang.Object):
    IDENTITY_MATRIX: typing.ClassVar[Matrix] = ...
    MPERSP_0: typing.ClassVar[int] = ...
    MPERSP_1: typing.ClassVar[int] = ...
    MPERSP_2: typing.ClassVar[int] = ...
    MSCALE_X: typing.ClassVar[int] = ...
    MSCALE_Y: typing.ClassVar[int] = ...
    MSKEW_X: typing.ClassVar[int] = ...
    MSKEW_Y: typing.ClassVar[int] = ...
    MTRANS_X: typing.ClassVar[int] = ...
    MTRANS_Y: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, src: Matrix, /) -> None: ...
    def dump(self, pw: java.io.PrintWriter, /) -> None: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getValues(self, values: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    def hashCode(self) -> int: ...
    def invert(self, inverse: Matrix, /) -> bool: ...
    def isAffine(self) -> bool: ...
    def isIdentity(self) -> bool: ...
    @typing.overload
    def mapPoints(self, pts: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    @typing.overload
    def mapPoints(self, dst: java.chaquopy.JavaArrayJFloat, src: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    @typing.overload
    def mapPoints(self, dst: java.chaquopy.JavaArrayJFloat, dstIndex: int | java.jint | java.lang.Integer, src: java.chaquopy.JavaArrayJFloat, srcIndex: int | java.jint | java.lang.Integer, pointCount: int | java.jint | java.lang.Integer, /) -> None: ...
    def mapRadius(self, radius: float | java.jfloat | java.lang.Float, /) -> float: ...
    @typing.overload
    def mapRect(self, rect: RectF, /) -> bool: ...
    @typing.overload
    def mapRect(self, dst: RectF, src: RectF, /) -> bool: ...
    @typing.overload
    def mapVectors(self, vecs: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    @typing.overload
    def mapVectors(self, dst: java.chaquopy.JavaArrayJFloat, src: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    @typing.overload
    def mapVectors(self, dst: java.chaquopy.JavaArrayJFloat, dstIndex: int | java.jint | java.lang.Integer, src: java.chaquopy.JavaArrayJFloat, srcIndex: int | java.jint | java.lang.Integer, vectorCount: int | java.jint | java.lang.Integer, /) -> None: ...
    def postConcat(self, other: Matrix, /) -> bool: ...
    @typing.overload
    def postRotate(self, degrees: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def postRotate(self, degrees: float | java.jfloat | java.lang.Float, px: float | java.jfloat | java.lang.Float, py: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def postScale(self, sx: float | java.jfloat | java.lang.Float, sy: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def postScale(self, sx: float | java.jfloat | java.lang.Float, sy: float | java.jfloat | java.lang.Float, px: float | java.jfloat | java.lang.Float, py: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def postSkew(self, kx: float | java.jfloat | java.lang.Float, ky: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def postSkew(self, kx: float | java.jfloat | java.lang.Float, ky: float | java.jfloat | java.lang.Float, px: float | java.jfloat | java.lang.Float, py: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def postTranslate(self, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def preConcat(self, other: Matrix, /) -> bool: ...
    @typing.overload
    def preRotate(self, degrees: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def preRotate(self, degrees: float | java.jfloat | java.lang.Float, px: float | java.jfloat | java.lang.Float, py: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def preScale(self, sx: float | java.jfloat | java.lang.Float, sy: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def preScale(self, sx: float | java.jfloat | java.lang.Float, sy: float | java.jfloat | java.lang.Float, px: float | java.jfloat | java.lang.Float, py: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def preSkew(self, kx: float | java.jfloat | java.lang.Float, ky: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def preSkew(self, kx: float | java.jfloat | java.lang.Float, ky: float | java.jfloat | java.lang.Float, px: float | java.jfloat | java.lang.Float, py: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def preTranslate(self, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def rectStaysRect(self) -> bool: ...
    def reset(self) -> None: ...
    def set(self, src: Matrix, /) -> None: ...
    def setConcat(self, a: Matrix, b: Matrix, /) -> bool: ...
    def setPolyToPoly(self, src: java.chaquopy.JavaArrayJFloat, srcIndex: int | java.jint | java.lang.Integer, dst: java.chaquopy.JavaArrayJFloat, dstIndex: int | java.jint | java.lang.Integer, pointCount: int | java.jint | java.lang.Integer, /) -> bool: ...
    def setRectToRect(self, src: RectF, dst: RectF, stf: Matrix.ScaleToFit, /) -> bool: ...
    @typing.overload
    def setRotate(self, degrees: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setRotate(self, degrees: float | java.jfloat | java.lang.Float, px: float | java.jfloat | java.lang.Float, py: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setScale(self, sx: float | java.jfloat | java.lang.Float, sy: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setScale(self, sx: float | java.jfloat | java.lang.Float, sy: float | java.jfloat | java.lang.Float, px: float | java.jfloat | java.lang.Float, py: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setSinCos(self, sinValue: float | java.jfloat | java.lang.Float, cosValue: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setSinCos(self, sinValue: float | java.jfloat | java.lang.Float, cosValue: float | java.jfloat | java.lang.Float, px: float | java.jfloat | java.lang.Float, py: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setSkew(self, kx: float | java.jfloat | java.lang.Float, ky: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setSkew(self, kx: float | java.jfloat | java.lang.Float, ky: float | java.jfloat | java.lang.Float, px: float | java.jfloat | java.lang.Float, py: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setTranslate(self, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setValues(self, values: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    def toShortString(self) -> str: ...
    def toString(self) -> str: ...

    class ScaleToFit(java.lang.Enum[Matrix.ScaleToFit]):
        CENTER: typing.ClassVar[Matrix.ScaleToFit] = ...
        END: typing.ClassVar[Matrix.ScaleToFit] = ...
        FILL: typing.ClassVar[Matrix.ScaleToFit] = ...
        START: typing.ClassVar[Matrix.ScaleToFit] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Matrix.ScaleToFit: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Matrix.ScaleToFit]: ...

class Matrix44(java.lang.Object):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, mat: Matrix, /) -> None: ...
    def concat(self, b: Matrix44, /) -> Matrix44: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def get(self, row: int | java.jint | java.lang.Integer, col: int | java.jint | java.lang.Integer, /) -> float: ...
    def getValues(self, dst: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    def hashCode(self) -> int: ...
    def invert(self) -> bool: ...
    def isIdentity(self) -> bool: ...
    @typing.overload
    def map(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, z: float | java.jfloat | java.lang.Float, w: float | java.jfloat | java.lang.Float, /) -> java.chaquopy.JavaArrayJFloat: ...
    @typing.overload
    def map(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, z: float | java.jfloat | java.lang.Float, w: float | java.jfloat | java.lang.Float, dst: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    def reset(self) -> None: ...
    def rotate(self, deg: float | java.jfloat | java.lang.Float, xComp: float | java.jfloat | java.lang.Float, yComp: float | java.jfloat | java.lang.Float, zComp: float | java.jfloat | java.lang.Float, /) -> Matrix44: ...
    def scale(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, z: float | java.jfloat | java.lang.Float, /) -> Matrix44: ...
    def set(self, row: int | java.jint | java.lang.Integer, col: int | java.jint | java.lang.Integer, val: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setValues(self, src: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    def toString(self) -> str: ...
    def translate(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, z: float | java.jfloat | java.lang.Float, /) -> Matrix44: ...

class Mesh(java.lang.Object):
    TRIANGLES: typing.ClassVar[int] = ...
    TRIANGLE_STRIP: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self, meshSpec: MeshSpecification, mode: int | java.jint | java.lang.Integer, vertexBuffer: java.nio.Buffer, vertexCount: int | java.jint | java.lang.Integer, bounds: RectF, /) -> None: ...
    @typing.overload
    def __init__(self, meshSpec: MeshSpecification, mode: int | java.jint | java.lang.Integer, vertexBuffer: java.nio.Buffer, vertexCount: int | java.jint | java.lang.Integer, indexBuffer: java.nio.ShortBuffer, bounds: RectF, /) -> None: ...
    @typing.overload
    def setColorUniform(self, uniformName: str | java.lang.String, color: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setColorUniform(self, uniformName: str | java.lang.String, color: int | java.jlong | java.lang.Long, /) -> None: ...
    @typing.overload
    def setColorUniform(self, uniformName: str | java.lang.String, color: Color, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, values: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value1: float | java.jfloat | java.lang.Float, value2: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value1: float | java.jfloat | java.lang.Float, value2: float | java.jfloat | java.lang.Float, value3: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value1: float | java.jfloat | java.lang.Float, value2: float | java.jfloat | java.lang.Float, value3: float | java.jfloat | java.lang.Float, value4: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, values: java.chaquopy.JavaArrayJInt, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value1: int | java.jint | java.lang.Integer, value2: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value1: int | java.jint | java.lang.Integer, value2: int | java.jint | java.lang.Integer, value3: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value1: int | java.jint | java.lang.Integer, value2: int | java.jint | java.lang.Integer, value3: int | java.jint | java.lang.Integer, value4: int | java.jint | java.lang.Integer, /) -> None: ...

class MeshSpecification(java.lang.Object):
    ALPHA_TYPE_OPAQUE: typing.ClassVar[int] = ...
    ALPHA_TYPE_PREMULTIPLIED: typing.ClassVar[int] = ...
    ALPHA_TYPE_UNKNOWN: typing.ClassVar[int] = ...
    ALPHA_TYPE_UNPREMULTIPLIED: typing.ClassVar[int] = ...
    TYPE_FLOAT2: typing.ClassVar[int] = ...
    TYPE_FLOAT3: typing.ClassVar[int] = ...
    TYPE_FLOAT4: typing.ClassVar[int] = ...
    TYPE_FLOAT: typing.ClassVar[int] = ...
    TYPE_UBYTE4: typing.ClassVar[int] = ...
    @typing.overload
    @staticmethod
    def make(attributes: java.chaquopy.JavaArray[MeshSpecification.Attribute], vertexStride: int | java.jint | java.lang.Integer, varyings: java.chaquopy.JavaArray[MeshSpecification.Varying], vertexShader: str | java.lang.String, fragmentShader: str | java.lang.String, /) -> MeshSpecification: ...
    @typing.overload
    @staticmethod
    def make(attributes: java.chaquopy.JavaArray[MeshSpecification.Attribute], vertexStride: int | java.jint | java.lang.Integer, varyings: java.chaquopy.JavaArray[MeshSpecification.Varying], vertexShader: str | java.lang.String, fragmentShader: str | java.lang.String, colorSpace: ColorSpace, /) -> MeshSpecification: ...
    @typing.overload
    @staticmethod
    def make(attributes: java.chaquopy.JavaArray[MeshSpecification.Attribute], vertexStride: int | java.jint | java.lang.Integer, varyings: java.chaquopy.JavaArray[MeshSpecification.Varying], vertexShader: str | java.lang.String, fragmentShader: str | java.lang.String, colorSpace: ColorSpace, alphaType: int | java.jint | java.lang.Integer, /) -> MeshSpecification: ...

    class Varying(java.lang.Object):
        def __init__(self, type: int | java.jint | java.lang.Integer, name: str | java.lang.String, /) -> None: ...
        def getName(self) -> str: ...
        def getType(self) -> int: ...
        def toString(self) -> str: ...

    class Attribute(java.lang.Object):
        def __init__(self, type: int | java.jint | java.lang.Integer, offset: int | java.jint | java.lang.Integer, name: str | java.lang.String, /) -> None: ...
        def getName(self) -> str: ...
        def getOffset(self) -> int: ...
        def getType(self) -> int: ...
        def toString(self) -> str: ...

class Movie(java.lang.Object):
    @staticmethod
    def decodeByteArray(arg1: java.chaquopy.JavaArrayJByte, arg2: int | java.jint | java.lang.Integer, arg3: int | java.jint | java.lang.Integer, /) -> Movie: ...
    @staticmethod
    def decodeFile(pathName: str | java.lang.String, /) -> Movie: ...
    @staticmethod
    def decodeStream(is_: java.io.InputStream, /) -> Movie: ...
    @typing.overload
    def draw(self, canvas: Canvas, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def draw(self, canvas: Canvas, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    def duration(self) -> int: ...
    def finalize(self) -> None: ...
    def height(self) -> int: ...
    def isOpaque(self) -> bool: ...
    def setTime(self, arg1: int | java.jint | java.lang.Integer, /) -> bool: ...
    def width(self) -> int: ...

class NinePatch(java.lang.Object):
    @typing.overload
    def __init__(self, bitmap: Bitmap, chunk: java.chaquopy.JavaArrayJByte, /) -> None: ...
    @typing.overload
    def __init__(self, bitmap: Bitmap, chunk: java.chaquopy.JavaArrayJByte, srcName: str | java.lang.String, /) -> None: ...
    @typing.overload
    def draw(self, canvas: Canvas, location: Rect, /) -> None: ...
    @typing.overload
    def draw(self, canvas: Canvas, location: RectF, /) -> None: ...
    @typing.overload
    def draw(self, canvas: Canvas, location: Rect, paint: Paint, /) -> None: ...
    def finalize(self) -> None: ...
    def getBitmap(self) -> Bitmap: ...
    def getDensity(self) -> int: ...
    def getHeight(self) -> int: ...
    def getName(self) -> str: ...
    def getPaint(self) -> Paint: ...
    def getTransparentRegion(self, bounds: Rect, /) -> Region | None: ...
    def getWidth(self) -> int: ...
    def hasAlpha(self) -> bool: ...
    @staticmethod
    def isNinePatchChunk(arg1: java.chaquopy.JavaArrayJByte, /) -> bool: ...
    def setPaint(self, p: Paint, /) -> None: ...

class Outline(java.lang.Object):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, src: Outline, /) -> None: ...
    def canClip(self) -> bool: ...
    def getAlpha(self) -> float: ...
    def getRadius(self) -> float: ...
    def getRect(self, outRect: Rect, /) -> bool: ...
    def isEmpty(self) -> bool: ...
    def offset(self, dx: int | java.jint | java.lang.Integer, dy: int | java.jint | java.lang.Integer, /) -> None: ...
    def set(self, src: Outline, /) -> None: ...
    def setAlpha(self, alpha: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setConvexPath(self, convexPath: Path, /) -> None: ...
    def setEmpty(self) -> None: ...
    @typing.overload
    def setOval(self, rect: Rect, /) -> None: ...
    @typing.overload
    def setOval(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> None: ...
    def setPath(self, path: Path, /) -> None: ...
    @typing.overload
    def setRect(self, rect: Rect, /) -> None: ...
    @typing.overload
    def setRect(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setRoundRect(self, rect: Rect, radius: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setRoundRect(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, radius: float | java.jfloat | java.lang.Float, /) -> None: ...

class Paint(java.lang.Object):
    ANTI_ALIAS_FLAG: typing.ClassVar[int] = ...
    CURSOR_AFTER: typing.ClassVar[int] = ...
    CURSOR_AT: typing.ClassVar[int] = ...
    CURSOR_AT_OR_AFTER: typing.ClassVar[int] = ...
    CURSOR_AT_OR_BEFORE: typing.ClassVar[int] = ...
    CURSOR_BEFORE: typing.ClassVar[int] = ...
    DEV_KERN_TEXT_FLAG: typing.ClassVar[int] = ...
    DITHER_FLAG: typing.ClassVar[int] = ...
    EMBEDDED_BITMAP_TEXT_FLAG: typing.ClassVar[int] = ...
    END_HYPHEN_EDIT_INSERT_ARMENIAN_HYPHEN: typing.ClassVar[int] = ...
    END_HYPHEN_EDIT_INSERT_HYPHEN: typing.ClassVar[int] = ...
    END_HYPHEN_EDIT_INSERT_MAQAF: typing.ClassVar[int] = ...
    END_HYPHEN_EDIT_INSERT_UCAS_HYPHEN: typing.ClassVar[int] = ...
    END_HYPHEN_EDIT_INSERT_ZWJ_AND_HYPHEN: typing.ClassVar[int] = ...
    END_HYPHEN_EDIT_NO_EDIT: typing.ClassVar[int] = ...
    END_HYPHEN_EDIT_REPLACE_WITH_HYPHEN: typing.ClassVar[int] = ...
    FAKE_BOLD_TEXT_FLAG: typing.ClassVar[int] = ...
    FILTER_BITMAP_FLAG: typing.ClassVar[int] = ...
    HINTING_OFF: typing.ClassVar[int] = ...
    HINTING_ON: typing.ClassVar[int] = ...
    LINEAR_TEXT_FLAG: typing.ClassVar[int] = ...
    START_HYPHEN_EDIT_INSERT_HYPHEN: typing.ClassVar[int] = ...
    START_HYPHEN_EDIT_INSERT_ZWJ: typing.ClassVar[int] = ...
    START_HYPHEN_EDIT_NO_EDIT: typing.ClassVar[int] = ...
    STRIKE_THRU_TEXT_FLAG: typing.ClassVar[int] = ...
    SUBPIXEL_TEXT_FLAG: typing.ClassVar[int] = ...
    TEXT_RUN_FLAG_LEFT_EDGE: typing.ClassVar[int] = ...
    TEXT_RUN_FLAG_RIGHT_EDGE: typing.ClassVar[int] = ...
    UNDERLINE_TEXT_FLAG: typing.ClassVar[int] = ...
    VERTICAL_TEXT_FLAG: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, flags: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, paint: Paint, /) -> None: ...
    def ascent(self) -> float: ...
    @typing.overload
    def breakText(self, text: str | java.lang.String, measureForwards: bool | java.jboolean | java.lang.Boolean, maxWidth: float | java.jfloat | java.lang.Float, measuredWidth: java.chaquopy.JavaArrayJFloat, /) -> int: ...
    @typing.overload
    def breakText(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, maxWidth: float | java.jfloat | java.lang.Float, measuredWidth: java.chaquopy.JavaArrayJFloat, /) -> int: ...
    @typing.overload
    def breakText(self, text: java.lang.CharSequence, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, measureForwards: bool | java.jboolean | java.lang.Boolean, maxWidth: float | java.jfloat | java.lang.Float, measuredWidth: java.chaquopy.JavaArrayJFloat, /) -> int: ...
    def clearShadowLayer(self) -> None: ...
    def descent(self) -> float: ...
    def equalsForTextMeasurement(self, other: Paint, /) -> bool: ...
    def getAlpha(self) -> int: ...
    def getBlendMode(self) -> BlendMode | None: ...
    def getColor(self) -> int: ...
    def getColorFilter(self) -> ColorFilter: ...
    def getColorLong(self) -> int: ...
    def getEndHyphenEdit(self) -> int: ...
    def getFillPath(self, src: Path, dst: Path, /) -> bool: ...
    def getFlags(self) -> int: ...
    def getFontFeatureSettings(self) -> str: ...
    @typing.overload
    def getFontMetrics(self) -> Paint.FontMetrics: ...
    @typing.overload
    def getFontMetrics(self, metrics: Paint.FontMetrics, /) -> float: ...
    def getFontMetricsForLocale(self, metrics: Paint.FontMetrics, /) -> None: ...
    @typing.overload
    def getFontMetricsInt(self) -> Paint.FontMetricsInt: ...
    @typing.overload
    def getFontMetricsInt(self, fmi: Paint.FontMetricsInt, /) -> int: ...
    @typing.overload
    def getFontMetricsInt(self, text: java.lang.CharSequence, start: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, contextStart: int | java.jint | java.lang.Integer, contextCount: int | java.jint | java.lang.Integer, isRtl: bool | java.jboolean | java.lang.Boolean, outMetrics: Paint.FontMetricsInt, /) -> None: ...
    @typing.overload
    def getFontMetricsInt(self, text: java.chaquopy.JavaArrayJChar, start: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, contextStart: int | java.jint | java.lang.Integer, contextCount: int | java.jint | java.lang.Integer, isRtl: bool | java.jboolean | java.lang.Boolean, outMetrics: Paint.FontMetricsInt, /) -> None: ...
    def getFontMetricsIntForLocale(self, metrics: Paint.FontMetricsInt, /) -> None: ...
    def getFontSpacing(self) -> float: ...
    def getFontVariationSettings(self) -> str: ...
    def getHinting(self) -> int: ...
    def getLetterSpacing(self) -> float: ...
    def getMaskFilter(self) -> MaskFilter | None: ...
    @typing.overload
    def getOffsetForAdvance(self, text: java.lang.CharSequence, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, contextStart: int | java.jint | java.lang.Integer, contextEnd: int | java.jint | java.lang.Integer, isRtl: bool | java.jboolean | java.lang.Boolean, advance: float | java.jfloat | java.lang.Float, /) -> int: ...
    @typing.overload
    def getOffsetForAdvance(self, text: java.chaquopy.JavaArrayJChar, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, contextStart: int | java.jint | java.lang.Integer, contextEnd: int | java.jint | java.lang.Integer, isRtl: bool | java.jboolean | java.lang.Boolean, advance: float | java.jfloat | java.lang.Float, /) -> int: ...
    def getPathEffect(self) -> PathEffect | None: ...
    @typing.overload
    def getRunAdvance(self, text: java.lang.CharSequence, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, contextStart: int | java.jint | java.lang.Integer, contextEnd: int | java.jint | java.lang.Integer, isRtl: bool | java.jboolean | java.lang.Boolean, offset: int | java.jint | java.lang.Integer, /) -> float: ...
    @typing.overload
    def getRunAdvance(self, text: java.chaquopy.JavaArrayJChar, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, contextStart: int | java.jint | java.lang.Integer, contextEnd: int | java.jint | java.lang.Integer, isRtl: bool | java.jboolean | java.lang.Boolean, offset: int | java.jint | java.lang.Integer, /) -> float: ...
    @typing.overload
    def getRunCharacterAdvance(self, text: java.lang.CharSequence, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, contextStart: int | java.jint | java.lang.Integer, contextEnd: int | java.jint | java.lang.Integer, isRtl: bool | java.jboolean | java.lang.Boolean, offset: int | java.jint | java.lang.Integer, advances: java.chaquopy.JavaArrayJFloat, advancesIndex: int | java.jint | java.lang.Integer, /) -> float: ...
    @typing.overload
    def getRunCharacterAdvance(self, text: java.chaquopy.JavaArrayJChar, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, contextStart: int | java.jint | java.lang.Integer, contextEnd: int | java.jint | java.lang.Integer, isRtl: bool | java.jboolean | java.lang.Boolean, offset: int | java.jint | java.lang.Integer, advances: java.chaquopy.JavaArrayJFloat, advancesIndex: int | java.jint | java.lang.Integer, /) -> float: ...
    def getShader(self) -> Shader | None: ...
    def getShadowLayerColor(self) -> int: ...
    def getShadowLayerColorLong(self) -> int: ...
    def getShadowLayerDx(self) -> float: ...
    def getShadowLayerDy(self) -> float: ...
    def getShadowLayerRadius(self) -> float: ...
    def getStartHyphenEdit(self) -> int: ...
    def getStrikeThruPosition(self) -> float: ...
    def getStrikeThruThickness(self) -> float: ...
    def getStrokeCap(self) -> Paint.Cap: ...
    def getStrokeJoin(self) -> Paint.Join: ...
    def getStrokeMiter(self) -> float: ...
    def getStrokeWidth(self) -> float: ...
    def getStyle(self) -> Paint.Style: ...
    def getTextAlign(self) -> Paint.Align: ...
    @typing.overload
    def getTextBounds(self, text: java.lang.CharSequence, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, bounds: Rect, /) -> None: ...
    @typing.overload
    def getTextBounds(self, text: str | java.lang.String, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, bounds: Rect, /) -> None: ...
    @typing.overload
    def getTextBounds(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, bounds: Rect, /) -> None: ...
    def getTextLocale(self) -> java.util.Locale: ...
    def getTextLocales(self) -> android.os.LocaleList: ...
    @typing.overload
    def getTextPath(self, text: str | java.lang.String, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, path: Path, /) -> None: ...
    @typing.overload
    def getTextPath(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, path: Path, /) -> None: ...
    def getTextRunAdvances(self, chars: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, contextIndex: int | java.jint | java.lang.Integer, contextCount: int | java.jint | java.lang.Integer, isRtl: bool | java.jboolean | java.lang.Boolean, advances: java.chaquopy.JavaArrayJFloat, advancesIndex: int | java.jint | java.lang.Integer, /) -> float: ...
    @typing.overload
    def getTextRunCursor(self, text: java.lang.CharSequence, contextStart: int | java.jint | java.lang.Integer, contextEnd: int | java.jint | java.lang.Integer, isRtl: bool | java.jboolean | java.lang.Boolean, offset: int | java.jint | java.lang.Integer, cursorOpt: int | java.jint | java.lang.Integer, /) -> int: ...
    @typing.overload
    def getTextRunCursor(self, text: java.chaquopy.JavaArrayJChar, contextStart: int | java.jint | java.lang.Integer, contextLength: int | java.jint | java.lang.Integer, isRtl: bool | java.jboolean | java.lang.Boolean, offset: int | java.jint | java.lang.Integer, cursorOpt: int | java.jint | java.lang.Integer, /) -> int: ...
    def getTextScaleX(self) -> float: ...
    def getTextSize(self) -> float: ...
    def getTextSkewX(self) -> float: ...
    @typing.overload
    def getTextWidths(self, text: str | java.lang.String, widths: java.chaquopy.JavaArrayJFloat, /) -> int: ...
    @typing.overload
    def getTextWidths(self, text: java.lang.CharSequence, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, widths: java.chaquopy.JavaArrayJFloat, /) -> int: ...
    @typing.overload
    def getTextWidths(self, text: str | java.lang.String, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, widths: java.chaquopy.JavaArrayJFloat, /) -> int: ...
    @typing.overload
    def getTextWidths(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, widths: java.chaquopy.JavaArrayJFloat, /) -> int: ...
    def getTypeface(self) -> Typeface | None: ...
    def getUnderlinePosition(self) -> float: ...
    def getUnderlineThickness(self) -> float: ...
    def getWordSpacing(self) -> float: ...
    def getXfermode(self) -> Xfermode | None: ...
    def hasGlyph(self, string: str | java.lang.String, /) -> bool: ...
    def isAntiAlias(self) -> bool: ...
    def isDither(self) -> bool: ...
    def isElegantTextHeight(self) -> bool: ...
    def isFakeBoldText(self) -> bool: ...
    def isFilterBitmap(self) -> bool: ...
    def isLinearText(self) -> bool: ...
    def isStrikeThruText(self) -> bool: ...
    def isSubpixelText(self) -> bool: ...
    def isUnderlineText(self) -> bool: ...
    @typing.overload
    def measureText(self, text: str | java.lang.String, /) -> float: ...
    @typing.overload
    def measureText(self, text: java.lang.CharSequence, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, /) -> float: ...
    @typing.overload
    def measureText(self, text: str | java.lang.String, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, /) -> float: ...
    @typing.overload
    def measureText(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, /) -> float: ...
    def reset(self) -> None: ...
    def set(self, src: Paint, /) -> None: ...
    def setARGB(self, a: int | java.jint | java.lang.Integer, r: int | java.jint | java.lang.Integer, g: int | java.jint | java.lang.Integer, b: int | java.jint | java.lang.Integer, /) -> None: ...
    def setAlpha(self, a: int | java.jint | java.lang.Integer, /) -> None: ...
    def setAntiAlias(self, aa: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setBlendMode(self, blendmode: BlendMode, /) -> None: ...
    @typing.overload
    def setColor(self, color: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setColor(self, color: int | java.jlong | java.lang.Long, /) -> None: ...
    def setColorFilter(self, filter: ColorFilter, /) -> ColorFilter: ...
    def setDither(self, dither: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setElegantTextHeight(self, elegant: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setEndHyphenEdit(self, endHyphen: int | java.jint | java.lang.Integer, /) -> None: ...
    def setFakeBoldText(self, fakeBoldText: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setFilterBitmap(self, filter: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setFlags(self, flags: int | java.jint | java.lang.Integer, /) -> None: ...
    def setFontFeatureSettings(self, settings: str | java.lang.String, /) -> None: ...
    def setFontVariationSettings(self, fontVariationSettings: str | java.lang.String, /) -> bool: ...
    def setHinting(self, mode: int | java.jint | java.lang.Integer, /) -> None: ...
    def setLetterSpacing(self, letterSpacing: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setLinearText(self, linearText: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setMaskFilter(self, maskfilter: MaskFilter, /) -> MaskFilter: ...
    def setPathEffect(self, effect: PathEffect, /) -> PathEffect: ...
    def setShader(self, shader: Shader, /) -> Shader: ...
    @typing.overload
    def setShadowLayer(self, radius: float | java.jfloat | java.lang.Float, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, shadowColor: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setShadowLayer(self, radius: float | java.jfloat | java.lang.Float, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, shadowColor: int | java.jlong | java.lang.Long, /) -> None: ...
    def setStartHyphenEdit(self, startHyphen: int | java.jint | java.lang.Integer, /) -> None: ...
    def setStrikeThruText(self, strikeThruText: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setStrokeCap(self, cap: Paint.Cap, /) -> None: ...
    def setStrokeJoin(self, join: Paint.Join, /) -> None: ...
    def setStrokeMiter(self, miter: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setStrokeWidth(self, width: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setStyle(self, style: Paint.Style, /) -> None: ...
    def setSubpixelText(self, subpixelText: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setTextAlign(self, align: Paint.Align, /) -> None: ...
    def setTextLocale(self, locale: java.util.Locale, /) -> None: ...
    def setTextLocales(self, locales: android.os.LocaleList, /) -> None: ...
    def setTextScaleX(self, scaleX: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setTextSize(self, textSize: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setTextSkewX(self, skewX: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setTypeface(self, typeface: Typeface, /) -> Typeface: ...
    def setUnderlineText(self, underlineText: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setWordSpacing(self, wordSpacing: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setXfermode(self, xfermode: Xfermode, /) -> Xfermode: ...

    class Style(java.lang.Enum[Paint.Style]):
        FILL: typing.ClassVar[Paint.Style] = ...
        FILL_AND_STROKE: typing.ClassVar[Paint.Style] = ...
        STROKE: typing.ClassVar[Paint.Style] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Paint.Style: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Paint.Style]: ...

    class Join(java.lang.Enum[Paint.Join]):
        BEVEL: typing.ClassVar[Paint.Join] = ...
        MITER: typing.ClassVar[Paint.Join] = ...
        ROUND: typing.ClassVar[Paint.Join] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Paint.Join: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Paint.Join]: ...

    class FontMetricsInt(java.lang.Object):
        ascent: int = ...
        bottom: int = ...
        descent: int = ...
        leading: int = ...
        top: int = ...
        def __init__(self) -> None: ...
        def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def hashCode(self) -> int: ...
        @typing.overload
        def set(self, fontMetrics: Paint.FontMetrics, /) -> None: ...
        @typing.overload
        def set(self, fontMetricsInt: Paint.FontMetricsInt, /) -> None: ...
        def toString(self) -> str: ...

    class FontMetrics(java.lang.Object):
        ascent: float = ...
        bottom: float = ...
        descent: float = ...
        leading: float = ...
        top: float = ...
        def __init__(self) -> None: ...
        def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
        def hashCode(self) -> int: ...
        def toString(self) -> str: ...

    class Cap(java.lang.Enum[Paint.Cap]):
        BUTT: typing.ClassVar[Paint.Cap] = ...
        ROUND: typing.ClassVar[Paint.Cap] = ...
        SQUARE: typing.ClassVar[Paint.Cap] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Paint.Cap: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Paint.Cap]: ...

    class Align(java.lang.Enum[Paint.Align]):
        CENTER: typing.ClassVar[Paint.Align] = ...
        LEFT: typing.ClassVar[Paint.Align] = ...
        RIGHT: typing.ClassVar[Paint.Align] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Paint.Align: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Paint.Align]: ...

class PaintFlagsDrawFilter(DrawFilter):
    def __init__(self, clearBits: int | java.jint | java.lang.Integer, setBits: int | java.jint | java.lang.Integer, /) -> None: ...

class ParcelableColorSpace(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ParcelableColorSpace]] = ...
    def __init__(self, colorSpace: ColorSpace, /) -> None: ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getColorSpace(self) -> ColorSpace: ...
    def hashCode(self) -> int: ...
    @staticmethod
    def isParcelable(colorSpace: ColorSpace, /) -> bool: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class Path(java.lang.Object):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, src: Path, /) -> None: ...
    @typing.overload
    def addArc(self, oval: RectF, startAngle: float | java.jfloat | java.lang.Float, sweepAngle: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def addArc(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, startAngle: float | java.jfloat | java.lang.Float, sweepAngle: float | java.jfloat | java.lang.Float, /) -> None: ...
    def addCircle(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, radius: float | java.jfloat | java.lang.Float, dir: Path.Direction, /) -> None: ...
    @typing.overload
    def addOval(self, oval: RectF, dir: Path.Direction, /) -> None: ...
    @typing.overload
    def addOval(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, dir: Path.Direction, /) -> None: ...
    @typing.overload
    def addPath(self, src: Path, /) -> None: ...
    @typing.overload
    def addPath(self, src: Path, matrix: Matrix, /) -> None: ...
    @typing.overload
    def addPath(self, src: Path, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def addRect(self, rect: RectF, dir: Path.Direction, /) -> None: ...
    @typing.overload
    def addRect(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, dir: Path.Direction, /) -> None: ...
    @typing.overload
    def addRoundRect(self, rect: RectF, radii: java.chaquopy.JavaArrayJFloat, dir: Path.Direction, /) -> None: ...
    @typing.overload
    def addRoundRect(self, rect: RectF, rx: float | java.jfloat | java.lang.Float, ry: float | java.jfloat | java.lang.Float, dir: Path.Direction, /) -> None: ...
    @typing.overload
    def addRoundRect(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, radii: java.chaquopy.JavaArrayJFloat, dir: Path.Direction, /) -> None: ...
    @typing.overload
    def addRoundRect(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, rx: float | java.jfloat | java.lang.Float, ry: float | java.jfloat | java.lang.Float, dir: Path.Direction, /) -> None: ...
    def approximate(self, acceptableError: float | java.jfloat | java.lang.Float, /) -> java.chaquopy.JavaArrayJFloat: ...
    @typing.overload
    def arcTo(self, oval: RectF, startAngle: float | java.jfloat | java.lang.Float, sweepAngle: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def arcTo(self, oval: RectF, startAngle: float | java.jfloat | java.lang.Float, sweepAngle: float | java.jfloat | java.lang.Float, forceMoveTo: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    @typing.overload
    def arcTo(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, startAngle: float | java.jfloat | java.lang.Float, sweepAngle: float | java.jfloat | java.lang.Float, forceMoveTo: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def close(self) -> None: ...
    @typing.overload
    def computeBounds(self, bounds: RectF, /) -> None: ...
    @typing.overload
    def computeBounds(self, bounds: RectF, exact: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def conicTo(self, x1: float | java.jfloat | java.lang.Float, y1: float | java.jfloat | java.lang.Float, x2: float | java.jfloat | java.lang.Float, y2: float | java.jfloat | java.lang.Float, weight: float | java.jfloat | java.lang.Float, /) -> None: ...
    def cubicTo(self, x1: float | java.jfloat | java.lang.Float, y1: float | java.jfloat | java.lang.Float, x2: float | java.jfloat | java.lang.Float, y2: float | java.jfloat | java.lang.Float, x3: float | java.jfloat | java.lang.Float, y3: float | java.jfloat | java.lang.Float, /) -> None: ...
    def getFillType(self) -> Path.FillType: ...
    def getGenerationId(self) -> int: ...
    def getPathIterator(self) -> PathIterator: ...
    def incReserve(self, extraPtCount: int | java.jint | java.lang.Integer, /) -> None: ...
    def interpolate(self, otherPath: Path, t: float | java.jfloat | java.lang.Float, interpolatedPath: Path, /) -> bool: ...
    def isConvex(self) -> bool: ...
    def isEmpty(self) -> bool: ...
    def isInterpolatable(self, otherPath: Path, /) -> bool: ...
    def isInverseFillType(self) -> bool: ...
    def isRect(self, rect: RectF, /) -> bool: ...
    def lineTo(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, /) -> None: ...
    def moveTo(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def offset(self, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def offset(self, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, dst: Path, /) -> None: ...
    @typing.overload
    def op(self, path: Path, op: Path.Op, /) -> bool: ...
    @typing.overload
    def op(self, path1: Path, path2: Path, op: Path.Op, /) -> bool: ...
    def quadTo(self, x1: float | java.jfloat | java.lang.Float, y1: float | java.jfloat | java.lang.Float, x2: float | java.jfloat | java.lang.Float, y2: float | java.jfloat | java.lang.Float, /) -> None: ...
    def rConicTo(self, dx1: float | java.jfloat | java.lang.Float, dy1: float | java.jfloat | java.lang.Float, dx2: float | java.jfloat | java.lang.Float, dy2: float | java.jfloat | java.lang.Float, weight: float | java.jfloat | java.lang.Float, /) -> None: ...
    def rCubicTo(self, x1: float | java.jfloat | java.lang.Float, y1: float | java.jfloat | java.lang.Float, x2: float | java.jfloat | java.lang.Float, y2: float | java.jfloat | java.lang.Float, x3: float | java.jfloat | java.lang.Float, y3: float | java.jfloat | java.lang.Float, /) -> None: ...
    def rLineTo(self, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, /) -> None: ...
    def rMoveTo(self, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, /) -> None: ...
    def rQuadTo(self, dx1: float | java.jfloat | java.lang.Float, dy1: float | java.jfloat | java.lang.Float, dx2: float | java.jfloat | java.lang.Float, dy2: float | java.jfloat | java.lang.Float, /) -> None: ...
    def reset(self) -> None: ...
    def rewind(self) -> None: ...
    def set(self, src: Path, /) -> None: ...
    def setFillType(self, ft: Path.FillType, /) -> None: ...
    def setLastPoint(self, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, /) -> None: ...
    def toggleInverseFillType(self) -> None: ...
    @typing.overload
    def transform(self, matrix: Matrix, /) -> None: ...
    @typing.overload
    def transform(self, matrix: Matrix, dst: Path, /) -> None: ...

    class Op(java.lang.Enum[Path.Op]):
        DIFFERENCE: typing.ClassVar[Path.Op] = ...
        INTERSECT: typing.ClassVar[Path.Op] = ...
        REVERSE_DIFFERENCE: typing.ClassVar[Path.Op] = ...
        UNION: typing.ClassVar[Path.Op] = ...
        XOR: typing.ClassVar[Path.Op] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Path.Op: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Path.Op]: ...

    class FillType(java.lang.Enum[Path.FillType]):
        EVEN_ODD: typing.ClassVar[Path.FillType] = ...
        INVERSE_EVEN_ODD: typing.ClassVar[Path.FillType] = ...
        INVERSE_WINDING: typing.ClassVar[Path.FillType] = ...
        WINDING: typing.ClassVar[Path.FillType] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Path.FillType: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Path.FillType]: ...

    class Direction(java.lang.Enum[Path.Direction]):
        CCW: typing.ClassVar[Path.Direction] = ...
        CW: typing.ClassVar[Path.Direction] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Path.Direction: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Path.Direction]: ...

class PathDashPathEffect(PathEffect):
    def __init__(self, shape: Path, advance: float | java.jfloat | java.lang.Float, phase: float | java.jfloat | java.lang.Float, style: PathDashPathEffect.Style, /) -> None: ...

    class Style(java.lang.Enum[PathDashPathEffect.Style]):
        MORPH: typing.ClassVar[PathDashPathEffect.Style] = ...
        ROTATE: typing.ClassVar[PathDashPathEffect.Style] = ...
        TRANSLATE: typing.ClassVar[PathDashPathEffect.Style] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> PathDashPathEffect.Style: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[PathDashPathEffect.Style]: ...

class PathEffect(java.lang.Object):
    def __init__(self) -> None: ...
    def finalize(self) -> None: ...

class PathIterator(java.util.Iterator[PathIterator.Segment]):
    VERB_CLOSE: typing.ClassVar[int] = ...
    VERB_CONIC: typing.ClassVar[int] = ...
    VERB_CUBIC: typing.ClassVar[int] = ...
    VERB_DONE: typing.ClassVar[int] = ...
    VERB_LINE: typing.ClassVar[int] = ...
    VERB_MOVE: typing.ClassVar[int] = ...
    VERB_QUAD: typing.ClassVar[int] = ...
    def hasNext(self) -> bool: ...
    @typing.overload
    def next(self) -> PathIterator.Segment: ...
    @typing.overload
    def next(self, points: java.chaquopy.JavaArrayJFloat, offset: int | java.jint | java.lang.Integer, /) -> int: ...
    def peek(self) -> int: ...

    class Segment(java.lang.Object):
        def getConicWeight(self) -> float: ...
        def getPoints(self) -> java.chaquopy.JavaArrayJFloat: ...
        def getVerb(self) -> int: ...

class PathMeasure(java.lang.Object):
    POSITION_MATRIX_FLAG: typing.ClassVar[int] = ...
    TANGENT_MATRIX_FLAG: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, path: Path, forceClosed: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def finalize(self) -> None: ...
    def getLength(self) -> float: ...
    def getMatrix(self, distance: float | java.jfloat | java.lang.Float, matrix: Matrix, flags: int | java.jint | java.lang.Integer, /) -> bool: ...
    def getPosTan(self, distance: float | java.jfloat | java.lang.Float, pos: java.chaquopy.JavaArrayJFloat, tan: java.chaquopy.JavaArrayJFloat, /) -> bool: ...
    def getSegment(self, startD: float | java.jfloat | java.lang.Float, stopD: float | java.jfloat | java.lang.Float, dst: Path, startWithMoveTo: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def isClosed(self) -> bool: ...
    def nextContour(self) -> bool: ...
    def setPath(self, path: Path, forceClosed: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

class Picture(java.lang.Object):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, src: Picture, /) -> None: ...
    def beginRecording(self, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, /) -> Canvas: ...
    def draw(self, canvas: Canvas, /) -> None: ...
    def endRecording(self) -> None: ...
    def finalize(self) -> None: ...
    def getHeight(self) -> int: ...
    def getWidth(self) -> int: ...
    def requiresHardwareAcceleration(self) -> bool: ...

class PixelFormat(java.lang.Object):
    A_8: typing.ClassVar[int] = ...
    JPEG: typing.ClassVar[int] = ...
    LA_88: typing.ClassVar[int] = ...
    L_8: typing.ClassVar[int] = ...
    OPAQUE: typing.ClassVar[int] = ...
    RGBA_1010102: typing.ClassVar[int] = ...
    RGBA_4444: typing.ClassVar[int] = ...
    RGBA_5551: typing.ClassVar[int] = ...
    RGBA_8888: typing.ClassVar[int] = ...
    RGBA_F16: typing.ClassVar[int] = ...
    RGBX_8888: typing.ClassVar[int] = ...
    RGB_332: typing.ClassVar[int] = ...
    RGB_565: typing.ClassVar[int] = ...
    RGB_888: typing.ClassVar[int] = ...
    TRANSLUCENT: typing.ClassVar[int] = ...
    TRANSPARENT: typing.ClassVar[int] = ...
    UNKNOWN: typing.ClassVar[int] = ...
    YCbCr_420_SP: typing.ClassVar[int] = ...
    YCbCr_422_I: typing.ClassVar[int] = ...
    YCbCr_422_SP: typing.ClassVar[int] = ...
    bitsPerPixel: int = ...
    bytesPerPixel: int = ...
    def __init__(self) -> None: ...
    @staticmethod
    def formatHasAlpha(format: int | java.jint | java.lang.Integer, /) -> bool: ...
    @staticmethod
    def getPixelFormatInfo(format: int | java.jint | java.lang.Integer, info: PixelFormat, /) -> None: ...

class Point(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[Point]] = ...
    x: int = ...
    y: int = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, src: Point, /) -> None: ...
    @typing.overload
    def __init__(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, /) -> None: ...
    def describeContents(self) -> int: ...
    @typing.overload
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    @typing.overload
    def equals(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, /) -> bool: ...
    def hashCode(self) -> int: ...
    def negate(self) -> None: ...
    def offset(self, dx: int | java.jint | java.lang.Integer, dy: int | java.jint | java.lang.Integer, /) -> None: ...
    def readFromParcel(self, in_: android.os.Parcel, /) -> None: ...
    def set(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, /) -> None: ...
    def toString(self) -> str: ...
    def writeToParcel(self, out: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class PointF(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[PointF]] = ...
    x: float = ...
    y: float = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, p: Point, /) -> None: ...
    @typing.overload
    def __init__(self, p: PointF, /) -> None: ...
    @typing.overload
    def __init__(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, /) -> None: ...
    def describeContents(self) -> int: ...
    @typing.overload
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    @typing.overload
    def equals(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def hashCode(self) -> int: ...
    @typing.overload
    def length(self) -> float: ...
    @typing.overload
    @staticmethod
    def length(x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, /) -> float: ...
    def negate(self) -> None: ...
    def offset(self, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, /) -> None: ...
    def readFromParcel(self, in_: android.os.Parcel, /) -> None: ...
    @typing.overload
    def set(self, p: PointF, /) -> None: ...
    @typing.overload
    def set(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, /) -> None: ...
    def toString(self) -> str: ...
    def writeToParcel(self, out: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class PorterDuff(java.lang.Object):
    def __init__(self) -> None: ...

    class Mode(java.lang.Enum[PorterDuff.Mode]):
        ADD: typing.ClassVar[PorterDuff.Mode] = ...
        CLEAR: typing.ClassVar[PorterDuff.Mode] = ...
        DARKEN: typing.ClassVar[PorterDuff.Mode] = ...
        DST: typing.ClassVar[PorterDuff.Mode] = ...
        DST_ATOP: typing.ClassVar[PorterDuff.Mode] = ...
        DST_IN: typing.ClassVar[PorterDuff.Mode] = ...
        DST_OUT: typing.ClassVar[PorterDuff.Mode] = ...
        DST_OVER: typing.ClassVar[PorterDuff.Mode] = ...
        LIGHTEN: typing.ClassVar[PorterDuff.Mode] = ...
        MULTIPLY: typing.ClassVar[PorterDuff.Mode] = ...
        OVERLAY: typing.ClassVar[PorterDuff.Mode] = ...
        SCREEN: typing.ClassVar[PorterDuff.Mode] = ...
        SRC: typing.ClassVar[PorterDuff.Mode] = ...
        SRC_ATOP: typing.ClassVar[PorterDuff.Mode] = ...
        SRC_IN: typing.ClassVar[PorterDuff.Mode] = ...
        SRC_OUT: typing.ClassVar[PorterDuff.Mode] = ...
        SRC_OVER: typing.ClassVar[PorterDuff.Mode] = ...
        XOR: typing.ClassVar[PorterDuff.Mode] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> PorterDuff.Mode: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[PorterDuff.Mode]: ...

class PorterDuffColorFilter(ColorFilter):
    def __init__(self, color: int | java.jint | java.lang.Integer, mode: PorterDuff.Mode, /) -> None: ...
    def equals(self, object: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def hashCode(self) -> int: ...

class PorterDuffXfermode(Xfermode):
    def __init__(self, mode: PorterDuff.Mode, /) -> None: ...

class PostProcessor(java.lang.Object):
    def onPostProcess(self, arg1: Canvas, /) -> int: ...

class RadialGradient(Shader):
    @typing.overload
    def __init__(self, centerX: float | java.jfloat | java.lang.Float, centerY: float | java.jfloat | java.lang.Float, radius: float | java.jfloat | java.lang.Float, centerColor: int | java.jint | java.lang.Integer, edgeColor: int | java.jint | java.lang.Integer, tileMode: Shader.TileMode, /) -> None: ...
    @typing.overload
    def __init__(self, centerX: float | java.jfloat | java.lang.Float, centerY: float | java.jfloat | java.lang.Float, radius: float | java.jfloat | java.lang.Float, centerColor: int | java.jlong | java.lang.Long, edgeColor: int | java.jlong | java.lang.Long, tileMode: Shader.TileMode, /) -> None: ...
    @typing.overload
    def __init__(self, centerX: float | java.jfloat | java.lang.Float, centerY: float | java.jfloat | java.lang.Float, radius: float | java.jfloat | java.lang.Float, colors: java.chaquopy.JavaArrayJInt, stops: java.chaquopy.JavaArrayJFloat, tileMode: Shader.TileMode, /) -> None: ...
    @typing.overload
    def __init__(self, centerX: float | java.jfloat | java.lang.Float, centerY: float | java.jfloat | java.lang.Float, radius: float | java.jfloat | java.lang.Float, colors: java.chaquopy.JavaArrayJLong, stops: java.chaquopy.JavaArrayJFloat, tileMode: Shader.TileMode, /) -> None: ...
    @typing.overload
    def __init__(self, startX: float | java.jfloat | java.lang.Float, startY: float | java.jfloat | java.lang.Float, startRadius: float | java.jfloat | java.lang.Float, endX: float | java.jfloat | java.lang.Float, endY: float | java.jfloat | java.lang.Float, endRadius: float | java.jfloat | java.lang.Float, colors: java.chaquopy.JavaArrayJLong, stops: java.chaquopy.JavaArrayJFloat, tileMode: Shader.TileMode, /) -> None: ...

class RecordingCanvas(Canvas):
    def disableZ(self) -> None: ...
    def drawARGB(self, a: int | java.jint | java.lang.Integer, r: int | java.jint | java.lang.Integer, g: int | java.jint | java.lang.Integer, b: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def drawArc(self, oval: RectF, startAngle: float | java.jfloat | java.lang.Float, sweepAngle: float | java.jfloat | java.lang.Float, useCenter: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    @typing.overload
    def drawArc(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, startAngle: float | java.jfloat | java.lang.Float, sweepAngle: float | java.jfloat | java.lang.Float, useCenter: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    @typing.overload
    def drawBitmap(self, bitmap: Bitmap, matrix: Matrix, paint: Paint, /) -> None: ...
    @typing.overload
    def drawBitmap(self, bitmap: Bitmap, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawBitmap(self, bitmap: Bitmap, src: Rect, dst: Rect, paint: Paint, /) -> None: ...
    @typing.overload
    def drawBitmap(self, bitmap: Bitmap, src: Rect, dst: RectF, paint: Paint, /) -> None: ...
    @typing.overload
    def drawBitmap(self, colors: java.chaquopy.JavaArrayJInt, offset: int | java.jint | java.lang.Integer, stride: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, hasAlpha: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    @typing.overload
    def drawBitmap(self, colors: java.chaquopy.JavaArrayJInt, offset: int | java.jint | java.lang.Integer, stride: int | java.jint | java.lang.Integer, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, hasAlpha: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    def drawBitmapMesh(self, bitmap: Bitmap, meshWidth: int | java.jint | java.lang.Integer, meshHeight: int | java.jint | java.lang.Integer, verts: java.chaquopy.JavaArrayJFloat, vertOffset: int | java.jint | java.lang.Integer, colors: java.chaquopy.JavaArrayJInt, colorOffset: int | java.jint | java.lang.Integer, paint: Paint, /) -> None: ...
    def drawCircle(self, cx: float | java.jfloat | java.lang.Float, cy: float | java.jfloat | java.lang.Float, radius: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawColor(self, color: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def drawColor(self, color: int | java.jint | java.lang.Integer, mode: BlendMode, /) -> None: ...
    @typing.overload
    def drawColor(self, color: int | java.jint | java.lang.Integer, mode: PorterDuff.Mode, /) -> None: ...
    @typing.overload
    def drawColor(self, color: int | java.jlong | java.lang.Long, mode: BlendMode, /) -> None: ...
    @typing.overload
    def drawDoubleRoundRect(self, outer: RectF, outerRadii: java.chaquopy.JavaArrayJFloat, inner: RectF, innerRadii: java.chaquopy.JavaArrayJFloat, paint: Paint, /) -> None: ...
    @typing.overload
    def drawDoubleRoundRect(self, outer: RectF, outerRx: float | java.jfloat | java.lang.Float, outerRy: float | java.jfloat | java.lang.Float, inner: RectF, innerRx: float | java.jfloat | java.lang.Float, innerRy: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    def drawGlyphs(self, glyphIds: java.chaquopy.JavaArrayJInt, glyphIdOffset: int | java.jint | java.lang.Integer, positions: java.chaquopy.JavaArrayJFloat, positionOffset: int | java.jint | java.lang.Integer, glyphCount: int | java.jint | java.lang.Integer, font: android.graphics.fonts.Font, paint: Paint, /) -> None: ...
    def drawLine(self, startX: float | java.jfloat | java.lang.Float, startY: float | java.jfloat | java.lang.Float, stopX: float | java.jfloat | java.lang.Float, stopY: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawLines(self, pts: java.chaquopy.JavaArrayJFloat, paint: Paint, /) -> None: ...
    @typing.overload
    def drawLines(self, pts: java.chaquopy.JavaArrayJFloat, offset: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, paint: Paint, /) -> None: ...
    def drawMesh(self, mesh: Mesh, blendMode: BlendMode, paint: Paint, /) -> None: ...
    @typing.overload
    def drawOval(self, oval: RectF, paint: Paint, /) -> None: ...
    @typing.overload
    def drawOval(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    def drawPaint(self, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPatch(self, patch: NinePatch, dst: Rect, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPatch(self, patch: NinePatch, dst: RectF, paint: Paint, /) -> None: ...
    def drawPath(self, path: Path, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPicture(self, picture: Picture, /) -> None: ...
    @typing.overload
    def drawPicture(self, picture: Picture, dst: Rect, /) -> None: ...
    @typing.overload
    def drawPicture(self, picture: Picture, dst: RectF, /) -> None: ...
    def drawPoint(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPoints(self, pts: java.chaquopy.JavaArrayJFloat, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPoints(self, pts: java.chaquopy.JavaArrayJFloat, offset: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPosText(self, text: str | java.lang.String, pos: java.chaquopy.JavaArrayJFloat, paint: Paint, /) -> None: ...
    @typing.overload
    def drawPosText(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, pos: java.chaquopy.JavaArrayJFloat, paint: Paint, /) -> None: ...
    def drawRGB(self, r: int | java.jint | java.lang.Integer, g: int | java.jint | java.lang.Integer, b: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def drawRect(self, r: Rect, paint: Paint, /) -> None: ...
    @typing.overload
    def drawRect(self, rect: RectF, paint: Paint, /) -> None: ...
    @typing.overload
    def drawRect(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    def drawRegion(self, region: Region, paint: Paint, /) -> None: ...
    def drawRenderNode(self, renderNode: RenderNode, /) -> None: ...
    @typing.overload
    def drawRoundRect(self, rect: RectF, rx: float | java.jfloat | java.lang.Float, ry: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawRoundRect(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, rx: float | java.jfloat | java.lang.Float, ry: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawText(self, text: str | java.lang.String, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawText(self, text: java.lang.CharSequence, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawText(self, text: str | java.lang.String, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawText(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawTextOnPath(self, text: str | java.lang.String, path: Path, hOffset: float | java.jfloat | java.lang.Float, vOffset: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawTextOnPath(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, path: Path, hOffset: float | java.jfloat | java.lang.Float, vOffset: float | java.jfloat | java.lang.Float, paint: Paint, /) -> None: ...
    @typing.overload
    def drawTextRun(self, measuredText: android.graphics.text.MeasuredText, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, contextStart: int | java.jint | java.lang.Integer, contextEnd: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, isRtl: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    @typing.overload
    def drawTextRun(self, text: java.lang.CharSequence, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, contextStart: int | java.jint | java.lang.Integer, contextEnd: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, isRtl: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    @typing.overload
    def drawTextRun(self, text: java.chaquopy.JavaArrayJChar, index: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, contextIndex: int | java.jint | java.lang.Integer, contextCount: int | java.jint | java.lang.Integer, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, isRtl: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> None: ...
    def drawVertices(self, mode: Canvas.VertexMode, vertexCount: int | java.jint | java.lang.Integer, verts: java.chaquopy.JavaArrayJFloat, vertOffset: int | java.jint | java.lang.Integer, texs: java.chaquopy.JavaArrayJFloat, texOffset: int | java.jint | java.lang.Integer, colors: java.chaquopy.JavaArrayJInt, colorOffset: int | java.jint | java.lang.Integer, indices: java.chaquopy.JavaArrayJShort, indexOffset: int | java.jint | java.lang.Integer, indexCount: int | java.jint | java.lang.Integer, paint: Paint, /) -> None: ...
    def enableZ(self) -> None: ...
    def getHeight(self) -> int: ...
    def getMaximumBitmapHeight(self) -> int: ...
    def getMaximumBitmapWidth(self) -> int: ...
    def getWidth(self) -> int: ...
    def isHardwareAccelerated(self) -> bool: ...
    def isOpaque(self) -> bool: ...
    def setBitmap(self, bitmap: Bitmap, /) -> None: ...
    def setDensity(self, density: int | java.jint | java.lang.Integer, /) -> None: ...

class Rect(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[Rect]] = ...
    bottom: int = ...
    left: int = ...
    right: int = ...
    top: int = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, r: Rect, /) -> None: ...
    @typing.overload
    def __init__(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> None: ...
    def centerX(self) -> int: ...
    def centerY(self) -> int: ...
    @typing.overload
    def contains(self, r: Rect, /) -> bool: ...
    @typing.overload
    def contains(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def contains(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> bool: ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def exactCenterX(self) -> float: ...
    def exactCenterY(self) -> float: ...
    def flattenToString(self) -> str: ...
    def hashCode(self) -> int: ...
    def height(self) -> int: ...
    @typing.overload
    def inset(self, insets: Insets, /) -> None: ...
    @typing.overload
    def inset(self, dx: int | java.jint | java.lang.Integer, dy: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def inset(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def intersect(self, r: Rect, /) -> bool: ...
    @typing.overload
    def intersect(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    @staticmethod
    def intersects(a: Rect, b: Rect, /) -> bool: ...
    @typing.overload
    def intersects(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> bool: ...
    def isEmpty(self) -> bool: ...
    def offset(self, dx: int | java.jint | java.lang.Integer, dy: int | java.jint | java.lang.Integer, /) -> None: ...
    def offsetTo(self, newLeft: int | java.jint | java.lang.Integer, newTop: int | java.jint | java.lang.Integer, /) -> None: ...
    def readFromParcel(self, in_: android.os.Parcel, /) -> None: ...
    @typing.overload
    def set(self, src: Rect, /) -> None: ...
    @typing.overload
    def set(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> None: ...
    def setEmpty(self) -> None: ...
    def setIntersect(self, a: Rect, b: Rect, /) -> bool: ...
    def sort(self) -> None: ...
    def toShortString(self) -> str: ...
    def toString(self) -> str: ...
    @staticmethod
    def unflattenFromString(str: str | java.lang.String, /) -> Rect | None: ...
    @typing.overload
    def union(self, r: Rect, /) -> None: ...
    @typing.overload
    def union(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def union(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> None: ...
    def width(self) -> int: ...
    def writeToParcel(self, out: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class RectF(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[RectF]] = ...
    bottom: float = ...
    left: float = ...
    right: float = ...
    top: float = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, r: Rect, /) -> None: ...
    @typing.overload
    def __init__(self, r: RectF, /) -> None: ...
    @typing.overload
    def __init__(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, /) -> None: ...
    def centerX(self) -> float: ...
    def centerY(self) -> float: ...
    @typing.overload
    def contains(self, r: RectF, /) -> bool: ...
    @typing.overload
    def contains(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def contains(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def hashCode(self) -> int: ...
    def height(self) -> float: ...
    def inset(self, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def intersect(self, r: RectF, /) -> bool: ...
    @typing.overload
    def intersect(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    @staticmethod
    def intersects(a: RectF, b: RectF, /) -> bool: ...
    @typing.overload
    def intersects(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def isEmpty(self) -> bool: ...
    def offset(self, dx: float | java.jfloat | java.lang.Float, dy: float | java.jfloat | java.lang.Float, /) -> None: ...
    def offsetTo(self, newLeft: float | java.jfloat | java.lang.Float, newTop: float | java.jfloat | java.lang.Float, /) -> None: ...
    def readFromParcel(self, in_: android.os.Parcel, /) -> None: ...
    def round(self, dst: Rect, /) -> None: ...
    def roundOut(self, dst: Rect, /) -> None: ...
    @typing.overload
    def set(self, src: Rect, /) -> None: ...
    @typing.overload
    def set(self, src: RectF, /) -> None: ...
    @typing.overload
    def set(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setEmpty(self) -> None: ...
    def setIntersect(self, a: RectF, b: RectF, /) -> bool: ...
    def sort(self) -> None: ...
    def toShortString(self) -> str: ...
    def toString(self) -> str: ...
    @typing.overload
    def union(self, r: RectF, /) -> None: ...
    @typing.overload
    def union(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def union(self, left: float | java.jfloat | java.lang.Float, top: float | java.jfloat | java.lang.Float, right: float | java.jfloat | java.lang.Float, bottom: float | java.jfloat | java.lang.Float, /) -> None: ...
    def width(self) -> float: ...
    def writeToParcel(self, out: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class Region(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[Region]] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, r: Rect, /) -> None: ...
    @typing.overload
    def __init__(self, region: Region, /) -> None: ...
    @typing.overload
    def __init__(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> None: ...
    def contains(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, /) -> bool: ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def finalize(self) -> None: ...
    @typing.overload
    def getBoundaryPath(self) -> Path: ...
    @typing.overload
    def getBoundaryPath(self, path: Path, /) -> bool: ...
    @typing.overload
    def getBounds(self) -> Rect: ...
    @typing.overload
    def getBounds(self, r: Rect, /) -> bool: ...
    def isComplex(self) -> bool: ...
    def isEmpty(self) -> bool: ...
    def isRect(self) -> bool: ...
    @typing.overload
    def op(self, r: Rect, op: Region.Op, /) -> bool: ...
    @typing.overload
    def op(self, region: Region, op: Region.Op, /) -> bool: ...
    @typing.overload
    def op(self, rect: Rect, region: Region, op: Region.Op, /) -> bool: ...
    @typing.overload
    def op(self, region1: Region, region2: Region, op: Region.Op, /) -> bool: ...
    @typing.overload
    def op(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, op: Region.Op, /) -> bool: ...
    @typing.overload
    def quickContains(self, r: Rect, /) -> bool: ...
    @typing.overload
    def quickContains(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, /) -> bool: ...
    @typing.overload
    def quickReject(self, r: Rect, /) -> bool: ...
    @typing.overload
    def quickReject(self, arg1: Region, /) -> bool: ...
    @typing.overload
    def quickReject(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, /) -> bool: ...
    @typing.overload
    def set(self, r: Rect, /) -> bool: ...
    @typing.overload
    def set(self, region: Region, /) -> bool: ...
    @typing.overload
    def set(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> bool: ...
    def setEmpty(self) -> None: ...
    def setPath(self, path: Path, clip: Region, /) -> bool: ...
    def toString(self) -> str: ...
    @typing.overload
    def translate(self, dx: int | java.jint | java.lang.Integer, dy: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def translate(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, arg3: Region, /) -> None: ...
    def union(self, r: Rect, /) -> bool: ...
    def writeToParcel(self, p: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Op(java.lang.Enum[Region.Op]):
        DIFFERENCE: typing.ClassVar[Region.Op] = ...
        INTERSECT: typing.ClassVar[Region.Op] = ...
        REPLACE: typing.ClassVar[Region.Op] = ...
        REVERSE_DIFFERENCE: typing.ClassVar[Region.Op] = ...
        UNION: typing.ClassVar[Region.Op] = ...
        XOR: typing.ClassVar[Region.Op] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Region.Op: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Region.Op]: ...

class RegionIterator(java.lang.Object):
    def __init__(self, region: Region, /) -> None: ...
    def finalize(self) -> None: ...
    def next(self, r: Rect, /) -> bool: ...

class RenderEffect(java.lang.Object):
    @typing.overload
    @staticmethod
    def createBitmapEffect(bitmap: Bitmap, /) -> RenderEffect: ...
    @typing.overload
    @staticmethod
    def createBitmapEffect(bitmap: Bitmap, src: Rect, dst: Rect, /) -> RenderEffect: ...
    @staticmethod
    def createBlendModeEffect(dst: RenderEffect, src: RenderEffect, blendMode: BlendMode, /) -> RenderEffect: ...
    @typing.overload
    @staticmethod
    def createBlurEffect(radiusX: float | java.jfloat | java.lang.Float, radiusY: float | java.jfloat | java.lang.Float, edgeTreatment: Shader.TileMode, /) -> RenderEffect: ...
    @typing.overload
    @staticmethod
    def createBlurEffect(radiusX: float | java.jfloat | java.lang.Float, radiusY: float | java.jfloat | java.lang.Float, inputEffect: RenderEffect, edgeTreatment: Shader.TileMode, /) -> RenderEffect: ...
    @staticmethod
    def createChainEffect(outer: RenderEffect, inner: RenderEffect, /) -> RenderEffect: ...
    @typing.overload
    @staticmethod
    def createColorFilterEffect(colorFilter: ColorFilter, /) -> RenderEffect: ...
    @typing.overload
    @staticmethod
    def createColorFilterEffect(colorFilter: ColorFilter, renderEffect: RenderEffect, /) -> RenderEffect: ...
    @typing.overload
    @staticmethod
    def createOffsetEffect(offsetX: float | java.jfloat | java.lang.Float, offsetY: float | java.jfloat | java.lang.Float, /) -> RenderEffect: ...
    @typing.overload
    @staticmethod
    def createOffsetEffect(offsetX: float | java.jfloat | java.lang.Float, offsetY: float | java.jfloat | java.lang.Float, input: RenderEffect, /) -> RenderEffect: ...
    @staticmethod
    def createRuntimeShaderEffect(shader: RuntimeShader, uniformShaderName: str | java.lang.String, /) -> RenderEffect: ...
    @staticmethod
    def createShaderEffect(shader: Shader, /) -> RenderEffect: ...

class RenderNode(java.lang.Object):
    def __init__(self, name: str | java.lang.String, /) -> None: ...
    @typing.overload
    def beginRecording(self) -> RecordingCanvas: ...
    @typing.overload
    def beginRecording(self, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, /) -> RecordingCanvas: ...
    def computeApproximateMemoryUsage(self) -> int: ...
    def discardDisplayList(self) -> None: ...
    def endRecording(self) -> None: ...
    def getAlpha(self) -> float: ...
    def getAmbientShadowColor(self) -> int: ...
    def getBottom(self) -> int: ...
    def getCameraDistance(self) -> float: ...
    def getClipToBounds(self) -> bool: ...
    def getClipToOutline(self) -> bool: ...
    def getElevation(self) -> float: ...
    def getHeight(self) -> int: ...
    def getInverseMatrix(self, outMatrix: Matrix, /) -> None: ...
    def getLeft(self) -> int: ...
    def getMatrix(self, outMatrix: Matrix, /) -> None: ...
    def getPivotX(self) -> float: ...
    def getPivotY(self) -> float: ...
    def getRight(self) -> int: ...
    def getRotationX(self) -> float: ...
    def getRotationY(self) -> float: ...
    def getRotationZ(self) -> float: ...
    def getScaleX(self) -> float: ...
    def getScaleY(self) -> float: ...
    def getSpotShadowColor(self) -> int: ...
    def getTop(self) -> int: ...
    def getTranslationX(self) -> float: ...
    def getTranslationY(self) -> float: ...
    def getTranslationZ(self) -> float: ...
    def getUniqueId(self) -> int: ...
    def getUseCompositingLayer(self) -> bool: ...
    def getWidth(self) -> int: ...
    def hasDisplayList(self) -> bool: ...
    def hasIdentityMatrix(self) -> bool: ...
    def hasOverlappingRendering(self) -> bool: ...
    def hasShadow(self) -> bool: ...
    def isForceDarkAllowed(self) -> bool: ...
    def isPivotExplicitlySet(self) -> bool: ...
    def offsetLeftAndRight(self, offset: int | java.jint | java.lang.Integer, /) -> bool: ...
    def offsetTopAndBottom(self, offset: int | java.jint | java.lang.Integer, /) -> bool: ...
    def resetPivot(self) -> bool: ...
    def setAlpha(self, alpha: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def setAmbientShadowColor(self, color: int | java.jint | java.lang.Integer, /) -> bool: ...
    def setCameraDistance(self, distance: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def setClipRect(self, rect: Rect, /) -> bool: ...
    def setClipToBounds(self, clipToBounds: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def setClipToOutline(self, clipToOutline: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def setElevation(self, lift: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def setForceDarkAllowed(self, allow: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def setHasOverlappingRendering(self, hasOverlappingRendering: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def setOutline(self, outline: Outline, /) -> bool: ...
    def setPivotX(self, pivotX: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def setPivotY(self, pivotY: float | java.jfloat | java.lang.Float, /) -> bool: ...
    @typing.overload
    def setPosition(self, position: Rect, /) -> bool: ...
    @typing.overload
    def setPosition(self, left: int | java.jint | java.lang.Integer, top: int | java.jint | java.lang.Integer, right: int | java.jint | java.lang.Integer, bottom: int | java.jint | java.lang.Integer, /) -> bool: ...
    def setProjectBackwards(self, shouldProject: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def setProjectionReceiver(self, shouldReceive: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def setRenderEffect(self, renderEffect: RenderEffect, /) -> bool: ...
    def setRotationX(self, rotationX: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def setRotationY(self, rotationY: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def setRotationZ(self, rotation: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def setScaleX(self, scaleX: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def setScaleY(self, scaleY: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def setSpotShadowColor(self, color: int | java.jint | java.lang.Integer, /) -> bool: ...
    def setTranslationX(self, translationX: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def setTranslationY(self, translationY: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def setTranslationZ(self, translationZ: float | java.jfloat | java.lang.Float, /) -> bool: ...
    def setUseCompositingLayer(self, forceToLayer: bool | java.jboolean | java.lang.Boolean, paint: Paint, /) -> bool: ...

class RuntimeColorFilter(ColorFilter):
    def __init__(self, agsl: str | java.lang.String, /) -> None: ...
    @typing.overload
    def setColorUniform(self, uniformName: str | java.lang.String, color: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setColorUniform(self, uniformName: str | java.lang.String, color: int | java.jlong | java.lang.Long, /) -> None: ...
    @typing.overload
    def setColorUniform(self, uniformName: str | java.lang.String, color: Color, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, values: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value1: float | java.jfloat | java.lang.Float, value2: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value1: float | java.jfloat | java.lang.Float, value2: float | java.jfloat | java.lang.Float, value3: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value1: float | java.jfloat | java.lang.Float, value2: float | java.jfloat | java.lang.Float, value3: float | java.jfloat | java.lang.Float, value4: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setInputColorFilter(self, filterName: str | java.lang.String, colorFilter: ColorFilter, /) -> None: ...
    def setInputShader(self, shaderName: str | java.lang.String, shader: Shader, /) -> None: ...
    def setInputXfermode(self, xfermodeName: str | java.lang.String, xfermode: RuntimeXfermode, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, values: java.chaquopy.JavaArrayJInt, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value1: int | java.jint | java.lang.Integer, value2: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value1: int | java.jint | java.lang.Integer, value2: int | java.jint | java.lang.Integer, value3: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value1: int | java.jint | java.lang.Integer, value2: int | java.jint | java.lang.Integer, value3: int | java.jint | java.lang.Integer, value4: int | java.jint | java.lang.Integer, /) -> None: ...

class RuntimeShader(Shader):
    def __init__(self, shader: str | java.lang.String, /) -> None: ...
    @typing.overload
    def setColorUniform(self, uniformName: str | java.lang.String, color: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setColorUniform(self, uniformName: str | java.lang.String, color: int | java.jlong | java.lang.Long, /) -> None: ...
    @typing.overload
    def setColorUniform(self, uniformName: str | java.lang.String, color: Color, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, values: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value1: float | java.jfloat | java.lang.Float, value2: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value1: float | java.jfloat | java.lang.Float, value2: float | java.jfloat | java.lang.Float, value3: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value1: float | java.jfloat | java.lang.Float, value2: float | java.jfloat | java.lang.Float, value3: float | java.jfloat | java.lang.Float, value4: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setInputBuffer(self, shaderName: str | java.lang.String, shader: BitmapShader, /) -> None: ...
    def setInputColorFilter(self, filterName: str | java.lang.String, colorFilter: ColorFilter, /) -> None: ...
    def setInputShader(self, shaderName: str | java.lang.String, shader: Shader, /) -> None: ...
    def setInputXfermode(self, xfermodeName: str | java.lang.String, xfermode: RuntimeXfermode, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, values: java.chaquopy.JavaArrayJInt, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value1: int | java.jint | java.lang.Integer, value2: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value1: int | java.jint | java.lang.Integer, value2: int | java.jint | java.lang.Integer, value3: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value1: int | java.jint | java.lang.Integer, value2: int | java.jint | java.lang.Integer, value3: int | java.jint | java.lang.Integer, value4: int | java.jint | java.lang.Integer, /) -> None: ...

class RuntimeXfermode(Xfermode):
    def __init__(self, agsl: str | java.lang.String, /) -> None: ...
    @typing.overload
    def setColorUniform(self, uniformName: str | java.lang.String, color: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setColorUniform(self, uniformName: str | java.lang.String, color: int | java.jlong | java.lang.Long, /) -> None: ...
    @typing.overload
    def setColorUniform(self, uniformName: str | java.lang.String, color: Color, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, values: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value1: float | java.jfloat | java.lang.Float, value2: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value1: float | java.jfloat | java.lang.Float, value2: float | java.jfloat | java.lang.Float, value3: float | java.jfloat | java.lang.Float, /) -> None: ...
    @typing.overload
    def setFloatUniform(self, uniformName: str | java.lang.String, value1: float | java.jfloat | java.lang.Float, value2: float | java.jfloat | java.lang.Float, value3: float | java.jfloat | java.lang.Float, value4: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setInputColorFilter(self, filterName: str | java.lang.String, colorFilter: ColorFilter, /) -> None: ...
    def setInputShader(self, shaderName: str | java.lang.String, shader: Shader, /) -> None: ...
    def setInputXfermode(self, xfermodeName: str | java.lang.String, xfermode: RuntimeXfermode, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, values: java.chaquopy.JavaArrayJInt, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value1: int | java.jint | java.lang.Integer, value2: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value1: int | java.jint | java.lang.Integer, value2: int | java.jint | java.lang.Integer, value3: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setIntUniform(self, uniformName: str | java.lang.String, value1: int | java.jint | java.lang.Integer, value2: int | java.jint | java.lang.Integer, value3: int | java.jint | java.lang.Integer, value4: int | java.jint | java.lang.Integer, /) -> None: ...

class Shader(java.lang.Object):
    def __init__(self) -> None: ...
    def getLocalMatrix(self, localM: Matrix, /) -> bool: ...
    def setLocalMatrix(self, localM: Matrix, /) -> None: ...

    class TileMode(java.lang.Enum[Shader.TileMode]):
        CLAMP: typing.ClassVar[Shader.TileMode] = ...
        DECAL: typing.ClassVar[Shader.TileMode] = ...
        MIRROR: typing.ClassVar[Shader.TileMode] = ...
        REPEAT: typing.ClassVar[Shader.TileMode] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> Shader.TileMode: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[Shader.TileMode]: ...

class SumPathEffect(PathEffect):
    def __init__(self, first: PathEffect, second: PathEffect, /) -> None: ...

class SurfaceTexture(java.lang.Object):
    @typing.overload
    def __init__(self, texName: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, singleBufferMode: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    @typing.overload
    def __init__(self, texName: int | java.jint | java.lang.Integer, singleBufferMode: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def attachToGLContext(self, texName: int | java.jint | java.lang.Integer, /) -> None: ...
    def detachFromGLContext(self) -> None: ...
    def finalize(self) -> None: ...
    def getDataSpace(self) -> int: ...
    def getTimestamp(self) -> int: ...
    def getTransformMatrix(self, mtx: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    def isReleased(self) -> bool: ...
    def release(self) -> None: ...
    def releaseTexImage(self) -> None: ...
    def setDefaultBufferSize(self, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def setOnFrameAvailableListener(self, listener: SurfaceTexture.OnFrameAvailableListener, /) -> None: ...
    @typing.overload
    def setOnFrameAvailableListener(self, listener: SurfaceTexture.OnFrameAvailableListener, handler: android.os.Handler, /) -> None: ...
    def updateTexImage(self) -> None: ...

    class OutOfResourcesException(java.lang.Exception):
        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, name: str | java.lang.String, /) -> None: ...

    class OnFrameAvailableListener(java.lang.Object):
        def onFrameAvailable(self, arg1: SurfaceTexture, /) -> None: ...

class SweepGradient(Shader):
    @typing.overload
    def __init__(self, cx: float | java.jfloat | java.lang.Float, cy: float | java.jfloat | java.lang.Float, color0: int | java.jint | java.lang.Integer, color1: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, cx: float | java.jfloat | java.lang.Float, cy: float | java.jfloat | java.lang.Float, color0: int | java.jlong | java.lang.Long, color1: int | java.jlong | java.lang.Long, /) -> None: ...
    @typing.overload
    def __init__(self, cx: float | java.jfloat | java.lang.Float, cy: float | java.jfloat | java.lang.Float, colors: java.chaquopy.JavaArrayJInt, positions: java.chaquopy.JavaArrayJFloat, /) -> None: ...
    @typing.overload
    def __init__(self, cx: float | java.jfloat | java.lang.Float, cy: float | java.jfloat | java.lang.Float, colors: java.chaquopy.JavaArrayJLong, positions: java.chaquopy.JavaArrayJFloat, /) -> None: ...

class Typeface(java.lang.Object):
    BOLD: typing.ClassVar[int] = ...
    BOLD_ITALIC: typing.ClassVar[int] = ...
    DEFAULT: typing.ClassVar[Typeface] = ...
    DEFAULT_BOLD: typing.ClassVar[Typeface] = ...
    ITALIC: typing.ClassVar[int] = ...
    MONOSPACE: typing.ClassVar[Typeface] = ...
    NORMAL: typing.ClassVar[int] = ...
    SANS_SERIF: typing.ClassVar[Typeface] = ...
    SERIF: typing.ClassVar[Typeface] = ...
    @typing.overload
    @staticmethod
    def create(family: Typeface, style: int | java.jint | java.lang.Integer, /) -> Typeface: ...
    @typing.overload
    @staticmethod
    def create(familyName: str | java.lang.String, style: int | java.jint | java.lang.Integer, /) -> Typeface: ...
    @typing.overload
    @staticmethod
    def create(family: Typeface, weight: int | java.jint | java.lang.Integer, italic: bool | java.jboolean | java.lang.Boolean, /) -> Typeface: ...
    @staticmethod
    def createFromAsset(mgr: android.content.res.AssetManager, path: str | java.lang.String, /) -> Typeface: ...
    @typing.overload
    @staticmethod
    def createFromFile(file: java.io.File, /) -> Typeface: ...
    @typing.overload
    @staticmethod
    def createFromFile(path: str | java.lang.String, /) -> Typeface: ...
    @staticmethod
    def defaultFromStyle(style: int | java.jint | java.lang.Integer, /) -> Typeface: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getStyle(self) -> int: ...
    def getSystemFontFamilyName(self) -> str | None: ...
    def getWeight(self) -> int: ...
    def hashCode(self) -> int: ...
    def isBold(self) -> bool: ...
    def isItalic(self) -> bool: ...

    class CustomFallbackBuilder(java.lang.Object):
        def __init__(self, family: android.graphics.fonts.FontFamily, /) -> None: ...
        def addCustomFallback(self, family: android.graphics.fonts.FontFamily, /) -> Typeface.CustomFallbackBuilder: ...
        def build(self) -> Typeface: ...
        @staticmethod
        def getMaxCustomFallbackCount() -> int: ...
        def setStyle(self, style: android.graphics.fonts.FontStyle, /) -> Typeface.CustomFallbackBuilder: ...
        def setSystemFallback(self, familyName: str | java.lang.String, /) -> Typeface.CustomFallbackBuilder: ...

    class Builder(java.lang.Object):
        @typing.overload
        def __init__(self, path: java.io.File, /) -> None: ...
        @typing.overload
        def __init__(self, fd: java.io.FileDescriptor, /) -> None: ...
        @typing.overload
        def __init__(self, path: str | java.lang.String, /) -> None: ...
        @typing.overload
        def __init__(self, assetManager: android.content.res.AssetManager, path: str | java.lang.String, /) -> None: ...
        def build(self) -> Typeface: ...
        def setFallback(self, familyName: str | java.lang.String, /) -> Typeface.Builder: ...
        @typing.overload
        def setFontVariationSettings(self, variationSettings: str | java.lang.String, /) -> Typeface.Builder: ...
        @typing.overload
        def setFontVariationSettings(self, axes: java.chaquopy.JavaArray[android.graphics.fonts.FontVariationAxis], /) -> Typeface.Builder: ...
        def setItalic(self, italic: bool | java.jboolean | java.lang.Boolean, /) -> Typeface.Builder: ...
        def setTtcIndex(self, ttcIndex: int | java.jint | java.lang.Integer, /) -> Typeface.Builder: ...
        def setWeight(self, weight: int | java.jint | java.lang.Integer, /) -> Typeface.Builder: ...

class Xfermode(java.lang.Object):
    def __init__(self) -> None: ...

class YuvImage(java.lang.Object):
    @typing.overload
    def __init__(self, yuv: java.chaquopy.JavaArrayJByte, format: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, strides: java.chaquopy.JavaArrayJInt, /) -> None: ...
    @typing.overload
    def __init__(self, yuv: java.chaquopy.JavaArrayJByte, format: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, strides: java.chaquopy.JavaArrayJInt, colorSpace: ColorSpace, /) -> None: ...
    def compressToJpeg(self, rectangle: Rect, quality: int | java.jint | java.lang.Integer, stream: java.io.OutputStream, /) -> bool: ...
    def compressToJpegR(self, sdr: YuvImage, quality: int | java.jint | java.lang.Integer, stream: java.io.OutputStream, /) -> bool: ...
    def getColorSpace(self) -> ColorSpace: ...
    def getHeight(self) -> int: ...
    def getStrides(self) -> java.chaquopy.JavaArrayJInt: ...
    def getWidth(self) -> int: ...
    def getYuvData(self) -> java.chaquopy.JavaArrayJByte: ...
    def getYuvFormat(self) -> int: ...
