import typing

import android.os
import android.view
import java
import java.chaquopy
import java.lang

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

class InputManager(java.lang.Object):
    ACTION_QUERY_KEYBOARD_LAYOUTS: typing.ClassVar[str] = ...
    META_DATA_KEYBOARD_LAYOUTS: typing.ClassVar[str] = ...
    def getHostUsiVersion(self, display: android.view.Display, /) -> HostUsiVersion | None: ...
    def getInputDevice(self, id: int | java.jint | java.lang.Integer, /) -> android.view.InputDevice | None: ...
    def getInputDeviceIds(self) -> java.chaquopy.JavaArrayJInt: ...
    def getInputDeviceViewBehavior(self, deviceId: int | java.jint | java.lang.Integer, /) -> android.view.InputDevice.ViewBehavior | None: ...
    def getMaximumObscuringOpacityForTouch(self) -> float: ...
    def isStylusPointerIconEnabled(self) -> bool: ...
    def registerInputDeviceListener(self, listener: InputManager.InputDeviceListener, handler: android.os.Handler, /) -> None: ...
    def unregisterInputDeviceListener(self, listener: InputManager.InputDeviceListener, /) -> None: ...
    def verifyInputEvent(self, event: android.view.InputEvent, /) -> android.view.VerifiedInputEvent | None: ...

    class InputDeviceListener(java.lang.Object):
        def onInputDeviceAdded(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...
        def onInputDeviceChanged(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...
        def onInputDeviceRemoved(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...
