import typing

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

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

class DisplayHashManager(java.lang.Object):
    def getSupportedHashAlgorithms(self) -> java.util.Set[java.lang.String]: ...
    def verifyDisplayHash(self, displayHash: DisplayHash, /) -> VerifiedDisplayHash | None: ...

class DisplayHashResultCallback(java.lang.Object):
    DISPLAY_HASH_ERROR_INVALID_BOUNDS: typing.ClassVar[int] = ...
    DISPLAY_HASH_ERROR_INVALID_HASH_ALGORITHM: typing.ClassVar[int] = ...
    DISPLAY_HASH_ERROR_MISSING_WINDOW: typing.ClassVar[int] = ...
    DISPLAY_HASH_ERROR_NOT_VISIBLE_ON_SCREEN: typing.ClassVar[int] = ...
    DISPLAY_HASH_ERROR_TOO_MANY_REQUESTS: typing.ClassVar[int] = ...
    DISPLAY_HASH_ERROR_UNKNOWN: typing.ClassVar[int] = ...
    def onDisplayHashError(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...
    def onDisplayHashResult(self, arg1: DisplayHash, /) -> None: ...

class VerifiedDisplayHash(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[VerifiedDisplayHash]] = ...
    def __init__(self, timeMillis: int | java.jlong | java.lang.Long, boundsInWindow: android.graphics.Rect, hashAlgorithm: str | java.lang.String, imageHash: java.chaquopy.JavaArrayJByte, /) -> None: ...
    def describeContents(self) -> int: ...
    def getBoundsInWindow(self) -> android.graphics.Rect: ...
    def getHashAlgorithm(self) -> str: ...
    def getImageHash(self) -> java.chaquopy.JavaArrayJByte: ...
    def getTimeMillis(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...
