import typing

import android.app
import android.content
import android.content.res
import android.graphics
import android.graphics.drawable
import android.os
import android.util
import android.view
import android.view.inputmethod
import android.widget
import java
import java.chaquopy
import java.io
import java.lang
import java.time
import java.util

class AbstractInputMethodService(android.app.Service, android.view.KeyEvent.Callback):
    def __init__(self) -> None: ...
    def dump(self, fd: java.io.FileDescriptor, fout: java.io.PrintWriter, args: java.chaquopy.JavaArray[java.lang.String], /) -> None: ...
    def getKeyDispatcherState(self) -> android.view.KeyEvent.DispatcherState: ...
    def getSystemService(self, name: str | java.lang.String, /) -> java.lang.Object: ...
    def onBind(self, intent: android.content.Intent, /) -> android.os.IBinder: ...
    def onConfigurationChanged(self, configuration: android.content.res.Configuration, /) -> None: ...
    def onCreateInputMethodInterface(self) -> AbstractInputMethodService.AbstractInputMethodImpl: ...
    def onCreateInputMethodSessionInterface(self) -> AbstractInputMethodService.AbstractInputMethodSessionImpl: ...
    def onDestroy(self) -> None: ...
    def onGenericMotionEvent(self, event: android.view.MotionEvent, /) -> bool: ...
    def onLowMemory(self) -> None: ...
    def onShouldVerifyKeyEvent(self, event: android.view.KeyEvent, /) -> bool: ...
    def onTrackballEvent(self, event: android.view.MotionEvent, /) -> bool: ...
    def onTrimMemory(self, level: int | java.jint | java.lang.Integer, /) -> None: ...
    def registerComponentCallbacks(self, callback: android.content.ComponentCallbacks, /) -> None: ...
    def unregisterComponentCallbacks(self, callback: android.content.ComponentCallbacks, /) -> None: ...

    class AbstractInputMethodSessionImpl(android.view.inputmethod.InputMethodSession):
        def __init__(self, this_0: AbstractInputMethodService, /) -> None: ...
        def dispatchGenericMotionEvent(self, seq: int | java.jint | java.lang.Integer, event: android.view.MotionEvent, callback: android.view.inputmethod.InputMethodSession.EventCallback, /) -> None: ...
        def dispatchKeyEvent(self, seq: int | java.jint | java.lang.Integer, event: android.view.KeyEvent, callback: android.view.inputmethod.InputMethodSession.EventCallback, /) -> None: ...
        def dispatchTrackballEvent(self, seq: int | java.jint | java.lang.Integer, event: android.view.MotionEvent, callback: android.view.inputmethod.InputMethodSession.EventCallback, /) -> None: ...
        def isEnabled(self) -> bool: ...
        def isRevoked(self) -> bool: ...
        def onShouldVerifyKeyEvent(self, event: android.view.KeyEvent, /) -> bool: ...
        def revokeSelf(self) -> None: ...
        def setEnabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

    class AbstractInputMethodImpl(android.view.inputmethod.InputMethod):
        def __init__(self, this_0: AbstractInputMethodService, /) -> None: ...
        def createSession(self, callback: android.view.inputmethod.InputMethod.SessionCallback, /) -> None: ...
        def revokeSession(self, session: android.view.inputmethod.InputMethodSession, /) -> None: ...
        def setSessionEnabled(self, session: android.view.inputmethod.InputMethodSession, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

class ExtractEditText(android.widget.EditText):
    @typing.overload
    def __init__(self, context: android.content.Context, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, defStyleAttr: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, defStyleAttr: int | java.jint | java.lang.Integer, defStyleRes: int | java.jint | java.lang.Integer, /) -> None: ...
    def finishInternalChanges(self) -> None: ...
    def hasFocus(self) -> bool: ...
    def hasVerticalScrollBar(self) -> bool: ...
    def hasWindowFocus(self) -> bool: ...
    def isFocused(self) -> bool: ...
    def isInputMethodTarget(self) -> bool: ...
    def onSelectionChanged(self, selStart: int | java.jint | java.lang.Integer, selEnd: int | java.jint | java.lang.Integer, /) -> None: ...
    def onTextContextMenuItem(self, id: int | java.jint | java.lang.Integer, /) -> bool: ...
    def performClick(self) -> bool: ...
    def setExtractedText(self, text: android.view.inputmethod.ExtractedText, /) -> None: ...
    def startInternalChanges(self) -> None: ...

class InputMethodService(AbstractInputMethodService):
    BACK_DISPOSITION_ADJUST_NOTHING: typing.ClassVar[int] = ...
    BACK_DISPOSITION_DEFAULT: typing.ClassVar[int] = ...
    BACK_DISPOSITION_WILL_DISMISS: typing.ClassVar[int] = ...
    BACK_DISPOSITION_WILL_NOT_DISMISS: typing.ClassVar[int] = ...
    def __init__(self) -> None: ...
    def dump(self, fd: java.io.FileDescriptor, fout: java.io.PrintWriter, args: java.chaquopy.JavaArray[java.lang.String], /) -> None: ...
    def enableHardwareAcceleration(self) -> bool: ...
    def finishConnectionlessStylusHandwriting(self, text: java.lang.CharSequence, /) -> None: ...
    def finishStylusHandwriting(self) -> None: ...
    def getBackDisposition(self) -> int: ...
    def getCandidatesHiddenVisibility(self) -> int: ...
    def getCurrentInputBinding(self) -> android.view.inputmethod.InputBinding: ...
    def getCurrentInputConnection(self) -> android.view.inputmethod.InputConnection: ...
    def getCurrentInputEditorInfo(self) -> android.view.inputmethod.EditorInfo: ...
    def getCurrentInputStarted(self) -> bool: ...
    def getInputMethodWindowRecommendedHeight(self) -> int: ...
    def getLayoutInflater(self) -> android.view.LayoutInflater: ...
    def getMaxWidth(self) -> int: ...
    @staticmethod
    def getStylusHandwritingIdleTimeoutMax() -> java.time.Duration: ...
    def getStylusHandwritingSessionTimeout(self) -> java.time.Duration: ...
    def getStylusHandwritingWindow(self) -> android.view.Window | None: ...
    def getSystemService(self, name: str | java.lang.String, /) -> java.lang.Object: ...
    def getTextForImeAction(self, imeOptions: int | java.jint | java.lang.Integer, /) -> java.lang.CharSequence | None: ...
    def getWindow(self) -> android.app.Dialog: ...
    def hideStatusIcon(self) -> None: ...
    def hideWindow(self) -> None: ...
    def isExtractViewShown(self) -> bool: ...
    def isFullscreenMode(self) -> bool: ...
    def isInputViewShown(self) -> bool: ...
    def isShowInputRequested(self) -> bool: ...
    def onAppPrivateCommand(self, action: str | java.lang.String, data: android.os.Bundle, /) -> None: ...
    def onBindInput(self) -> None: ...
    def onComputeInsets(self, outInsets: InputMethodService.Insets, /) -> None: ...
    def onConfigurationChanged(self, newConfig: android.content.res.Configuration, /) -> None: ...
    def onConfigureWindow(self, win: android.view.Window, isFullscreen: bool | java.jboolean | java.lang.Boolean, isCandidatesOnly: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def onCreate(self) -> None: ...
    def onCreateCandidatesView(self) -> android.view.View: ...
    def onCreateExtractTextView(self) -> android.view.View: ...
    def onCreateInlineSuggestionsRequest(self, uiExtras: android.os.Bundle, /) -> android.view.inputmethod.InlineSuggestionsRequest | None: ...
    def onCreateInputMethodInterface(self) -> AbstractInputMethodService.AbstractInputMethodImpl: ...
    def onCreateInputMethodSessionInterface(self) -> AbstractInputMethodService.AbstractInputMethodSessionImpl: ...
    def onCreateInputView(self) -> android.view.View: ...
    def onCurrentInputMethodSubtypeChanged(self, newSubtype: android.view.inputmethod.InputMethodSubtype, /) -> None: ...
    def onCustomImeSwitcherButtonRequestedVisible(self, visible: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def onDestroy(self) -> None: ...
    def onDisplayCompletions(self, completions: java.chaquopy.JavaArray[android.view.inputmethod.CompletionInfo], /) -> None: ...
    def onEvaluateFullscreenMode(self) -> bool: ...
    def onEvaluateInputViewShown(self) -> bool: ...
    def onExtractTextContextMenuItem(self, id: int | java.jint | java.lang.Integer, /) -> bool: ...
    def onExtractedCursorMovement(self, dx: int | java.jint | java.lang.Integer, dy: int | java.jint | java.lang.Integer, /) -> None: ...
    def onExtractedSelectionChanged(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, /) -> None: ...
    def onExtractedTextClicked(self) -> None: ...
    def onExtractingInputChanged(self, ei: android.view.inputmethod.EditorInfo, /) -> None: ...
    def onFinishCandidatesView(self, finishingInput: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def onFinishInput(self) -> None: ...
    def onFinishInputView(self, finishingInput: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def onFinishStylusHandwriting(self) -> None: ...
    def onGenericMotionEvent(self, event: android.view.MotionEvent, /) -> bool: ...
    def onInitializeInterface(self) -> None: ...
    def onInlineSuggestionsResponse(self, response: android.view.inputmethod.InlineSuggestionsResponse, /) -> bool: ...
    def onKeyDown(self, keyCode: int | java.jint | java.lang.Integer, event: android.view.KeyEvent, /) -> bool: ...
    def onKeyLongPress(self, keyCode: int | java.jint | java.lang.Integer, event: android.view.KeyEvent, /) -> bool: ...
    def onKeyMultiple(self, keyCode: int | java.jint | java.lang.Integer, count: int | java.jint | java.lang.Integer, event: android.view.KeyEvent, /) -> bool: ...
    def onKeyUp(self, keyCode: int | java.jint | java.lang.Integer, event: android.view.KeyEvent, /) -> bool: ...
    def onPrepareStylusHandwriting(self) -> None: ...
    def onShouldVerifyKeyEvent(self, keyEvent: android.view.KeyEvent, /) -> bool: ...
    def onShowInputRequested(self, flags: int | java.jint | java.lang.Integer, configChange: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def onStartCandidatesView(self, editorInfo: android.view.inputmethod.EditorInfo, restarting: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def onStartConnectionlessStylusHandwriting(self, inputType: int | java.jint | java.lang.Integer, cursorAnchorInfo: android.view.inputmethod.CursorAnchorInfo, /) -> bool: ...
    def onStartInput(self, attribute: android.view.inputmethod.EditorInfo, restarting: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def onStartInputView(self, editorInfo: android.view.inputmethod.EditorInfo, restarting: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def onStartStylusHandwriting(self) -> bool: ...
    def onStylusHandwritingMotionEvent(self, motionEvent: android.view.MotionEvent, /) -> None: ...
    def onTrackballEvent(self, event: android.view.MotionEvent, /) -> bool: ...
    def onUnbindInput(self) -> None: ...
    def onUpdateCursor(self, newCursor: android.graphics.Rect, /) -> None: ...
    def onUpdateCursorAnchorInfo(self, cursorAnchorInfo: android.view.inputmethod.CursorAnchorInfo, /) -> None: ...
    def onUpdateEditorToolType(self, toolType: int | java.jint | java.lang.Integer, /) -> None: ...
    def onUpdateExtractedText(self, token: int | java.jint | java.lang.Integer, text: android.view.inputmethod.ExtractedText, /) -> None: ...
    def onUpdateExtractingViews(self, ei: android.view.inputmethod.EditorInfo, /) -> None: ...
    def onUpdateExtractingVisibility(self, ei: android.view.inputmethod.EditorInfo, /) -> None: ...
    def onUpdateSelection(self, oldSelStart: int | java.jint | java.lang.Integer, oldSelEnd: int | java.jint | java.lang.Integer, newSelStart: int | java.jint | java.lang.Integer, newSelEnd: int | java.jint | java.lang.Integer, candidatesStart: int | java.jint | java.lang.Integer, candidatesEnd: int | java.jint | java.lang.Integer, /) -> None: ...
    def onViewClicked(self, focusChanged: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def onWindowHidden(self) -> None: ...
    def onWindowShown(self) -> None: ...
    def requestHideSelf(self, flags: int | java.jint | java.lang.Integer, /) -> None: ...
    def requestShowSelf(self, flags: int | java.jint | java.lang.Integer, /) -> None: ...
    def sendDefaultEditorAction(self, fromEnterKey: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def sendDownUpKeyEvents(self, keyEventCode: int | java.jint | java.lang.Integer, /) -> None: ...
    def sendKeyChar(self, charCode: str | java.jchar | java.lang.Character, /) -> None: ...
    def setBackDisposition(self, disposition: int | java.jint | java.lang.Integer, /) -> None: ...
    def setCandidatesView(self, view: android.view.View, /) -> None: ...
    def setCandidatesViewShown(self, shown: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setExtractView(self, view: android.view.View, /) -> None: ...
    def setExtractViewShown(self, shown: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setInputView(self, view: android.view.View, /) -> None: ...
    def setStylusHandwritingRegion(self, handwritingRegion: android.graphics.Region, /) -> None: ...
    def setStylusHandwritingSessionTimeout(self, duration: java.time.Duration, /) -> None: ...
    def setTheme(self, theme: int | java.jint | java.lang.Integer, /) -> None: ...
    def shouldOfferSwitchingToNextInputMethod(self) -> bool: ...
    def showStatusIcon(self, iconResId: int | java.jint | java.lang.Integer, /) -> None: ...
    def showWindow(self, showInput: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    @typing.overload
    def switchInputMethod(self, id: str | java.lang.String, /) -> None: ...
    @typing.overload
    def switchInputMethod(self, id: str | java.lang.String, subtype: android.view.inputmethod.InputMethodSubtype, /) -> None: ...
    def switchToNextInputMethod(self, onlyCurrentIme: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def switchToPreviousInputMethod(self) -> bool: ...
    def updateFullscreenMode(self) -> None: ...
    def updateInputViewShown(self) -> None: ...

    class Insets(java.lang.Object):
        TOUCHABLE_INSETS_CONTENT: typing.ClassVar[int] = ...
        TOUCHABLE_INSETS_FRAME: typing.ClassVar[int] = ...
        TOUCHABLE_INSETS_REGION: typing.ClassVar[int] = ...
        TOUCHABLE_INSETS_VISIBLE: typing.ClassVar[int] = ...
        contentTopInsets: int = ...
        touchableInsets: int = ...
        touchableRegion: android.graphics.Region = ...
        visibleTopInsets: int = ...
        def __init__(self) -> None: ...

    class InputMethodSessionImpl(AbstractInputMethodService.AbstractInputMethodSessionImpl):
        def __init__(self, this_0: InputMethodService, /) -> None: ...
        def appPrivateCommand(self, action: str | java.lang.String, data: android.os.Bundle, /) -> None: ...
        def displayCompletions(self, completions: java.chaquopy.JavaArray[android.view.inputmethod.CompletionInfo], /) -> None: ...
        def finishInput(self) -> None: ...
        def toggleSoftInput(self, showFlags: int | java.jint | java.lang.Integer, hideFlags: int | java.jint | java.lang.Integer, /) -> None: ...
        def updateCursor(self, newCursor: android.graphics.Rect, /) -> None: ...
        def updateCursorAnchorInfo(self, info: android.view.inputmethod.CursorAnchorInfo, /) -> None: ...
        def updateExtractedText(self, token: int | java.jint | java.lang.Integer, text: android.view.inputmethod.ExtractedText, /) -> None: ...
        def updateSelection(self, oldSelStart: int | java.jint | java.lang.Integer, oldSelEnd: int | java.jint | java.lang.Integer, newSelStart: int | java.jint | java.lang.Integer, newSelEnd: int | java.jint | java.lang.Integer, candidatesStart: int | java.jint | java.lang.Integer, candidatesEnd: int | java.jint | java.lang.Integer, /) -> None: ...
        def viewClicked(self, focusChanged: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

    class InputMethodImpl(AbstractInputMethodService.AbstractInputMethodImpl):
        def __init__(self, this_0: InputMethodService, /) -> None: ...
        def attachToken(self, token: android.os.IBinder, /) -> None: ...
        def bindInput(self, binding: android.view.inputmethod.InputBinding, /) -> None: ...
        def changeInputMethodSubtype(self, subtype: android.view.inputmethod.InputMethodSubtype, /) -> None: ...
        def hideSoftInput(self, flags: int | java.jint | java.lang.Integer, resultReceiver: android.os.ResultReceiver, /) -> None: ...
        def restartInput(self, ic: android.view.inputmethod.InputConnection, editorInfo: android.view.inputmethod.EditorInfo, /) -> None: ...
        def showSoftInput(self, flags: int | java.jint | java.lang.Integer, resultReceiver: android.os.ResultReceiver, /) -> None: ...
        def startInput(self, ic: android.view.inputmethod.InputConnection, editorInfo: android.view.inputmethod.EditorInfo, /) -> None: ...
        def unbindInput(self) -> None: ...

class Keyboard(java.lang.Object):
    EDGE_BOTTOM: typing.ClassVar[int] = ...
    EDGE_LEFT: typing.ClassVar[int] = ...
    EDGE_RIGHT: typing.ClassVar[int] = ...
    EDGE_TOP: typing.ClassVar[int] = ...
    KEYCODE_ALT: typing.ClassVar[int] = ...
    KEYCODE_CANCEL: typing.ClassVar[int] = ...
    KEYCODE_DELETE: typing.ClassVar[int] = ...
    KEYCODE_DONE: typing.ClassVar[int] = ...
    KEYCODE_MODE_CHANGE: typing.ClassVar[int] = ...
    KEYCODE_SHIFT: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self, context: android.content.Context, xmlLayoutResId: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, xmlLayoutResId: int | java.jint | java.lang.Integer, modeId: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, xmlLayoutResId: int | java.jint | java.lang.Integer, modeId: int | java.jint | java.lang.Integer, width: int | java.jint | java.lang.Integer, height: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, layoutTemplateResId: int | java.jint | java.lang.Integer, characters: java.lang.CharSequence, columns: int | java.jint | java.lang.Integer, horizontalPadding: int | java.jint | java.lang.Integer, /) -> None: ...
    def createKeyFromXml(self, res: android.content.res.Resources, parent: Keyboard.Row, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, parser: android.content.res.XmlResourceParser, /) -> Keyboard.Key: ...
    def createRowFromXml(self, res: android.content.res.Resources, parser: android.content.res.XmlResourceParser, /) -> Keyboard.Row: ...
    def getHeight(self) -> int: ...
    def getHorizontalGap(self) -> int: ...
    def getKeyHeight(self) -> int: ...
    def getKeyWidth(self) -> int: ...
    def getKeys(self) -> java.util.List[Keyboard.Key]: ...
    def getMinWidth(self) -> int: ...
    def getModifierKeys(self) -> java.util.List[Keyboard.Key]: ...
    def getNearestKeys(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, /) -> java.chaquopy.JavaArrayJInt: ...
    def getShiftKeyIndex(self) -> int: ...
    def getVerticalGap(self) -> int: ...
    def isShifted(self) -> bool: ...
    def setHorizontalGap(self, gap: int | java.jint | java.lang.Integer, /) -> None: ...
    def setKeyHeight(self, height: int | java.jint | java.lang.Integer, /) -> None: ...
    def setKeyWidth(self, width: int | java.jint | java.lang.Integer, /) -> None: ...
    def setShifted(self, shiftState: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def setVerticalGap(self, gap: int | java.jint | java.lang.Integer, /) -> None: ...

    class Row(java.lang.Object):
        defaultHeight: int = ...
        defaultHorizontalGap: int = ...
        defaultWidth: int = ...
        mode: int = ...
        rowEdgeFlags: int = ...
        verticalGap: int = ...
        @typing.overload
        def __init__(self, parent: Keyboard, /) -> None: ...
        @typing.overload
        def __init__(self, res: android.content.res.Resources, parent: Keyboard, parser: android.content.res.XmlResourceParser, /) -> None: ...

    class Key(java.lang.Object):
        codes: java.chaquopy.JavaArrayJInt = ...
        edgeFlags: int = ...
        gap: int = ...
        height: int = ...
        icon: android.graphics.drawable.Drawable = ...
        iconPreview: android.graphics.drawable.Drawable = ...
        label: java.lang.CharSequence = ...
        modifier: bool = ...
        on: bool = ...
        popupCharacters: java.lang.CharSequence = ...
        popupResId: int = ...
        pressed: bool = ...
        repeatable: bool = ...
        sticky: bool = ...
        text: java.lang.CharSequence = ...
        width: int = ...
        x: int = ...
        y: int = ...
        @typing.overload
        def __init__(self, parent: Keyboard.Row, /) -> None: ...
        @typing.overload
        def __init__(self, res: android.content.res.Resources, parent: Keyboard.Row, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, parser: android.content.res.XmlResourceParser, /) -> None: ...
        def getCurrentDrawableState(self) -> java.chaquopy.JavaArrayJInt: ...
        def isInside(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, /) -> bool: ...
        def onPressed(self) -> None: ...
        def onReleased(self, inside: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
        def squaredDistanceFrom(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, /) -> int: ...

class KeyboardView(android.view.View, android.view.View.OnClickListener):
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, defStyleAttr: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, defStyleAttr: int | java.jint | java.lang.Integer, defStyleRes: int | java.jint | java.lang.Integer, /) -> None: ...
    def closing(self) -> None: ...
    def getKeyboard(self) -> Keyboard: ...
    def getOnKeyboardActionListener(self) -> KeyboardView.OnKeyboardActionListener: ...
    def handleBack(self) -> bool: ...
    def invalidateAllKeys(self) -> None: ...
    def invalidateKey(self, keyIndex: int | java.jint | java.lang.Integer, /) -> None: ...
    def isPreviewEnabled(self) -> bool: ...
    def isProximityCorrectionEnabled(self) -> bool: ...
    def isShifted(self) -> bool: ...
    def onAttachedToWindow(self) -> None: ...
    def onClick(self, v: android.view.View, /) -> None: ...
    def onDetachedFromWindow(self) -> None: ...
    def onDraw(self, canvas: android.graphics.Canvas, /) -> None: ...
    def onHoverEvent(self, event: android.view.MotionEvent, /) -> bool: ...
    def onLongPress(self, popupKey: Keyboard.Key, /) -> bool: ...
    def onMeasure(self, widthMeasureSpec: int | java.jint | java.lang.Integer, heightMeasureSpec: int | java.jint | java.lang.Integer, /) -> None: ...
    def onSizeChanged(self, w: int | java.jint | java.lang.Integer, h: int | java.jint | java.lang.Integer, oldw: int | java.jint | java.lang.Integer, oldh: int | java.jint | java.lang.Integer, /) -> None: ...
    def onTouchEvent(self, me: android.view.MotionEvent, /) -> bool: ...
    def setKeyboard(self, keyboard: Keyboard, /) -> None: ...
    def setOnKeyboardActionListener(self, listener: KeyboardView.OnKeyboardActionListener, /) -> None: ...
    def setPopupOffset(self, x: int | java.jint | java.lang.Integer, y: int | java.jint | java.lang.Integer, /) -> None: ...
    def setPopupParent(self, v: android.view.View, /) -> None: ...
    def setPreviewEnabled(self, previewEnabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setProximityCorrectionEnabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setShifted(self, shifted: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def setVerticalCorrection(self, verticalOffset: int | java.jint | java.lang.Integer, /) -> None: ...
    def swipeDown(self) -> None: ...
    def swipeLeft(self) -> None: ...
    def swipeRight(self) -> None: ...
    def swipeUp(self) -> None: ...

    class OnKeyboardActionListener(java.lang.Object):
        def onKey(self, arg1: int | java.jint | java.lang.Integer, arg2: java.chaquopy.JavaArrayJInt, /) -> None: ...
        def onPress(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...
        def onRelease(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...
        def onText(self, arg1: java.lang.CharSequence, /) -> None: ...
        def swipeDown(self) -> None: ...
        def swipeLeft(self) -> None: ...
        def swipeRight(self) -> None: ...
        def swipeUp(self) -> None: ...
