import typing

import android.animation
import android.content
import android.graphics
import android.util
import android.view
import java
import java.chaquopy
import java.lang
import java.util

class ArcMotion(PathMotion):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def getMaximumAngle(self) -> float: ...
    def getMinimumHorizontalAngle(self) -> float: ...
    def getMinimumVerticalAngle(self) -> float: ...
    def getPath(self, startX: float | java.jfloat | java.lang.Float, startY: float | java.jfloat | java.lang.Float, endX: float | java.jfloat | java.lang.Float, endY: float | java.jfloat | java.lang.Float, /) -> android.graphics.Path: ...
    def setMaximumAngle(self, angleInDegrees: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setMinimumHorizontalAngle(self, angleInDegrees: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setMinimumVerticalAngle(self, angleInDegrees: float | java.jfloat | java.lang.Float, /) -> None: ...

class AutoTransition(TransitionSet):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...

class ChangeBounds(Transition):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def captureEndValues(self, transitionValues: TransitionValues, /) -> None: ...
    def captureStartValues(self, transitionValues: TransitionValues, /) -> None: ...
    def createAnimator(self, sceneRoot: android.view.ViewGroup, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator | None: ...
    def getResizeClip(self) -> bool: ...
    def getTransitionProperties(self) -> java.chaquopy.JavaArray[java.lang.String]: ...
    def setReparent(self, reparent: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setResizeClip(self, resizeClip: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

class ChangeClipBounds(Transition):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def captureEndValues(self, transitionValues: TransitionValues, /) -> None: ...
    def captureStartValues(self, transitionValues: TransitionValues, /) -> None: ...
    def createAnimator(self, sceneRoot: android.view.ViewGroup, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator | None: ...
    def getTransitionProperties(self) -> java.chaquopy.JavaArray[java.lang.String]: ...

class ChangeImageTransform(Transition):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def captureEndValues(self, transitionValues: TransitionValues, /) -> None: ...
    def captureStartValues(self, transitionValues: TransitionValues, /) -> None: ...
    def createAnimator(self, sceneRoot: android.view.ViewGroup, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator | None: ...
    def getTransitionProperties(self) -> java.chaquopy.JavaArray[java.lang.String]: ...

class ChangeScroll(Transition):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def captureEndValues(self, transitionValues: TransitionValues, /) -> None: ...
    def captureStartValues(self, transitionValues: TransitionValues, /) -> None: ...
    def createAnimator(self, sceneRoot: android.view.ViewGroup, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator | None: ...
    def getTransitionProperties(self) -> java.chaquopy.JavaArray[java.lang.String]: ...

class ChangeTransform(Transition):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def captureEndValues(self, transitionValues: TransitionValues, /) -> None: ...
    def captureStartValues(self, transitionValues: TransitionValues, /) -> None: ...
    def createAnimator(self, sceneRoot: android.view.ViewGroup, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator | None: ...
    def getReparent(self) -> bool: ...
    def getReparentWithOverlay(self) -> bool: ...
    def getTransitionProperties(self) -> java.chaquopy.JavaArray[java.lang.String]: ...
    def setReparent(self, reparent: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setReparentWithOverlay(self, reparentWithOverlay: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

class CircularPropagation(VisibilityPropagation):
    def __init__(self) -> None: ...
    def getStartDelay(self, sceneRoot: android.view.ViewGroup, transition: Transition, startValues: TransitionValues, endValues: TransitionValues, /) -> int: ...
    def setPropagationSpeed(self, propagationSpeed: float | java.jfloat | java.lang.Float, /) -> None: ...

class Explode(Visibility):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def captureEndValues(self, transitionValues: TransitionValues, /) -> None: ...
    def captureStartValues(self, transitionValues: TransitionValues, /) -> None: ...
    def onAppear(self, sceneRoot: android.view.ViewGroup, view: android.view.View, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator: ...
    def onDisappear(self, sceneRoot: android.view.ViewGroup, view: android.view.View, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator: ...

class Fade(Visibility):
    IN: typing.ClassVar[int] = ...
    OUT: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, fadingMode: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def captureStartValues(self, transitionValues: TransitionValues, /) -> None: ...
    def onAppear(self, sceneRoot: android.view.ViewGroup, view: android.view.View, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator: ...
    def onDisappear(self, sceneRoot: android.view.ViewGroup, view: android.view.View, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator: ...

class PathMotion(java.lang.Object):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def getPath(self, arg1: float | java.jfloat | java.lang.Float, arg2: float | java.jfloat | java.lang.Float, arg3: float | java.jfloat | java.lang.Float, arg4: float | java.jfloat | java.lang.Float, /) -> android.graphics.Path: ...

class PatternPathMotion(PathMotion):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, patternPath: android.graphics.Path, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def getPath(self, startX: float | java.jfloat | java.lang.Float, startY: float | java.jfloat | java.lang.Float, endX: float | java.jfloat | java.lang.Float, endY: float | java.jfloat | java.lang.Float, /) -> android.graphics.Path: ...
    def getPatternPath(self) -> android.graphics.Path: ...
    def setPatternPath(self, patternPath: android.graphics.Path, /) -> None: ...

class Scene(java.lang.Object):
    @typing.overload
    def __init__(self, sceneRoot: android.view.ViewGroup, /) -> None: ...
    @typing.overload
    def __init__(self, sceneRoot: android.view.ViewGroup, layout: android.view.View, /) -> None: ...
    @typing.overload
    def __init__(self, sceneRoot: android.view.ViewGroup, layout: android.view.ViewGroup, /) -> None: ...
    def enter(self) -> None: ...
    def exit(self) -> None: ...
    @staticmethod
    def getCurrentScene(sceneRoot: android.view.ViewGroup, /) -> Scene | None: ...
    @staticmethod
    def getSceneForLayout(sceneRoot: android.view.ViewGroup, layoutId: int | java.jint | java.lang.Integer, context: android.content.Context, /) -> Scene: ...
    def getSceneRoot(self) -> android.view.ViewGroup: ...
    def setEnterAction(self, action: java.lang.Runnable, /) -> None: ...
    def setExitAction(self, action: java.lang.Runnable, /) -> None: ...

class SidePropagation(VisibilityPropagation):
    def __init__(self) -> None: ...
    def getStartDelay(self, sceneRoot: android.view.ViewGroup, transition: Transition, startValues: TransitionValues, endValues: TransitionValues, /) -> int: ...
    def setPropagationSpeed(self, propagationSpeed: float | java.jfloat | java.lang.Float, /) -> None: ...
    def setSide(self, side: int | java.jint | java.lang.Integer, /) -> None: ...

class Slide(Visibility):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, slideEdge: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def captureEndValues(self, transitionValues: TransitionValues, /) -> None: ...
    def captureStartValues(self, transitionValues: TransitionValues, /) -> None: ...
    def getSlideEdge(self) -> int: ...
    def onAppear(self, sceneRoot: android.view.ViewGroup, view: android.view.View, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator: ...
    def onDisappear(self, sceneRoot: android.view.ViewGroup, view: android.view.View, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator: ...
    def setSlideEdge(self, slideEdge: int | java.jint | java.lang.Integer, /) -> None: ...

class Transition(java.lang.Cloneable):
    MATCH_ID: typing.ClassVar[int] = ...
    MATCH_INSTANCE: typing.ClassVar[int] = ...
    MATCH_ITEM_ID: typing.ClassVar[int] = ...
    MATCH_NAME: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def addListener(self, listener: Transition.TransitionListener, /) -> Transition: ...
    @typing.overload
    def addTarget(self, targetId: int | java.jint | java.lang.Integer, /) -> Transition: ...
    @typing.overload
    def addTarget(self, target: android.view.View, /) -> Transition: ...
    @typing.overload
    def addTarget(self, targetType: typing.Type, /) -> Transition: ...
    @typing.overload
    def addTarget(self, targetName: str | java.lang.String, /) -> Transition: ...
    def canRemoveViews(self) -> bool: ...
    def captureEndValues(self, arg1: TransitionValues, /) -> None: ...
    def captureStartValues(self, arg1: TransitionValues, /) -> None: ...
    def clone(self) -> Transition: ...
    def createAnimator(self, sceneRoot: android.view.ViewGroup, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator | None: ...
    @typing.overload
    def excludeChildren(self, targetId: int | java.jint | java.lang.Integer, exclude: bool | java.jboolean | java.lang.Boolean, /) -> Transition: ...
    @typing.overload
    def excludeChildren(self, target: android.view.View, exclude: bool | java.jboolean | java.lang.Boolean, /) -> Transition: ...
    @typing.overload
    def excludeChildren(self, type: typing.Type, exclude: bool | java.jboolean | java.lang.Boolean, /) -> Transition: ...
    @typing.overload
    def excludeTarget(self, targetId: int | java.jint | java.lang.Integer, exclude: bool | java.jboolean | java.lang.Boolean, /) -> Transition: ...
    @typing.overload
    def excludeTarget(self, target: android.view.View, exclude: bool | java.jboolean | java.lang.Boolean, /) -> Transition: ...
    @typing.overload
    def excludeTarget(self, type: typing.Type, exclude: bool | java.jboolean | java.lang.Boolean, /) -> Transition: ...
    @typing.overload
    def excludeTarget(self, targetName: str | java.lang.String, exclude: bool | java.jboolean | java.lang.Boolean, /) -> Transition: ...
    def getDuration(self) -> int: ...
    def getEpicenter(self) -> android.graphics.Rect: ...
    def getEpicenterCallback(self) -> Transition.EpicenterCallback: ...
    def getInterpolator(self) -> android.animation.TimeInterpolator | None: ...
    def getName(self) -> str: ...
    def getPathMotion(self) -> PathMotion: ...
    def getPropagation(self) -> TransitionPropagation: ...
    def getStartDelay(self) -> int: ...
    def getTargetIds(self) -> java.util.List[java.lang.Integer]: ...
    def getTargetNames(self) -> java.util.List[java.lang.String]: ...
    def getTargetTypes(self) -> java.util.List[typing.Type]: ...
    def getTargets(self) -> java.util.List[android.view.View]: ...
    def getTransitionProperties(self) -> java.chaquopy.JavaArray[java.lang.String]: ...
    def getTransitionValues(self, view: android.view.View, start: bool | java.jboolean | java.lang.Boolean, /) -> TransitionValues: ...
    def isTransitionRequired(self, startValues: TransitionValues, endValues: TransitionValues, /) -> bool: ...
    def removeListener(self, listener: Transition.TransitionListener, /) -> Transition: ...
    @typing.overload
    def removeTarget(self, targetId: int | java.jint | java.lang.Integer, /) -> Transition: ...
    @typing.overload
    def removeTarget(self, target: android.view.View, /) -> Transition: ...
    @typing.overload
    def removeTarget(self, target: typing.Type, /) -> Transition: ...
    @typing.overload
    def removeTarget(self, targetName: str | java.lang.String, /) -> Transition: ...
    def setDuration(self, duration: int | java.jlong | java.lang.Long, /) -> Transition: ...
    def setEpicenterCallback(self, epicenterCallback: Transition.EpicenterCallback, /) -> None: ...
    def setInterpolator(self, interpolator: android.animation.TimeInterpolator, /) -> Transition: ...
    def setMatchOrder(self, *matches: java.jint) -> None: ...
    def setPathMotion(self, pathMotion: PathMotion, /) -> None: ...
    def setPropagation(self, transitionPropagation: TransitionPropagation, /) -> None: ...
    def setStartDelay(self, startDelay: int | java.jlong | java.lang.Long, /) -> Transition: ...
    def toString(self) -> str: ...

    class TransitionListener(java.lang.Object):
        def onTransitionCancel(self, arg1: Transition, /) -> None: ...
        def onTransitionEnd(self, arg1: Transition, /) -> None: ...
        def onTransitionPause(self, arg1: Transition, /) -> None: ...
        def onTransitionResume(self, arg1: Transition, /) -> None: ...
        def onTransitionStart(self, arg1: Transition, /) -> None: ...

    class EpicenterCallback(java.lang.Object):
        def __init__(self) -> None: ...
        def onGetEpicenter(self, arg1: Transition, /) -> android.graphics.Rect: ...

class TransitionInflater(java.lang.Object):
    @staticmethod
    def from_(context: android.content.Context, /) -> TransitionInflater: ...
    def inflateTransition(self, resource: int | java.jint | java.lang.Integer, /) -> Transition: ...
    def inflateTransitionManager(self, resource: int | java.jint | java.lang.Integer, sceneRoot: android.view.ViewGroup, /) -> TransitionManager: ...

class TransitionListenerAdapter(Transition.TransitionListener):
    def __init__(self) -> None: ...
    def onTransitionCancel(self, transition: Transition, /) -> None: ...
    def onTransitionEnd(self, transition: Transition, /) -> None: ...
    def onTransitionPause(self, transition: Transition, /) -> None: ...
    def onTransitionResume(self, transition: Transition, /) -> None: ...
    def onTransitionStart(self, transition: Transition, /) -> None: ...

class TransitionManager(java.lang.Object):
    def __init__(self) -> None: ...
    @typing.overload
    @staticmethod
    def beginDelayedTransition(sceneRoot: android.view.ViewGroup, /) -> None: ...
    @typing.overload
    @staticmethod
    def beginDelayedTransition(sceneRoot: android.view.ViewGroup, transition: Transition, /) -> None: ...
    @staticmethod
    def endTransitions(sceneRoot: android.view.ViewGroup, /) -> None: ...
    @typing.overload
    @staticmethod
    def go(scene: Scene, /) -> None: ...
    @typing.overload
    @staticmethod
    def go(scene: Scene, transition: Transition, /) -> None: ...
    @typing.overload
    def setTransition(self, scene: Scene, transition: Transition, /) -> None: ...
    @typing.overload
    def setTransition(self, fromScene: Scene, toScene: Scene, transition: Transition, /) -> None: ...
    def transitionTo(self, scene: Scene, /) -> None: ...

class TransitionPropagation(java.lang.Object):
    def __init__(self) -> None: ...
    def captureValues(self, arg1: TransitionValues, /) -> None: ...
    def getPropagationProperties(self) -> java.chaquopy.JavaArray[java.lang.String]: ...
    def getStartDelay(self, arg1: android.view.ViewGroup, arg2: Transition, arg3: TransitionValues, arg4: TransitionValues, /) -> int: ...

class TransitionSet(Transition):
    ORDERING_SEQUENTIAL: typing.ClassVar[int] = ...
    ORDERING_TOGETHER: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def addListener(self, listener: Transition.TransitionListener, /) -> TransitionSet: ...
    @typing.overload
    def addTarget(self, targetId: int | java.jint | java.lang.Integer, /) -> TransitionSet: ...
    @typing.overload
    def addTarget(self, target: android.view.View, /) -> TransitionSet: ...
    @typing.overload
    def addTarget(self, targetType: typing.Type, /) -> TransitionSet: ...
    @typing.overload
    def addTarget(self, targetName: str | java.lang.String, /) -> TransitionSet: ...
    def addTransition(self, transition: Transition, /) -> TransitionSet: ...
    def captureEndValues(self, transitionValues: TransitionValues, /) -> None: ...
    def captureStartValues(self, transitionValues: TransitionValues, /) -> None: ...
    def clone(self) -> TransitionSet: ...
    @typing.overload
    def excludeTarget(self, targetId: int | java.jint | java.lang.Integer, exclude: bool | java.jboolean | java.lang.Boolean, /) -> Transition: ...
    @typing.overload
    def excludeTarget(self, target: android.view.View, exclude: bool | java.jboolean | java.lang.Boolean, /) -> Transition: ...
    @typing.overload
    def excludeTarget(self, type: typing.Type, exclude: bool | java.jboolean | java.lang.Boolean, /) -> Transition: ...
    @typing.overload
    def excludeTarget(self, targetName: str | java.lang.String, exclude: bool | java.jboolean | java.lang.Boolean, /) -> Transition: ...
    def getOrdering(self) -> int: ...
    def getTransitionAt(self, index: int | java.jint | java.lang.Integer, /) -> Transition: ...
    def getTransitionCount(self) -> int: ...
    def removeListener(self, listener: Transition.TransitionListener, /) -> TransitionSet: ...
    @typing.overload
    def removeTarget(self, targetId: int | java.jint | java.lang.Integer, /) -> TransitionSet: ...
    @typing.overload
    def removeTarget(self, target: android.view.View, /) -> TransitionSet: ...
    @typing.overload
    def removeTarget(self, target: typing.Type, /) -> TransitionSet: ...
    @typing.overload
    def removeTarget(self, target: str | java.lang.String, /) -> TransitionSet: ...
    def removeTransition(self, transition: Transition, /) -> TransitionSet: ...
    def setDuration(self, duration: int | java.jlong | java.lang.Long, /) -> TransitionSet: ...
    def setEpicenterCallback(self, epicenterCallback: Transition.EpicenterCallback, /) -> None: ...
    def setInterpolator(self, interpolator: android.animation.TimeInterpolator, /) -> TransitionSet: ...
    def setOrdering(self, ordering: int | java.jint | java.lang.Integer, /) -> TransitionSet: ...
    def setPathMotion(self, pathMotion: PathMotion, /) -> None: ...
    def setPropagation(self, propagation: TransitionPropagation, /) -> None: ...
    def setStartDelay(self, startDelay: int | java.jlong | java.lang.Long, /) -> TransitionSet: ...

class TransitionValues(java.lang.Object):
    values: java.util.Map[java.lang.String, java.lang.Object] = ...
    view: android.view.View = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, view: android.view.View, /) -> None: ...
    def equals(self, other: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class Visibility(Transition):
    MODE_IN: typing.ClassVar[int] = ...
    MODE_OUT: typing.ClassVar[int] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, attrs: android.util.AttributeSet, /) -> None: ...
    def captureEndValues(self, transitionValues: TransitionValues, /) -> None: ...
    def captureStartValues(self, transitionValues: TransitionValues, /) -> None: ...
    def createAnimator(self, sceneRoot: android.view.ViewGroup, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator | None: ...
    def getMode(self) -> int: ...
    def getTransitionProperties(self) -> java.chaquopy.JavaArray[java.lang.String]: ...
    def isTransitionRequired(self, startValues: TransitionValues, newValues: TransitionValues, /) -> bool: ...
    def isVisible(self, values: TransitionValues, /) -> bool: ...
    @typing.overload
    def onAppear(self, sceneRoot: android.view.ViewGroup, view: android.view.View, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator: ...
    @typing.overload
    def onAppear(self, sceneRoot: android.view.ViewGroup, startValues: TransitionValues, startVisibility: int | java.jint | java.lang.Integer, endValues: TransitionValues, endVisibility: int | java.jint | java.lang.Integer, /) -> android.animation.Animator: ...
    @typing.overload
    def onDisappear(self, sceneRoot: android.view.ViewGroup, view: android.view.View, startValues: TransitionValues, endValues: TransitionValues, /) -> android.animation.Animator: ...
    @typing.overload
    def onDisappear(self, sceneRoot: android.view.ViewGroup, startValues: TransitionValues, startVisibility: int | java.jint | java.lang.Integer, endValues: TransitionValues, endVisibility: int | java.jint | java.lang.Integer, /) -> android.animation.Animator: ...
    def setMode(self, mode: int | java.jint | java.lang.Integer, /) -> None: ...

class VisibilityPropagation(TransitionPropagation):
    def __init__(self) -> None: ...
    def captureValues(self, values: TransitionValues, /) -> None: ...
    def getPropagationProperties(self) -> java.chaquopy.JavaArray[java.lang.String]: ...
    def getViewVisibility(self, values: TransitionValues, /) -> int: ...
    def getViewX(self, values: TransitionValues, /) -> int: ...
    def getViewY(self, values: TransitionValues, /) -> int: ...
