import typing

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

class FormEditRecord(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[FormEditRecord]] = ...
    EDIT_TYPE_CLICK: typing.ClassVar[int] = ...
    EDIT_TYPE_SET_INDICES: typing.ClassVar[int] = ...
    EDIT_TYPE_SET_TEXT: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getClickPoint(self) -> android.graphics.Point | None: ...
    def getPageNumber(self) -> int: ...
    def getSelectedIndices(self) -> java.chaquopy.JavaArrayJInt: ...
    def getText(self) -> str | None: ...
    def getType(self) -> int: ...
    def getWidgetIndex(self) -> int: ...
    def hashCode(self) -> int: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        def __init__(self, type: int | java.jint | java.lang.Integer, pageNumber: int | java.jint | java.lang.Integer, widgetIndex: int | java.jint | java.lang.Integer, /) -> None: ...
        def build(self) -> FormEditRecord: ...
        def setClickPoint(self, clickPoint: android.graphics.Point, /) -> FormEditRecord.Builder: ...
        def setSelectedIndices(self, selectedIndices: java.chaquopy.JavaArrayJInt, /) -> FormEditRecord.Builder: ...
        def setText(self, text: str | java.lang.String, /) -> FormEditRecord.Builder: ...

class FormWidgetInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[FormWidgetInfo]] = ...
    WIDGET_TYPE_CHECKBOX: typing.ClassVar[int] = ...
    WIDGET_TYPE_COMBOBOX: typing.ClassVar[int] = ...
    WIDGET_TYPE_LISTBOX: typing.ClassVar[int] = ...
    WIDGET_TYPE_PUSHBUTTON: typing.ClassVar[int] = ...
    WIDGET_TYPE_RADIOBUTTON: typing.ClassVar[int] = ...
    WIDGET_TYPE_SIGNATURE: typing.ClassVar[int] = ...
    WIDGET_TYPE_TEXTFIELD: typing.ClassVar[int] = ...
    WIDGET_TYPE_UNKNOWN: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getAccessibilityLabel(self) -> str | None: ...
    def getFontSize(self) -> float: ...
    def getListItems(self) -> java.util.List[ListItem]: ...
    def getMaxLength(self) -> int: ...
    def getTextValue(self) -> str | None: ...
    def getWidgetIndex(self) -> int: ...
    def getWidgetRect(self) -> android.graphics.Rect: ...
    def getWidgetType(self) -> int: ...
    def hashCode(self) -> int: ...
    def isEditableText(self) -> bool: ...
    def isMultiLineText(self) -> bool: ...
    def isMultiSelect(self) -> bool: ...
    def isReadOnly(self) -> bool: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        def __init__(self, widgetType: int | java.jint | java.lang.Integer, widgetIndex: int | java.jint | java.lang.Integer, widgetRect: android.graphics.Rect, textValue: str | java.lang.String, accessibilityLabel: str | java.lang.String, /) -> None: ...
        def build(self) -> FormWidgetInfo: ...
        def setEditableText(self, editableText: bool | java.jboolean | java.lang.Boolean, /) -> FormWidgetInfo.Builder: ...
        def setFontSize(self, fontSize: float | java.jfloat | java.lang.Float, /) -> FormWidgetInfo.Builder: ...
        def setListItems(self, listItems: java.util.List[ListItem], /) -> FormWidgetInfo.Builder: ...
        def setMaxLength(self, maxLength: int | java.jint | java.lang.Integer, /) -> FormWidgetInfo.Builder: ...
        def setMultiLineText(self, multiLineText: bool | java.jboolean | java.lang.Boolean, /) -> FormWidgetInfo.Builder: ...
        def setMultiSelect(self, multiSelect: bool | java.jboolean | java.lang.Boolean, /) -> FormWidgetInfo.Builder: ...
        def setReadOnly(self, readOnly: bool | java.jboolean | java.lang.Boolean, /) -> FormWidgetInfo.Builder: ...

class ListItem(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ListItem]] = ...
    def __init__(self, label: str | java.lang.String, selected: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getLabel(self) -> str: ...
    def hashCode(self) -> int: ...
    def isSelected(self) -> bool: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class PageMatchBounds(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[PageMatchBounds]] = ...
    def __init__(self, bounds: java.util.List[android.graphics.RectF], textStartIndex: int | java.jint | java.lang.Integer, /) -> None: ...
    def describeContents(self) -> int: ...
    def getBounds(self) -> java.util.List[android.graphics.RectF]: ...
    def getTextStartIndex(self) -> int: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...
