     })
   }
 
-  // swiftlint:disable function_parameter_count
-  func animateOut(x: CGFloat, y: CGFloat, scaleX: CGFloat, scaleY: CGFloat, alpha: CGFloat, configuration: AnimationConfiguration, completion: AnimatableCompletion? = nil) {
-    let translate = CGAffineTransform(translationX: x, y: y)
-    let scale = CGAffineTransform(scaleX: scaleX, y: scaleY)
+  func animateOut(animationValues: AnimationValues, alpha: CGFloat, configuration: AnimationConfiguration, completion: AnimatableCompletion? = nil) {
+    let translate = CGAffineTransform(translationX: animationValues.x, y: animationValues.y)
+    let scale = CGAffineTransform(scaleX: animationValues.scaleX, y: animationValues.scaleY)
     let translateAndScale = translate.concatenating(scale)
 
     UIView.animate(withDuration: configuration.duration, delay: configuration.delay, usingSpringWithDamping: configuration.damping, initialSpringVelocity: configuration.velocity, options: [],

    switch way {
    case .in:
      alpha = 0
      animateIn(x: values.x, y: values.y, scaleX: values.scaleX, scaleY: values.scaleY, alpha: 1, configuration: configuration, completion: completion)
    case .out:
      animateOut(x: values.x, y: values.y, scaleX: values.scaleX, scaleY: values.scaleY, alpha: 0, configuration: configuration, completion: completion)
    }
  }


      scaleX = -1
      scaleY = 1
    }
    animateIn(animationValues: AnimationValues(x: 0, y: 0, scaleX: scaleX, scaleY: scaleY), alpha: 1, configuration: configuration, completion: completion)
  }

  func shake(repeatCount: Int, configuration: AnimationConfiguration, completion: AnimatableCompletion? = nil) {
