package android.support.animation {

  public abstract class DynamicAnimation<T extends android.support.animation.DynamicAnimation<T>> {
    method public T addEndListener(android.support.animation.DynamicAnimation.OnAnimationEndListener);
    method public T addUpdateListener(android.support.animation.DynamicAnimation.OnAnimationUpdateListener);
    method public void cancel();
    method public float getMinimumVisibleChange();
    method public boolean isRunning();
    method public void removeEndListener(android.support.animation.DynamicAnimation.OnAnimationEndListener);
    method public void removeUpdateListener(android.support.animation.DynamicAnimation.OnAnimationUpdateListener);
    method public T setMaxValue(float);
    method public T setMinValue(float);
    method public T setMinimumVisibleChange(float);
    method public T setStartValue(float);
    method public T setStartVelocity(float);
    method public void start();
    field public static final android.support.animation.DynamicAnimation.ViewProperty ALPHA;
    field public static final float MIN_VISIBLE_CHANGE_ALPHA = 0.00390625f;
    field public static final float MIN_VISIBLE_CHANGE_PIXELS = 1.0f;
    field public static final float MIN_VISIBLE_CHANGE_ROTATION_DEGREES = 0.1f;
    field public static final float MIN_VISIBLE_CHANGE_SCALE = 0.002f;
    field public static final android.support.animation.DynamicAnimation.ViewProperty ROTATION;
    field public static final android.support.animation.DynamicAnimation.ViewProperty ROTATION_X;
    field public static final android.support.animation.DynamicAnimation.ViewProperty ROTATION_Y;
    field public static final android.support.animation.DynamicAnimation.ViewProperty SCALE_X;
    field public static final android.support.animation.DynamicAnimation.ViewProperty SCALE_Y;
    field public static final android.support.animation.DynamicAnimation.ViewProperty SCROLL_X;
    field public static final android.support.animation.DynamicAnimation.ViewProperty SCROLL_Y;
    field public static final android.support.animation.DynamicAnimation.ViewProperty TRANSLATION_X;
    field public static final android.support.animation.DynamicAnimation.ViewProperty TRANSLATION_Y;
    field public static final android.support.animation.DynamicAnimation.ViewProperty TRANSLATION_Z;
    field public static final android.support.animation.DynamicAnimation.ViewProperty X;
    field public static final android.support.animation.DynamicAnimation.ViewProperty Y;
    field public static final android.support.animation.DynamicAnimation.ViewProperty Z;
  }

  public static abstract interface DynamicAnimation.OnAnimationEndListener {
    method public abstract void onAnimationEnd(android.support.animation.DynamicAnimation, boolean, float, float);
  }

  public static abstract interface DynamicAnimation.OnAnimationUpdateListener {
    method public abstract void onAnimationUpdate(android.support.animation.DynamicAnimation, float, float);
  }

  public static abstract class DynamicAnimation.ViewProperty extends android.support.animation.FloatPropertyCompat {
  }

  public final class FlingAnimation extends android.support.animation.DynamicAnimation {
    ctor public FlingAnimation(android.support.animation.FloatValueHolder);
    ctor public FlingAnimation(K, android.support.animation.FloatPropertyCompat<K>);
    method public float getFriction();
    method public android.support.animation.FlingAnimation setFriction(float);
    method public android.support.animation.FlingAnimation setMaxValue(float);
    method public android.support.animation.FlingAnimation setMinValue(float);
    method public android.support.animation.FlingAnimation setStartVelocity(float);
  }

  public abstract class FloatPropertyCompat<T> {
    ctor public FloatPropertyCompat(java.lang.String);
    method public static <T> android.support.animation.FloatPropertyCompat<T> createFloatPropertyCompat(android.util.FloatProperty<T>);
    method public abstract float getValue(T);
    method public abstract void setValue(T, float);
  }

  public final class FloatValueHolder {
    ctor public FloatValueHolder();
    ctor public FloatValueHolder(float);
    method public float getValue();
    method public void setValue(float);
  }

  public final class SpringAnimation extends android.support.animation.DynamicAnimation {
    ctor public SpringAnimation(android.support.animation.FloatValueHolder);
    ctor public SpringAnimation(K, android.support.animation.FloatPropertyCompat<K>);
    ctor public SpringAnimation(K, android.support.animation.FloatPropertyCompat<K>, float);
    method public void animateToFinalPosition(float);
    method public boolean canSkipToEnd();
    method public android.support.animation.SpringForce getSpring();
    method public android.support.animation.SpringAnimation setSpring(android.support.animation.SpringForce);
    method public void skipToEnd();
  }

  public final class SpringForce {
    ctor public SpringForce();
    ctor public SpringForce(float);
    method public float getDampingRatio();
    method public float getFinalPosition();
    method public float getStiffness();
    method public android.support.animation.SpringForce setDampingRatio(float);
    method public android.support.animation.SpringForce setFinalPosition(float);
    method public android.support.animation.SpringForce setStiffness(float);
    field public static final float DAMPING_RATIO_HIGH_BOUNCY = 0.2f;
    field public static final float DAMPING_RATIO_LOW_BOUNCY = 0.75f;
    field public static final float DAMPING_RATIO_MEDIUM_BOUNCY = 0.5f;
    field public static final float DAMPING_RATIO_NO_BOUNCY = 1.0f;
    field public static final float STIFFNESS_HIGH = 10000.0f;
    field public static final float STIFFNESS_LOW = 200.0f;
    field public static final float STIFFNESS_MEDIUM = 1500.0f;
    field public static final float STIFFNESS_VERY_LOW = 50.0f;
  }

}