import typing

import android.app
import android.os
import android.view
import android.widget
import java
import java.lang
import java.time

class BackEvent(java.lang.Object):
    EDGE_LEFT: typing.ClassVar[int] = ...
    EDGE_NONE: typing.ClassVar[int] = ...
    EDGE_RIGHT: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self, touchX: float | java.jfloat | java.lang.Float, touchY: float | java.jfloat | java.lang.Float, progress: float | java.jfloat | java.lang.Float, swipeEdge: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, touchX: float | java.jfloat | java.lang.Float, touchY: float | java.jfloat | java.lang.Float, progress: float | java.jfloat | java.lang.Float, swipeEdge: int | java.jint | java.lang.Integer, frameTimeMillis: int | java.jlong | java.lang.Long, /) -> None: ...
    def equals(self, other: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getFrameTimeMillis(self) -> int: ...
    def getProgress(self) -> float: ...
    def getSwipeEdge(self) -> int: ...
    def getTouchX(self) -> float: ...
    def getTouchY(self) -> float: ...
    def toString(self) -> str: ...

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

class OnBackAnimationCallback(OnBackInvokedCallback):
    def onBackCancelled(self) -> None: ...
    def onBackProgressed(self, backEvent: BackEvent, /) -> None: ...
    def onBackStarted(self, backEvent: BackEvent, /) -> None: ...

class OnBackInvokedCallback(java.lang.Object):
    def onBackInvoked(self) -> None: ...

class OnBackInvokedDispatcher(java.lang.Object):
    PRIORITY_DEFAULT: typing.ClassVar[int] = ...
    PRIORITY_OVERLAY: typing.ClassVar[int] = ...
    PRIORITY_SYSTEM_NAVIGATION_OBSERVER: typing.ClassVar[int] = ...
    def registerOnBackInvokedCallback(self, arg1: int | java.jint | java.lang.Integer, arg2: OnBackInvokedCallback, /) -> None: ...
    def unregisterOnBackInvokedCallback(self, arg1: OnBackInvokedCallback, /) -> None: ...

class SplashScreen(java.lang.Object):
    SPLASH_SCREEN_STYLE_ICON: typing.ClassVar[int] = ...
    SPLASH_SCREEN_STYLE_SOLID_COLOR: typing.ClassVar[int] = ...
    def clearOnExitAnimationListener(self) -> None: ...
    def setOnExitAnimationListener(self, arg1: SplashScreen.OnExitAnimationListener, /) -> None: ...
    def setSplashScreenTheme(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...

    class OnExitAnimationListener(java.lang.Object):
        def onSplashScreenExit(self, arg1: SplashScreenView, /) -> None: ...

class SplashScreenView(android.widget.FrameLayout):
    def getIconAnimationDuration(self) -> java.time.Duration | None: ...
    def getIconAnimationStart(self) -> java.time.Instant | None: ...
    def getIconView(self) -> android.view.View | None: ...
    def onDetachedFromWindow(self) -> None: ...
    def onLayout(self, changed: bool | java.jboolean | java.lang.Boolean, l: int | java.jint | java.lang.Integer, t: int | java.jint | java.lang.Integer, r: int | java.jint | java.lang.Integer, b: int | java.jint | java.lang.Integer, /) -> None: ...
    def remove(self) -> None: ...
    def setAlpha(self, alpha: float | java.jfloat | java.lang.Float, /) -> None: ...

class SurfaceSyncGroup(java.lang.Object):
    def __init__(self, name: str | java.lang.String, /) -> None: ...
    @typing.overload
    def add(self, attachedSurfaceControl: android.view.AttachedSurfaceControl, runnable: java.lang.Runnable, /) -> bool: ...
    @typing.overload
    def add(self, surfacePackage: android.view.SurfaceControlViewHost.SurfacePackage, runnable: java.lang.Runnable, /) -> bool: ...
    def addTransaction(self, transaction: android.view.SurfaceControl.Transaction, /) -> None: ...
    def markSyncReady(self) -> None: ...

class SystemOnBackInvokedCallbacks(java.lang.Object):
    @staticmethod
    def finishAndRemoveTaskCallback(activity: android.app.Activity, /) -> OnBackInvokedCallback: ...
    @staticmethod
    def moveTaskToBackCallback(activity: android.app.Activity, /) -> OnBackInvokedCallback: ...

class TrustedPresentationThresholds(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TrustedPresentationThresholds]] = ...
    def __init__(self, minAlpha: float | java.jfloat | java.lang.Float, minFractionRendered: float | java.jfloat | java.lang.Float, stabilityRequirementMs: int | java.jint | java.lang.Integer, /) -> None: ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getMinAlpha(self) -> float: ...
    def getMinFractionRendered(self) -> float: ...
    def getStabilityRequirementMillis(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: ...
