import typing

import android.content
import android.content.pm
import android.graphics
import android.graphics.drawable
import android.icu.util
import android.net
import android.os
import android.text
import android.util
import android.view
import android.view.autofill
import android.widget.inline
import java
import java.chaquopy
import java.lang
import java.util
import java.util.concurrent
import java.util.function

class BaseInputConnection(InputConnection):
    def __init__(self, targetView: android.view.View, fullEditor: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def beginBatchEdit(self) -> bool: ...
    def clearMetaKeyStates(self, states: int | java.jint | java.lang.Integer, /) -> bool: ...
    def closeConnection(self) -> None: ...
    def commitCompletion(self, text: CompletionInfo, /) -> bool: ...
    def commitContent(self, inputContentInfo: InputContentInfo, flags: int | java.jint | java.lang.Integer, opts: android.os.Bundle, /) -> bool: ...
    def commitCorrection(self, correctionInfo: CorrectionInfo, /) -> bool: ...
    def commitText(self, text: java.lang.CharSequence, newCursorPosition: int | java.jint | java.lang.Integer, /) -> bool: ...
    def deleteSurroundingText(self, beforeLength: int | java.jint | java.lang.Integer, afterLength: int | java.jint | java.lang.Integer, /) -> bool: ...
    def deleteSurroundingTextInCodePoints(self, beforeLength: int | java.jint | java.lang.Integer, afterLength: int | java.jint | java.lang.Integer, /) -> bool: ...
    def endBatchEdit(self) -> bool: ...
    def finishComposingText(self) -> bool: ...
    @staticmethod
    def getComposingSpanEnd(text: android.text.Spannable, /) -> int: ...
    @staticmethod
    def getComposingSpanStart(text: android.text.Spannable, /) -> int: ...
    def getCursorCapsMode(self, reqModes: int | java.jint | java.lang.Integer, /) -> int: ...
    def getEditable(self) -> android.text.Editable | None: ...
    def getExtractedText(self, request: ExtractedTextRequest, flags: int | java.jint | java.lang.Integer, /) -> ExtractedText | None: ...
    def getHandler(self) -> android.os.Handler | None: ...
    def getSelectedText(self, flags: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence | None: ...
    def getSurroundingText(self, beforeLength: int | java.jint | java.lang.Integer, afterLength: int | java.jint | java.lang.Integer, flags: int | java.jint | java.lang.Integer, /) -> SurroundingText | None: ...
    def getTextAfterCursor(self, length: int | java.jint | java.lang.Integer, flags: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence | None: ...
    def getTextBeforeCursor(self, length: int | java.jint | java.lang.Integer, flags: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence | None: ...
    def performContextMenuAction(self, id: int | java.jint | java.lang.Integer, /) -> bool: ...
    def performEditorAction(self, actionCode: int | java.jint | java.lang.Integer, /) -> bool: ...
    def performPrivateCommand(self, action: str | java.lang.String, data: android.os.Bundle, /) -> bool: ...
    @staticmethod
    def removeComposingSpans(text: android.text.Spannable, /) -> None: ...
    def replaceText(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, text: java.lang.CharSequence, newCursorPosition: int | java.jint | java.lang.Integer, textAttribute: TextAttribute, /) -> bool: ...
    def reportFullscreenMode(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def requestCursorUpdates(self, cursorUpdateMode: int | java.jint | java.lang.Integer, /) -> bool: ...
    def sendKeyEvent(self, event: android.view.KeyEvent, /) -> bool: ...
    def setComposingRegion(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, /) -> bool: ...
    @staticmethod
    def setComposingSpans(text: android.text.Spannable, /) -> None: ...
    def setComposingText(self, text: java.lang.CharSequence, newCursorPosition: int | java.jint | java.lang.Integer, /) -> bool: ...
    def setSelection(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, /) -> bool: ...
    def takeSnapshot(self) -> TextSnapshot | None: ...

class CompletionInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[CompletionInfo]] = ...
    @typing.overload
    def __init__(self, id: int | java.jlong | java.lang.Long, index: int | java.jint | java.lang.Integer, text: java.lang.CharSequence, /) -> None: ...
    @typing.overload
    def __init__(self, id: int | java.jlong | java.lang.Long, index: int | java.jint | java.lang.Integer, text: java.lang.CharSequence, label: java.lang.CharSequence, /) -> None: ...
    def describeContents(self) -> int: ...
    def getId(self) -> int: ...
    def getLabel(self) -> java.lang.CharSequence: ...
    def getPosition(self) -> int: ...
    def getText(self) -> java.lang.CharSequence: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class ConnectionlessHandwritingCallback(java.lang.Object):
    CONNECTIONLESS_HANDWRITING_ERROR_NO_TEXT_RECOGNIZED: typing.ClassVar[int] = ...
    CONNECTIONLESS_HANDWRITING_ERROR_OTHER: typing.ClassVar[int] = ...
    CONNECTIONLESS_HANDWRITING_ERROR_UNSUPPORTED: typing.ClassVar[int] = ...
    def onError(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...
    def onResult(self, arg1: java.lang.CharSequence, /) -> None: ...

class CorrectionInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[CorrectionInfo]] = ...
    def __init__(self, offset: int | java.jint | java.lang.Integer, oldText: java.lang.CharSequence, newText: java.lang.CharSequence, /) -> None: ...
    def describeContents(self) -> int: ...
    def getNewText(self) -> java.lang.CharSequence: ...
    def getOffset(self) -> int: ...
    def getOldText(self) -> java.lang.CharSequence: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class CursorAnchorInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[CursorAnchorInfo]] = ...
    FLAG_HAS_INVISIBLE_REGION: typing.ClassVar[int] = ...
    FLAG_HAS_VISIBLE_REGION: typing.ClassVar[int] = ...
    FLAG_IS_RTL: typing.ClassVar[int] = ...
    def __init__(self, source: android.os.Parcel, /) -> None: ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getCharacterBounds(self, index: int | java.jint | java.lang.Integer, /) -> android.graphics.RectF: ...
    def getCharacterBoundsFlags(self, index: int | java.jint | java.lang.Integer, /) -> int: ...
    def getComposingText(self) -> java.lang.CharSequence: ...
    def getComposingTextStart(self) -> int: ...
    def getEditorBoundsInfo(self) -> EditorBoundsInfo | None: ...
    def getInsertionMarkerBaseline(self) -> float: ...
    def getInsertionMarkerBottom(self) -> float: ...
    def getInsertionMarkerFlags(self) -> int: ...
    def getInsertionMarkerHorizontal(self) -> float: ...
    def getInsertionMarkerTop(self) -> float: ...
    def getMatrix(self) -> android.graphics.Matrix: ...
    def getSelectionEnd(self) -> int: ...
    def getSelectionStart(self) -> int: ...
    def getTextAppearanceInfo(self) -> TextAppearanceInfo | None: ...
    def getVisibleLineBounds(self) -> java.util.List[android.graphics.RectF]: ...
    def hashCode(self) -> int: ...
    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) -> None: ...
        def addCharacterBounds(self, index: int | java.jint | java.lang.Integer, 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, flags: int | java.jint | java.lang.Integer, /) -> CursorAnchorInfo.Builder: ...
        def addVisibleLineBounds(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, /) -> CursorAnchorInfo.Builder: ...
        def build(self) -> CursorAnchorInfo: ...
        def clearVisibleLineBounds(self) -> CursorAnchorInfo.Builder: ...
        def reset(self) -> None: ...
        def setComposingText(self, composingTextStart: int | java.jint | java.lang.Integer, composingText: java.lang.CharSequence, /) -> CursorAnchorInfo.Builder: ...
        def setEditorBoundsInfo(self, bounds: EditorBoundsInfo, /) -> CursorAnchorInfo.Builder: ...
        def setInsertionMarkerLocation(self, horizontalPosition: float | java.jfloat | java.lang.Float, lineTop: float | java.jfloat | java.lang.Float, lineBaseline: float | java.jfloat | java.lang.Float, lineBottom: float | java.jfloat | java.lang.Float, flags: int | java.jint | java.lang.Integer, /) -> CursorAnchorInfo.Builder: ...
        def setMatrix(self, matrix: android.graphics.Matrix, /) -> CursorAnchorInfo.Builder: ...
        def setSelectionRange(self, newStart: int | java.jint | java.lang.Integer, newEnd: int | java.jint | java.lang.Integer, /) -> CursorAnchorInfo.Builder: ...
        def setTextAppearanceInfo(self, textAppearanceInfo: TextAppearanceInfo, /) -> CursorAnchorInfo.Builder: ...

class DeleteGesture(android.os.Parcelable, PreviewableHandwritingGesture):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[DeleteGesture]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getDeletionArea(self) -> android.graphics.RectF: ...
    def getGranularity(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) -> None: ...
        def build(self) -> DeleteGesture: ...
        def setDeletionArea(self, area: android.graphics.RectF, /) -> DeleteGesture.Builder: ...
        def setFallbackText(self, fallbackText: str | java.lang.String, /) -> DeleteGesture.Builder: ...
        def setGranularity(self, granularity: int | java.jint | java.lang.Integer, /) -> DeleteGesture.Builder: ...

class DeleteRangeGesture(android.os.Parcelable, PreviewableHandwritingGesture):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[DeleteRangeGesture]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getDeletionEndArea(self) -> android.graphics.RectF: ...
    def getDeletionStartArea(self) -> android.graphics.RectF: ...
    def getGranularity(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) -> None: ...
        def build(self) -> DeleteRangeGesture: ...
        def setDeletionEndArea(self, endArea: android.graphics.RectF, /) -> DeleteRangeGesture.Builder: ...
        def setDeletionStartArea(self, startArea: android.graphics.RectF, /) -> DeleteRangeGesture.Builder: ...
        def setFallbackText(self, fallbackText: str | java.lang.String, /) -> DeleteRangeGesture.Builder: ...
        def setGranularity(self, granularity: int | java.jint | java.lang.Integer, /) -> DeleteRangeGesture.Builder: ...

class EditorBoundsInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[EditorBoundsInfo]] = ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getEditorBounds(self) -> android.graphics.RectF | None: ...
    def getHandwritingBounds(self) -> android.graphics.RectF | None: ...
    def hashCode(self) -> int: ...
    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) -> None: ...
        def build(self) -> EditorBoundsInfo: ...
        def setEditorBounds(self, bounds: android.graphics.RectF, /) -> EditorBoundsInfo.Builder: ...
        def setHandwritingBounds(self, bounds: android.graphics.RectF, /) -> EditorBoundsInfo.Builder: ...

class EditorInfo(android.os.Parcelable, android.text.InputType):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[EditorInfo]] = ...
    IME_ACTION_DONE: typing.ClassVar[int] = ...
    IME_ACTION_GO: typing.ClassVar[int] = ...
    IME_ACTION_NEXT: typing.ClassVar[int] = ...
    IME_ACTION_NONE: typing.ClassVar[int] = ...
    IME_ACTION_PREVIOUS: typing.ClassVar[int] = ...
    IME_ACTION_SEARCH: typing.ClassVar[int] = ...
    IME_ACTION_SEND: typing.ClassVar[int] = ...
    IME_ACTION_UNSPECIFIED: typing.ClassVar[int] = ...
    IME_FLAG_FORCE_ASCII: typing.ClassVar[int] = ...
    IME_FLAG_NAVIGATE_NEXT: typing.ClassVar[int] = ...
    IME_FLAG_NAVIGATE_PREVIOUS: typing.ClassVar[int] = ...
    IME_FLAG_NO_ACCESSORY_ACTION: typing.ClassVar[int] = ...
    IME_FLAG_NO_ENTER_ACTION: typing.ClassVar[int] = ...
    IME_FLAG_NO_EXTRACT_UI: typing.ClassVar[int] = ...
    IME_FLAG_NO_FULLSCREEN: typing.ClassVar[int] = ...
    IME_FLAG_NO_PERSONALIZED_LEARNING: typing.ClassVar[int] = ...
    IME_MASK_ACTION: typing.ClassVar[int] = ...
    IME_NULL: typing.ClassVar[int] = ...
    actionId: int = ...
    actionLabel: java.lang.CharSequence = ...
    contentMimeTypes: java.chaquopy.JavaArray[java.lang.String] = ...
    extras: android.os.Bundle = ...
    fieldId: int = ...
    fieldName: str = ...
    hintLocales: android.os.LocaleList = ...
    hintText: java.lang.CharSequence = ...
    imeOptions: int = ...
    initialCapsMode: int = ...
    initialSelEnd: int = ...
    initialSelStart: int = ...
    inputType: int = ...
    label: java.lang.CharSequence = ...
    packageName: str = ...
    privateImeOptions: str = ...
    def __init__(self) -> None: ...
    def describeContents(self) -> int: ...
    def dump(self, pw: android.util.Printer, prefix: str | java.lang.String, /) -> None: ...
    def getAutofillId(self) -> android.view.autofill.AutofillId: ...
    def getInitialSelectedText(self, flags: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence | None: ...
    def getInitialSurroundingText(self, beforeLength: int | java.jint | java.lang.Integer, afterLength: int | java.jint | java.lang.Integer, flags: int | java.jint | java.lang.Integer, /) -> SurroundingText | None: ...
    def getInitialTextAfterCursor(self, length: int | java.jint | java.lang.Integer, flags: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence | None: ...
    def getInitialTextBeforeCursor(self, length: int | java.jint | java.lang.Integer, flags: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence | None: ...
    def getInitialToolType(self) -> int: ...
    def getSupportedHandwritingGesturePreviews(self) -> java.util.Set[typing.Type[PreviewableHandwritingGesture]]: ...
    def getSupportedHandwritingGestures(self) -> java.util.List[typing.Type[HandwritingGesture]]: ...
    def isStylusHandwritingEnabled(self) -> bool: ...
    def isWritingToolsEnabled(self) -> bool: ...
    def makeCompatible(self, targetSdkVersion: int | java.jint | java.lang.Integer, /) -> None: ...
    def setAutofillId(self, autofillId: android.view.autofill.AutofillId, /) -> None: ...
    def setInitialSurroundingSubText(self, subText: java.lang.CharSequence, subTextStart: int | java.jint | java.lang.Integer, /) -> None: ...
    def setInitialSurroundingText(self, sourceText: java.lang.CharSequence, /) -> None: ...
    def setInitialToolType(self, toolType: int | java.jint | java.lang.Integer, /) -> None: ...
    def setStylusHandwritingEnabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setSupportedHandwritingGesturePreviews(self, gestures: java.util.Set[typing.Type[PreviewableHandwritingGesture]], /) -> None: ...
    def setSupportedHandwritingGestures(self, gestures: java.util.List[typing.Type[HandwritingGesture]], /) -> None: ...
    def setWritingToolsEnabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class ExtractedText(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ExtractedText]] = ...
    FLAG_SELECTING: typing.ClassVar[int] = ...
    FLAG_SINGLE_LINE: typing.ClassVar[int] = ...
    flags: int = ...
    hint: java.lang.CharSequence = ...
    partialEndOffset: int = ...
    partialStartOffset: int = ...
    selectionEnd: int = ...
    selectionStart: int = ...
    startOffset: int = ...
    text: java.lang.CharSequence = ...
    def __init__(self) -> None: ...
    def describeContents(self) -> int: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class ExtractedTextRequest(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ExtractedTextRequest]] = ...
    flags: int = ...
    hintMaxChars: int = ...
    hintMaxLines: int = ...
    token: int = ...
    def __init__(self) -> None: ...
    def describeContents(self) -> int: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class HandwritingGesture(java.lang.Object):
    GRANULARITY_CHARACTER: typing.ClassVar[int] = ...
    GRANULARITY_WORD: typing.ClassVar[int] = ...
    def getFallbackText(self) -> str | None: ...

class InlineSuggestion(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[InlineSuggestion]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getInfo(self) -> InlineSuggestionInfo: ...
    def hashCode(self) -> int: ...
    def inflate(self, context: android.content.Context, size: android.util.Size, callbackExecutor: java.util.concurrent.Executor, callback: java.util.function.Consumer[android.widget.inline.InlineContentView], /) -> None: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class InlineSuggestionInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[InlineSuggestionInfo]] = ...
    SOURCE_AUTOFILL: typing.ClassVar[str] = ...
    SOURCE_PLATFORM: typing.ClassVar[str] = ...
    TYPE_ACTION: typing.ClassVar[str] = ...
    TYPE_SUGGESTION: typing.ClassVar[str] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getAutofillHints(self) -> java.chaquopy.JavaArray[java.lang.String] | None: ...
    def getInlinePresentationSpec(self) -> android.widget.inline.InlinePresentationSpec: ...
    def getSource(self) -> str: ...
    def getType(self) -> str: ...
    def hashCode(self) -> int: ...
    def isPinned(self) -> bool: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class InlineSuggestionsRequest(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[InlineSuggestionsRequest]] = ...
    SUGGESTION_COUNT_UNLIMITED: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getExtras(self) -> android.os.Bundle: ...
    def getHostPackageName(self) -> str: ...
    def getInlinePresentationSpecs(self) -> java.util.List[android.widget.inline.InlinePresentationSpec]: ...
    def getInlineTooltipPresentationSpec(self) -> android.widget.inline.InlinePresentationSpec | None: ...
    def getMaxSuggestionCount(self) -> int: ...
    def getSupportedLocales(self) -> android.os.LocaleList: ...
    def hashCode(self) -> int: ...
    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, inlinePresentationSpecs: java.util.List[android.widget.inline.InlinePresentationSpec], /) -> None: ...
        def addInlinePresentationSpecs(self, value: android.widget.inline.InlinePresentationSpec, /) -> InlineSuggestionsRequest.Builder: ...
        def build(self) -> InlineSuggestionsRequest: ...
        def setExtras(self, value: android.os.Bundle, /) -> InlineSuggestionsRequest.Builder: ...
        def setInlinePresentationSpecs(self, value: java.util.List[android.widget.inline.InlinePresentationSpec], /) -> InlineSuggestionsRequest.Builder: ...
        def setInlineTooltipPresentationSpec(self, value: android.widget.inline.InlinePresentationSpec, /) -> InlineSuggestionsRequest.Builder: ...
        def setMaxSuggestionCount(self, value: int | java.jint | java.lang.Integer, /) -> InlineSuggestionsRequest.Builder: ...
        def setSupportedLocales(self, value: android.os.LocaleList, /) -> InlineSuggestionsRequest.Builder: ...

class InlineSuggestionsResponse(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[InlineSuggestionsResponse]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getInlineSuggestions(self) -> java.util.List[InlineSuggestion]: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class InputBinding(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[InputBinding]] = ...
    @typing.overload
    def __init__(self, conn: InputConnection, binding: InputBinding, /) -> None: ...
    @typing.overload
    def __init__(self, conn: InputConnection, connToken: android.os.IBinder, uid: int | java.jint | java.lang.Integer, pid: int | java.jint | java.lang.Integer, /) -> None: ...
    def describeContents(self) -> int: ...
    def getConnection(self) -> InputConnection: ...
    def getConnectionToken(self) -> android.os.IBinder: ...
    def getPid(self) -> int: ...
    def getUid(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class InputConnection(java.lang.Object):
    CURSOR_UPDATE_FILTER_CHARACTER_BOUNDS: typing.ClassVar[int] = ...
    CURSOR_UPDATE_FILTER_EDITOR_BOUNDS: typing.ClassVar[int] = ...
    CURSOR_UPDATE_FILTER_INSERTION_MARKER: typing.ClassVar[int] = ...
    CURSOR_UPDATE_FILTER_TEXT_APPEARANCE: typing.ClassVar[int] = ...
    CURSOR_UPDATE_FILTER_VISIBLE_LINE_BOUNDS: typing.ClassVar[int] = ...
    CURSOR_UPDATE_IMMEDIATE: typing.ClassVar[int] = ...
    CURSOR_UPDATE_MONITOR: typing.ClassVar[int] = ...
    GET_EXTRACTED_TEXT_MONITOR: typing.ClassVar[int] = ...
    GET_TEXT_WITH_STYLES: typing.ClassVar[int] = ...
    HANDWRITING_GESTURE_RESULT_CANCELLED: typing.ClassVar[int] = ...
    HANDWRITING_GESTURE_RESULT_FAILED: typing.ClassVar[int] = ...
    HANDWRITING_GESTURE_RESULT_FALLBACK: typing.ClassVar[int] = ...
    HANDWRITING_GESTURE_RESULT_SUCCESS: typing.ClassVar[int] = ...
    HANDWRITING_GESTURE_RESULT_UNKNOWN: typing.ClassVar[int] = ...
    HANDWRITING_GESTURE_RESULT_UNSUPPORTED: typing.ClassVar[int] = ...
    INPUT_CONTENT_GRANT_READ_URI_PERMISSION: typing.ClassVar[int] = ...
    def beginBatchEdit(self) -> bool: ...
    def clearMetaKeyStates(self, arg1: int | java.jint | java.lang.Integer, /) -> bool: ...
    def closeConnection(self) -> None: ...
    def commitCompletion(self, arg1: CompletionInfo, /) -> bool: ...
    def commitContent(self, arg1: InputContentInfo, arg2: int | java.jint | java.lang.Integer, arg3: android.os.Bundle, /) -> bool: ...
    def commitCorrection(self, arg1: CorrectionInfo, /) -> bool: ...
    @typing.overload
    def commitText(self, arg1: java.lang.CharSequence, arg2: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def commitText(self, text: java.lang.CharSequence, newCursorPosition: int | java.jint | java.lang.Integer, textAttribute: TextAttribute, /) -> bool: ...
    def deleteSurroundingText(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, /) -> bool: ...
    def deleteSurroundingTextInCodePoints(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, /) -> bool: ...
    def endBatchEdit(self) -> bool: ...
    def finishComposingText(self) -> bool: ...
    def getCursorCapsMode(self, arg1: int | java.jint | java.lang.Integer, /) -> int: ...
    def getExtractedText(self, arg1: ExtractedTextRequest, arg2: int | java.jint | java.lang.Integer, /) -> ExtractedText: ...
    def getHandler(self) -> android.os.Handler | None: ...
    def getSelectedText(self, arg1: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence: ...
    def getSurroundingText(self, beforeLength: int | java.jint | java.lang.Integer, afterLength: int | java.jint | java.lang.Integer, flags: int | java.jint | java.lang.Integer, /) -> SurroundingText | None: ...
    def getTextAfterCursor(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence | None: ...
    def getTextBeforeCursor(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence | None: ...
    def performContextMenuAction(self, arg1: int | java.jint | java.lang.Integer, /) -> bool: ...
    def performEditorAction(self, arg1: int | java.jint | java.lang.Integer, /) -> bool: ...
    def performHandwritingGesture(self, gesture: HandwritingGesture, executor: java.util.concurrent.Executor, consumer: java.util.function.IntConsumer, /) -> None: ...
    def performPrivateCommand(self, arg1: str | java.lang.String, arg2: android.os.Bundle, /) -> bool: ...
    def performSpellCheck(self) -> bool: ...
    def previewHandwritingGesture(self, gesture: PreviewableHandwritingGesture, cancellationSignal: android.os.CancellationSignal, /) -> bool: ...
    def replaceText(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, text: java.lang.CharSequence, newCursorPosition: int | java.jint | java.lang.Integer, textAttribute: TextAttribute, /) -> bool: ...
    def reportFullscreenMode(self, arg1: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    @typing.overload
    def requestCursorUpdates(self, arg1: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def requestCursorUpdates(self, cursorUpdateMode: int | java.jint | java.lang.Integer, cursorUpdateFilter: int | java.jint | java.lang.Integer, /) -> bool: ...
    def requestTextBoundsInfo(self, bounds: android.graphics.RectF, executor: java.util.concurrent.Executor, consumer: java.util.function.Consumer[TextBoundsInfoResult], /) -> None: ...
    def sendKeyEvent(self, arg1: android.view.KeyEvent, /) -> bool: ...
    @typing.overload
    def setComposingRegion(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def setComposingRegion(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, textAttribute: TextAttribute, /) -> bool: ...
    @typing.overload
    def setComposingText(self, arg1: java.lang.CharSequence, arg2: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def setComposingText(self, text: java.lang.CharSequence, newCursorPosition: int | java.jint | java.lang.Integer, textAttribute: TextAttribute, /) -> bool: ...
    def setImeConsumesInput(self, imeConsumesInput: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def setSelection(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, /) -> bool: ...
    def takeSnapshot(self) -> TextSnapshot | None: ...

class InputConnectionWrapper(InputConnection):
    def __init__(self, target: InputConnection, mutable: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def beginBatchEdit(self) -> bool: ...
    def clearMetaKeyStates(self, states: int | java.jint | java.lang.Integer, /) -> bool: ...
    def closeConnection(self) -> None: ...
    def commitCompletion(self, text: CompletionInfo, /) -> bool: ...
    def commitContent(self, inputContentInfo: InputContentInfo, flags: int | java.jint | java.lang.Integer, opts: android.os.Bundle, /) -> bool: ...
    def commitCorrection(self, correctionInfo: CorrectionInfo, /) -> bool: ...
    @typing.overload
    def commitText(self, text: java.lang.CharSequence, newCursorPosition: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def commitText(self, text: java.lang.CharSequence, newCursorPosition: int | java.jint | java.lang.Integer, textAttribute: TextAttribute, /) -> bool: ...
    def deleteSurroundingText(self, beforeLength: int | java.jint | java.lang.Integer, afterLength: int | java.jint | java.lang.Integer, /) -> bool: ...
    def deleteSurroundingTextInCodePoints(self, beforeLength: int | java.jint | java.lang.Integer, afterLength: int | java.jint | java.lang.Integer, /) -> bool: ...
    def endBatchEdit(self) -> bool: ...
    def finishComposingText(self) -> bool: ...
    def getCursorCapsMode(self, reqModes: int | java.jint | java.lang.Integer, /) -> int: ...
    def getExtractedText(self, request: ExtractedTextRequest, flags: int | java.jint | java.lang.Integer, /) -> ExtractedText: ...
    def getHandler(self) -> android.os.Handler: ...
    def getSelectedText(self, flags: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence: ...
    def getSurroundingText(self, beforeLength: int | java.jint | java.lang.Integer, afterLength: int | java.jint | java.lang.Integer, flags: int | java.jint | java.lang.Integer, /) -> SurroundingText | None: ...
    def getTextAfterCursor(self, n: int | java.jint | java.lang.Integer, flags: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence | None: ...
    def getTextBeforeCursor(self, n: int | java.jint | java.lang.Integer, flags: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence | None: ...
    def performContextMenuAction(self, id: int | java.jint | java.lang.Integer, /) -> bool: ...
    def performEditorAction(self, editorAction: int | java.jint | java.lang.Integer, /) -> bool: ...
    def performHandwritingGesture(self, gesture: HandwritingGesture, executor: java.util.concurrent.Executor, consumer: java.util.function.IntConsumer, /) -> None: ...
    def performPrivateCommand(self, action: str | java.lang.String, data: android.os.Bundle, /) -> bool: ...
    def performSpellCheck(self) -> bool: ...
    def previewHandwritingGesture(self, gesture: PreviewableHandwritingGesture, cancellationSignal: android.os.CancellationSignal, /) -> bool: ...
    def replaceText(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, text: java.lang.CharSequence, newCursorPosition: int | java.jint | java.lang.Integer, textAttribute: TextAttribute, /) -> bool: ...
    def reportFullscreenMode(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    @typing.overload
    def requestCursorUpdates(self, cursorUpdateMode: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def requestCursorUpdates(self, cursorUpdateMode: int | java.jint | java.lang.Integer, cursorUpdateFilter: int | java.jint | java.lang.Integer, /) -> bool: ...
    def requestTextBoundsInfo(self, bounds: android.graphics.RectF, executor: java.util.concurrent.Executor, consumer: java.util.function.Consumer[TextBoundsInfoResult], /) -> None: ...
    def sendKeyEvent(self, event: android.view.KeyEvent, /) -> bool: ...
    @typing.overload
    def setComposingRegion(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def setComposingRegion(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, textAttribute: TextAttribute, /) -> bool: ...
    @typing.overload
    def setComposingText(self, text: java.lang.CharSequence, newCursorPosition: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def setComposingText(self, text: java.lang.CharSequence, newCursorPosition: int | java.jint | java.lang.Integer, textAttribute: TextAttribute, /) -> bool: ...
    def setImeConsumesInput(self, imeConsumesInput: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def setSelection(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, /) -> bool: ...
    def setTarget(self, target: InputConnection, /) -> None: ...
    def takeSnapshot(self) -> TextSnapshot | None: ...

class InputContentInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[InputContentInfo]] = ...
    @typing.overload
    def __init__(self, contentUri: android.net.Uri, description: android.content.ClipDescription, /) -> None: ...
    @typing.overload
    def __init__(self, contentUri: android.net.Uri, description: android.content.ClipDescription, linkUri: android.net.Uri, /) -> None: ...
    def describeContents(self) -> int: ...
    def getContentUri(self) -> android.net.Uri: ...
    def getDescription(self) -> android.content.ClipDescription: ...
    def getLinkUri(self) -> android.net.Uri | None: ...
    def releasePermission(self) -> None: ...
    def requestPermission(self) -> None: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class InputMethod(java.lang.Object):
    SERVICE_INTERFACE: typing.ClassVar[str] = ...
    SERVICE_META_DATA: typing.ClassVar[str] = ...
    SHOW_EXPLICIT: typing.ClassVar[int] = ...
    SHOW_FORCED: typing.ClassVar[int] = ...
    def attachToken(self, arg1: android.os.IBinder, /) -> None: ...
    def bindInput(self, arg1: InputBinding, /) -> None: ...
    def changeInputMethodSubtype(self, arg1: InputMethodSubtype, /) -> None: ...
    def createSession(self, arg1: InputMethod.SessionCallback, /) -> None: ...
    def hideSoftInput(self, arg1: int | java.jint | java.lang.Integer, arg2: android.os.ResultReceiver, /) -> None: ...
    def restartInput(self, arg1: InputConnection, arg2: EditorInfo, /) -> None: ...
    def revokeSession(self, arg1: InputMethodSession, /) -> None: ...
    def setSessionEnabled(self, arg1: InputMethodSession, arg2: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def showSoftInput(self, arg1: int | java.jint | java.lang.Integer, arg2: android.os.ResultReceiver, /) -> None: ...
    def startInput(self, arg1: InputConnection, arg2: EditorInfo, /) -> None: ...
    def unbindInput(self) -> None: ...

    class SessionCallback(java.lang.Object):
        def sessionCreated(self, arg1: InputMethodSession, /) -> None: ...

class InputMethodInfo(android.os.Parcelable):
    ACTION_IME_LANGUAGE_SETTINGS: typing.ClassVar[str] = ...
    ACTION_STYLUS_HANDWRITING_SETTINGS: typing.ClassVar[str] = ...
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[InputMethodInfo]] = ...
    @typing.overload
    def __init__(self, context: android.content.Context, service: android.content.pm.ResolveInfo, /) -> None: ...
    @typing.overload
    def __init__(self, packageName: str | java.lang.String, className: str | java.lang.String, label: java.lang.CharSequence, settingsActivity: str | java.lang.String, /) -> None: ...
    def createImeLanguageSettingsActivityIntent(self) -> android.content.Intent: ...
    def createStylusHandwritingSettingsActivityIntent(self) -> android.content.Intent | None: ...
    def describeContents(self) -> int: ...
    def dump(self, pw: android.util.Printer, prefix: str | java.lang.String, /) -> None: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getComponent(self) -> android.content.ComponentName: ...
    def getConfigChanges(self) -> int: ...
    def getId(self) -> str: ...
    def getIsDefaultResourceId(self) -> int: ...
    def getPackageName(self) -> str: ...
    def getServiceInfo(self) -> android.content.pm.ServiceInfo: ...
    def getServiceName(self) -> str: ...
    def getSettingsActivity(self) -> str: ...
    def getSubtypeAt(self, index: int | java.jint | java.lang.Integer, /) -> InputMethodSubtype: ...
    def getSubtypeCount(self) -> int: ...
    def hashCode(self) -> int: ...
    def loadIcon(self, pm: android.content.pm.PackageManager, /) -> android.graphics.drawable.Drawable: ...
    def loadLabel(self, pm: android.content.pm.PackageManager, /) -> java.lang.CharSequence: ...
    def shouldShowInInputMethodPicker(self) -> bool: ...
    def supportsConnectionlessStylusHandwriting(self) -> bool: ...
    def supportsStylusHandwriting(self) -> bool: ...
    def suppressesSpellChecker(self) -> bool: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class InputMethodManager(java.lang.Object):
    HANDWRITING_DELEGATE_FLAG_HOME_DELEGATOR_ALLOWED: typing.ClassVar[int] = ...
    HIDE_IMPLICIT_ONLY: typing.ClassVar[int] = ...
    HIDE_NOT_ALWAYS: typing.ClassVar[int] = ...
    RESULT_HIDDEN: typing.ClassVar[int] = ...
    RESULT_SHOWN: typing.ClassVar[int] = ...
    RESULT_UNCHANGED_HIDDEN: typing.ClassVar[int] = ...
    RESULT_UNCHANGED_SHOWN: typing.ClassVar[int] = ...
    SHOW_FORCED: typing.ClassVar[int] = ...
    SHOW_IMPLICIT: typing.ClassVar[int] = ...
    @typing.overload
    def acceptStylusHandwritingDelegation(self, delegateView: android.view.View, /) -> bool: ...
    @typing.overload
    def acceptStylusHandwritingDelegation(self, delegateView: android.view.View, delegatorPackageName: str | java.lang.String, /) -> bool: ...
    @typing.overload
    def acceptStylusHandwritingDelegation(self, delegateView: android.view.View, delegatorPackageName: str | java.lang.String, executor: java.util.concurrent.Executor, callback: java.util.function.Consumer[java.lang.Boolean], /) -> None: ...
    @typing.overload
    def acceptStylusHandwritingDelegation(self, delegateView: android.view.View, delegatorPackageName: str | java.lang.String, flags: int | java.jint | java.lang.Integer, executor: java.util.concurrent.Executor, callback: java.util.function.Consumer[java.lang.Boolean], /) -> None: ...
    def dispatchKeyEventFromInputMethod(self, targetView: android.view.View, event: android.view.KeyEvent, /) -> None: ...
    def displayCompletions(self, view: android.view.View, completions: java.chaquopy.JavaArray[CompletionInfo], /) -> None: ...
    def getCurrentInputMethodInfo(self) -> InputMethodInfo | None: ...
    def getCurrentInputMethodSubtype(self) -> InputMethodSubtype | None: ...
    def getEnabledInputMethodList(self) -> java.util.List[InputMethodInfo]: ...
    def getEnabledInputMethodSubtypeList(self, imi: InputMethodInfo, allowsImplicitlyEnabledSubtypes: bool | java.jboolean | java.lang.Boolean, /) -> java.util.List[InputMethodSubtype]: ...
    def getInputMethodList(self) -> java.util.List[InputMethodInfo]: ...
    def getLastInputMethodSubtype(self) -> InputMethodSubtype | None: ...
    def getShortcutInputMethodsAndSubtypes(self) -> java.util.Map[InputMethodInfo, java.util.List[InputMethodSubtype]]: ...
    def hideSoftInputFromInputMethod(self, token: android.os.IBinder, flags: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def hideSoftInputFromWindow(self, windowToken: android.os.IBinder, flags: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def hideSoftInputFromWindow(self, windowToken: android.os.IBinder, flags: int | java.jint | java.lang.Integer, resultReceiver: android.os.ResultReceiver, /) -> bool: ...
    def hideStatusIcon(self, imeToken: android.os.IBinder, /) -> None: ...
    def invalidateInput(self, view: android.view.View, /) -> None: ...
    def isAcceptingText(self) -> bool: ...
    @typing.overload
    def isActive(self) -> bool: ...
    @typing.overload
    def isActive(self, view: android.view.View, /) -> bool: ...
    def isConnectionlessStylusHandwritingAvailable(self) -> bool: ...
    def isFullscreenMode(self) -> bool: ...
    def isInputMethodSuppressingSpellChecker(self) -> bool: ...
    def isStylusHandwritingAvailable(self) -> bool: ...
    def isWatchingCursor(self, view: android.view.View, /) -> bool: ...
    @typing.overload
    def prepareStylusHandwritingDelegation(self, delegatorView: android.view.View, /) -> None: ...
    @typing.overload
    def prepareStylusHandwritingDelegation(self, delegatorView: android.view.View, delegatePackageName: str | java.lang.String, /) -> None: ...
    def restartInput(self, view: android.view.View, /) -> None: ...
    def sendAppPrivateCommand(self, view: android.view.View, action: str | java.lang.String, data: android.os.Bundle, /) -> None: ...
    def setAdditionalInputMethodSubtypes(self, imiId: str | java.lang.String, subtypes: java.chaquopy.JavaArray[InputMethodSubtype], /) -> None: ...
    def setCurrentInputMethodSubtype(self, subtype: InputMethodSubtype, /) -> bool: ...
    def setExplicitlyEnabledInputMethodSubtypes(self, imiId: str | java.lang.String, subtypeHashCodes: java.chaquopy.JavaArrayJInt, /) -> None: ...
    def setInputMethod(self, token: android.os.IBinder, id: str | java.lang.String, /) -> None: ...
    def setInputMethodAndSubtype(self, token: android.os.IBinder, id: str | java.lang.String, subtype: InputMethodSubtype, /) -> None: ...
    def shouldOfferSwitchingToNextInputMethod(self, imeToken: android.os.IBinder, /) -> bool: ...
    def showInputMethodAndSubtypeEnabler(self, imiId: str | java.lang.String, /) -> None: ...
    def showInputMethodPicker(self) -> None: ...
    @typing.overload
    def showSoftInput(self, view: android.view.View, flags: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def showSoftInput(self, view: android.view.View, flags: int | java.jint | java.lang.Integer, resultReceiver: android.os.ResultReceiver, /) -> bool: ...
    def showSoftInputFromInputMethod(self, token: android.os.IBinder, flags: int | java.jint | java.lang.Integer, /) -> None: ...
    def showStatusIcon(self, imeToken: android.os.IBinder, packageName: str | java.lang.String, iconId: int | java.jint | java.lang.Integer, /) -> None: ...
    def startConnectionlessStylusHandwriting(self, view: android.view.View, cursorAnchorInfo: CursorAnchorInfo, callbackExecutor: java.util.concurrent.Executor, callback: ConnectionlessHandwritingCallback, /) -> None: ...
    @typing.overload
    def startConnectionlessStylusHandwritingForDelegation(self, delegatorView: android.view.View, cursorAnchorInfo: CursorAnchorInfo, callbackExecutor: java.util.concurrent.Executor, callback: ConnectionlessHandwritingCallback, /) -> None: ...
    @typing.overload
    def startConnectionlessStylusHandwritingForDelegation(self, delegatorView: android.view.View, cursorAnchorInfo: CursorAnchorInfo, delegatePackageName: str | java.lang.String, callbackExecutor: java.util.concurrent.Executor, callback: ConnectionlessHandwritingCallback, /) -> None: ...
    def startStylusHandwriting(self, view: android.view.View, /) -> None: ...
    def switchToLastInputMethod(self, imeToken: android.os.IBinder, /) -> bool: ...
    def switchToNextInputMethod(self, imeToken: android.os.IBinder, onlyCurrentIme: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def toggleSoftInput(self, showFlags: int | java.jint | java.lang.Integer, hideFlags: int | java.jint | java.lang.Integer, /) -> None: ...
    def toggleSoftInputFromWindow(self, windowToken: android.os.IBinder, showFlags: int | java.jint | java.lang.Integer, hideFlags: int | java.jint | java.lang.Integer, /) -> None: ...
    def updateCursor(self, view: android.view.View, 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 updateCursorAnchorInfo(self, view: android.view.View, cursorAnchorInfo: CursorAnchorInfo, /) -> None: ...
    def updateExtractedText(self, view: android.view.View, token: int | java.jint | java.lang.Integer, text: ExtractedText, /) -> None: ...
    def updateSelection(self, view: android.view.View, selStart: int | java.jint | java.lang.Integer, selEnd: int | java.jint | java.lang.Integer, candidatesStart: int | java.jint | java.lang.Integer, candidatesEnd: int | java.jint | java.lang.Integer, /) -> None: ...
    def viewClicked(self, view: android.view.View, /) -> None: ...

class InputMethodSession(java.lang.Object):
    def appPrivateCommand(self, arg1: str | java.lang.String, arg2: android.os.Bundle, /) -> None: ...
    def dispatchGenericMotionEvent(self, arg1: int | java.jint | java.lang.Integer, arg2: android.view.MotionEvent, arg3: InputMethodSession.EventCallback, /) -> None: ...
    def dispatchKeyEvent(self, arg1: int | java.jint | java.lang.Integer, arg2: android.view.KeyEvent, arg3: InputMethodSession.EventCallback, /) -> None: ...
    def dispatchTrackballEvent(self, arg1: int | java.jint | java.lang.Integer, arg2: android.view.MotionEvent, arg3: InputMethodSession.EventCallback, /) -> None: ...
    def displayCompletions(self, arg1: java.chaquopy.JavaArray[CompletionInfo], /) -> None: ...
    def finishInput(self) -> None: ...
    def toggleSoftInput(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, /) -> None: ...
    def updateCursor(self, arg1: android.graphics.Rect, /) -> None: ...
    def updateCursorAnchorInfo(self, arg1: CursorAnchorInfo, /) -> None: ...
    def updateExtractedText(self, arg1: int | java.jint | java.lang.Integer, arg2: ExtractedText, /) -> None: ...
    def updateSelection(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, arg3: int | java.jint | java.lang.Integer, arg4: int | java.jint | java.lang.Integer, arg5: int | java.jint | java.lang.Integer, arg6: int | java.jint | java.lang.Integer, /) -> None: ...
    def viewClicked(self, arg1: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

    class EventCallback(java.lang.Object):
        def finishedEvent(self, arg1: int | java.jint | java.lang.Integer, arg2: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

class InputMethodSubtype(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[InputMethodSubtype]] = ...
    @typing.overload
    def __init__(self, nameId: int | java.jint | java.lang.Integer, iconId: int | java.jint | java.lang.Integer, locale: str | java.lang.String, mode: str | java.lang.String, extraValue: str | java.lang.String, isAuxiliary: bool | java.jboolean | java.lang.Boolean, overridesImplicitlyEnabledSubtype: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    @typing.overload
    def __init__(self, nameId: int | java.jint | java.lang.Integer, iconId: int | java.jint | java.lang.Integer, locale: str | java.lang.String, mode: str | java.lang.String, extraValue: str | java.lang.String, isAuxiliary: bool | java.jboolean | java.lang.Boolean, overridesImplicitlyEnabledSubtype: bool | java.jboolean | java.lang.Boolean, id: int | java.jint | java.lang.Integer, /) -> None: ...
    def containsExtraValueKey(self, key: str | java.lang.String, /) -> bool: ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getDisplayName(self, context: android.content.Context, packageName: str | java.lang.String, appInfo: android.content.pm.ApplicationInfo, /) -> java.lang.CharSequence: ...
    def getExtraValue(self) -> str: ...
    def getExtraValueOf(self, key: str | java.lang.String, /) -> str: ...
    def getIconResId(self) -> int: ...
    def getLanguageTag(self) -> str: ...
    def getLayoutDisplayName(self, context: android.content.Context, imeAppInfo: android.content.pm.ApplicationInfo, /) -> java.lang.CharSequence: ...
    def getLayoutLabelNonLocalized(self) -> java.lang.CharSequence: ...
    def getLayoutLabelResource(self) -> int: ...
    def getLocale(self) -> str: ...
    def getMode(self) -> str: ...
    def getNameOverride(self) -> java.lang.CharSequence: ...
    def getNameResId(self) -> int: ...
    def getPhysicalKeyboardHintLanguageTag(self) -> android.icu.util.ULocale | None: ...
    def getPhysicalKeyboardHintLayoutType(self) -> str: ...
    def hashCode(self) -> int: ...
    def isAsciiCapable(self) -> bool: ...
    def isAuxiliary(self) -> bool: ...
    def overridesImplicitlyEnabledSubtype(self) -> bool: ...
    def writeToParcel(self, dest: android.os.Parcel, parcelableFlags: int | java.jint | java.lang.Integer, /) -> None: ...

    class InputMethodSubtypeBuilder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> InputMethodSubtype: ...
        def setIsAsciiCapable(self, isAsciiCapable: bool | java.jboolean | java.lang.Boolean, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setIsAuxiliary(self, isAuxiliary: bool | java.jboolean | java.lang.Boolean, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setLanguageTag(self, languageTag: str | java.lang.String, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setLayoutLabelNonLocalized(self, layoutLabelNonLocalized: java.lang.CharSequence, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setLayoutLabelResource(self, layoutLabelResId: int | java.jint | java.lang.Integer, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setOverridesImplicitlyEnabledSubtype(self, overridesImplicitlyEnabledSubtype: bool | java.jboolean | java.lang.Boolean, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setPhysicalKeyboardHint(self, languageTag: android.icu.util.ULocale, layoutType: str | java.lang.String, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setSubtypeExtraValue(self, subtypeExtraValue: str | java.lang.String, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setSubtypeIconResId(self, subtypeIconResId: int | java.jint | java.lang.Integer, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setSubtypeId(self, subtypeId: int | java.jint | java.lang.Integer, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setSubtypeLocale(self, subtypeLocale: str | java.lang.String, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setSubtypeMode(self, subtypeMode: str | java.lang.String, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setSubtypeNameOverride(self, nameOverride: java.lang.CharSequence, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...
        def setSubtypeNameResId(self, subtypeNameResId: int | java.jint | java.lang.Integer, /) -> InputMethodSubtype.InputMethodSubtypeBuilder: ...

class InsertGesture(android.os.Parcelable, HandwritingGesture):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[InsertGesture]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getInsertionPoint(self) -> android.graphics.PointF: ...
    def getTextToInsert(self) -> str: ...
    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) -> None: ...
        def build(self) -> InsertGesture: ...
        def setFallbackText(self, fallbackText: str | java.lang.String, /) -> InsertGesture.Builder: ...
        def setInsertionPoint(self, point: android.graphics.PointF, /) -> InsertGesture.Builder: ...
        def setTextToInsert(self, text: str | java.lang.String, /) -> InsertGesture.Builder: ...

class InsertModeGesture(android.os.Parcelable, HandwritingGesture):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[InsertModeGesture]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getCancellationSignal(self) -> android.os.CancellationSignal: ...
    def getInsertionPoint(self) -> android.graphics.PointF: ...
    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) -> None: ...
        def build(self) -> InsertModeGesture: ...
        def setCancellationSignal(self, cancellationSignal: android.os.CancellationSignal, /) -> InsertModeGesture.Builder: ...
        def setFallbackText(self, fallbackText: str | java.lang.String, /) -> InsertModeGesture.Builder: ...
        def setInsertionPoint(self, point: android.graphics.PointF, /) -> InsertModeGesture.Builder: ...

class JoinOrSplitGesture(android.os.Parcelable, HandwritingGesture):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[JoinOrSplitGesture]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getJoinOrSplitPoint(self) -> android.graphics.PointF: ...
    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) -> None: ...
        def build(self) -> JoinOrSplitGesture: ...
        def setFallbackText(self, fallbackText: str | java.lang.String, /) -> JoinOrSplitGesture.Builder: ...
        def setJoinOrSplitPoint(self, point: android.graphics.PointF, /) -> JoinOrSplitGesture.Builder: ...

class PreviewableHandwritingGesture(HandwritingGesture): ...

class RemoveSpaceGesture(android.os.Parcelable, HandwritingGesture):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[RemoveSpaceGesture]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getEndPoint(self) -> android.graphics.PointF: ...
    def getStartPoint(self) -> android.graphics.PointF: ...
    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) -> None: ...
        def build(self) -> RemoveSpaceGesture: ...
        def setFallbackText(self, fallbackText: str | java.lang.String, /) -> RemoveSpaceGesture.Builder: ...
        def setPoints(self, startPoint: android.graphics.PointF, endPoint: android.graphics.PointF, /) -> RemoveSpaceGesture.Builder: ...

class SelectGesture(android.os.Parcelable, PreviewableHandwritingGesture):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[SelectGesture]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getGranularity(self) -> int: ...
    def getSelectionArea(self) -> android.graphics.RectF: ...
    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) -> None: ...
        def build(self) -> SelectGesture: ...
        def setFallbackText(self, fallbackText: str | java.lang.String, /) -> SelectGesture.Builder: ...
        def setGranularity(self, granularity: int | java.jint | java.lang.Integer, /) -> SelectGesture.Builder: ...
        def setSelectionArea(self, area: android.graphics.RectF, /) -> SelectGesture.Builder: ...

class SelectRangeGesture(android.os.Parcelable, PreviewableHandwritingGesture):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[SelectRangeGesture]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getGranularity(self) -> int: ...
    def getSelectionEndArea(self) -> android.graphics.RectF: ...
    def getSelectionStartArea(self) -> android.graphics.RectF: ...
    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) -> None: ...
        def build(self) -> SelectRangeGesture: ...
        def setFallbackText(self, fallbackText: str | java.lang.String, /) -> SelectRangeGesture.Builder: ...
        def setGranularity(self, granularity: int | java.jint | java.lang.Integer, /) -> SelectRangeGesture.Builder: ...
        def setSelectionEndArea(self, endArea: android.graphics.RectF, /) -> SelectRangeGesture.Builder: ...
        def setSelectionStartArea(self, startArea: android.graphics.RectF, /) -> SelectRangeGesture.Builder: ...

class SurroundingText(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[SurroundingText]] = ...
    def __init__(self, text: java.lang.CharSequence, selectionStart: int | java.jint | java.lang.Integer, selectionEnd: int | java.jint | java.lang.Integer, offset: int | java.jint | java.lang.Integer, /) -> None: ...
    def describeContents(self) -> int: ...
    def getOffset(self) -> int: ...
    def getSelectionEnd(self) -> int: ...
    def getSelectionStart(self) -> int: ...
    def getText(self) -> java.lang.CharSequence: ...
    def writeToParcel(self, out: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class TextAppearanceInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextAppearanceInfo]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getFontFeatureSettings(self) -> str | None: ...
    def getFontVariationSettings(self) -> str | None: ...
    def getHighlightTextColor(self) -> int: ...
    def getHintTextColor(self) -> int: ...
    def getLetterSpacing(self) -> float: ...
    def getLineBreakStyle(self) -> int: ...
    def getLineBreakWordStyle(self) -> int: ...
    def getLinkTextColor(self) -> int: ...
    def getShadowColor(self) -> int: ...
    def getShadowDx(self) -> float: ...
    def getShadowDy(self) -> float: ...
    def getShadowRadius(self) -> float: ...
    def getSystemFontFamilyName(self) -> str | None: ...
    def getTextColor(self) -> int: ...
    def getTextFontWeight(self) -> int: ...
    def getTextLocales(self) -> android.os.LocaleList: ...
    def getTextScaleX(self) -> float: ...
    def getTextSize(self) -> float: ...
    def getTextStyle(self) -> int: ...
    def hashCode(self) -> int: ...
    def isAllCaps(self) -> bool: ...
    def isElegantTextHeight(self) -> bool: ...
    def isFallbackLineSpacing(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) -> None: ...
        def build(self) -> TextAppearanceInfo: ...
        def setAllCaps(self, allCaps: bool | java.jboolean | java.lang.Boolean, /) -> TextAppearanceInfo.Builder: ...
        def setElegantTextHeight(self, elegantTextHeight: bool | java.jboolean | java.lang.Boolean, /) -> TextAppearanceInfo.Builder: ...
        def setFallbackLineSpacing(self, fallbackLineSpacing: bool | java.jboolean | java.lang.Boolean, /) -> TextAppearanceInfo.Builder: ...
        def setFontFeatureSettings(self, fontFeatureSettings: str | java.lang.String, /) -> TextAppearanceInfo.Builder: ...
        def setFontVariationSettings(self, fontVariationSettings: str | java.lang.String, /) -> TextAppearanceInfo.Builder: ...
        def setHighlightTextColor(self, highlightTextColor: int | java.jint | java.lang.Integer, /) -> TextAppearanceInfo.Builder: ...
        def setHintTextColor(self, hintTextColor: int | java.jint | java.lang.Integer, /) -> TextAppearanceInfo.Builder: ...
        def setLetterSpacing(self, letterSpacing: float | java.jfloat | java.lang.Float, /) -> TextAppearanceInfo.Builder: ...
        def setLineBreakStyle(self, lineBreakStyle: int | java.jint | java.lang.Integer, /) -> TextAppearanceInfo.Builder: ...
        def setLineBreakWordStyle(self, lineBreakWordStyle: int | java.jint | java.lang.Integer, /) -> TextAppearanceInfo.Builder: ...
        def setLinkTextColor(self, linkTextColor: int | java.jint | java.lang.Integer, /) -> TextAppearanceInfo.Builder: ...
        def setShadowColor(self, shadowColor: int | java.jint | java.lang.Integer, /) -> TextAppearanceInfo.Builder: ...
        def setShadowDx(self, shadowDx: float | java.jfloat | java.lang.Float, /) -> TextAppearanceInfo.Builder: ...
        def setShadowDy(self, shadowDy: float | java.jfloat | java.lang.Float, /) -> TextAppearanceInfo.Builder: ...
        def setShadowRadius(self, shadowRadius: float | java.jfloat | java.lang.Float, /) -> TextAppearanceInfo.Builder: ...
        def setSystemFontFamilyName(self, systemFontFamilyName: str | java.lang.String, /) -> TextAppearanceInfo.Builder: ...
        def setTextColor(self, textColor: int | java.jint | java.lang.Integer, /) -> TextAppearanceInfo.Builder: ...
        def setTextFontWeight(self, textFontWeight: int | java.jint | java.lang.Integer, /) -> TextAppearanceInfo.Builder: ...
        def setTextLocales(self, textLocales: android.os.LocaleList, /) -> TextAppearanceInfo.Builder: ...
        def setTextScaleX(self, textScaleX: float | java.jfloat | java.lang.Float, /) -> TextAppearanceInfo.Builder: ...
        def setTextSize(self, textSize: float | java.jfloat | java.lang.Float, /) -> TextAppearanceInfo.Builder: ...
        def setTextStyle(self, textStyle: int | java.jint | java.lang.Integer, /) -> TextAppearanceInfo.Builder: ...

class TextAttribute(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextAttribute]] = ...
    def describeContents(self) -> int: ...
    def getExtras(self) -> android.os.PersistableBundle: ...
    def getTextConversionSuggestions(self) -> java.util.List[java.lang.String]: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> TextAttribute: ...
        def setExtras(self, extras: android.os.PersistableBundle, /) -> TextAttribute.Builder: ...
        def setTextConversionSuggestions(self, textConversionSuggestions: java.util.List[java.lang.String], /) -> TextAttribute.Builder: ...

class TextBoundsInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextBoundsInfo]] = ...
    FLAG_CHARACTER_LINEFEED: typing.ClassVar[int] = ...
    FLAG_CHARACTER_PUNCTUATION: typing.ClassVar[int] = ...
    FLAG_CHARACTER_WHITESPACE: typing.ClassVar[int] = ...
    FLAG_LINE_IS_RTL: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def getCharacterBidiLevel(self, index: int | java.jint | java.lang.Integer, /) -> int: ...
    def getCharacterBounds(self, index: int | java.jint | java.lang.Integer, bounds: android.graphics.RectF, /) -> None: ...
    def getCharacterFlags(self, index: int | java.jint | java.lang.Integer, /) -> int: ...
    def getEndIndex(self) -> int: ...
    def getGraphemeSegmentFinder(self) -> android.text.SegmentFinder: ...
    def getLineSegmentFinder(self) -> android.text.SegmentFinder: ...
    def getMatrix(self, matrix: android.graphics.Matrix, /) -> None: ...
    def getOffsetForPosition(self, x: float | java.jfloat | java.lang.Float, y: float | java.jfloat | java.lang.Float, /) -> int: ...
    def getRangeForRect(self, area: android.graphics.RectF, segmentFinder: android.text.SegmentFinder, inclusionStrategy: android.text.Layout.TextInclusionStrategy, /) -> java.chaquopy.JavaArrayJInt | None: ...
    def getStartIndex(self) -> int: ...
    def getWordSegmentFinder(self) -> android.text.SegmentFinder: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        def __init__(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, /) -> None: ...
        def build(self) -> TextBoundsInfo: ...
        def clear(self) -> TextBoundsInfo.Builder: ...
        def setCharacterBidiLevel(self, characterBidiLevels: java.chaquopy.JavaArrayJInt, /) -> TextBoundsInfo.Builder: ...
        def setCharacterBounds(self, characterBounds: java.chaquopy.JavaArrayJFloat, /) -> TextBoundsInfo.Builder: ...
        def setCharacterFlags(self, characterFlags: java.chaquopy.JavaArrayJInt, /) -> TextBoundsInfo.Builder: ...
        def setGraphemeSegmentFinder(self, graphemeSegmentFinder: android.text.SegmentFinder, /) -> TextBoundsInfo.Builder: ...
        def setLineSegmentFinder(self, lineSegmentFinder: android.text.SegmentFinder, /) -> TextBoundsInfo.Builder: ...
        def setMatrix(self, matrix: android.graphics.Matrix, /) -> TextBoundsInfo.Builder: ...
        def setStartAndEnd(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, /) -> TextBoundsInfo.Builder: ...
        def setWordSegmentFinder(self, wordSegmentFinder: android.text.SegmentFinder, /) -> TextBoundsInfo.Builder: ...

class TextBoundsInfoResult(java.lang.Object):
    CODE_CANCELLED: typing.ClassVar[int] = ...
    CODE_FAILED: typing.ClassVar[int] = ...
    CODE_SUCCESS: typing.ClassVar[int] = ...
    CODE_UNSUPPORTED: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self, resultCode: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, resultCode: int | java.jint | java.lang.Integer, textBoundsInfo: TextBoundsInfo, /) -> None: ...
    def getResultCode(self) -> int: ...
    def getTextBoundsInfo(self) -> TextBoundsInfo | None: ...

class TextSnapshot(java.lang.Object):
    def __init__(self, surroundingText: SurroundingText, compositionStart: int | java.jint | java.lang.Integer, compositionEnd: int | java.jint | java.lang.Integer, cursorCapsMode: int | java.jint | java.lang.Integer, /) -> None: ...
    def getCompositionEnd(self) -> int: ...
    def getCompositionStart(self) -> int: ...
    def getCursorCapsMode(self) -> int: ...
    def getSelectionEnd(self) -> int: ...
    def getSelectionStart(self) -> int: ...
    def getSurroundingText(self) -> SurroundingText: ...
