// Signature format: 3.0
package androidx.dynamicanimation.animation {

  public final class DynamicAnimationKt {
    method public static inline <K> androidx.dynamicanimation.animation.FlingAnimation flingAnimationOf(K?, androidx.dynamicanimation.animation.FloatPropertyCompat<K> property);
    method public static inline <K> androidx.dynamicanimation.animation.SpringAnimation springAnimationOf(K?, androidx.dynamicanimation.animation.FloatPropertyCompat<K> property, float finalPosition = Float.NaN);
    method public static inline androidx.dynamicanimation.animation.SpringAnimation withSpringForceProperties(androidx.dynamicanimation.animation.SpringAnimation, kotlin.jvm.functions.Function1<? super androidx.dynamicanimation.animation.SpringForce,kotlin.Unit> func);
  }

}

