"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const reverseEasing = (easing) => (p) => 1 - easing(1 - p);
const mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;
const createExpoIn = (power) => (p) => Math.pow(p, power);
const createBackIn = (power) => (p) => p * p * ((power + 1) * p - power);
const createAnticipate = (power) => {
  const backEasing = createBackIn(power);
  return (p) => (p *= 2) < 1 ? 0.5 * backEasing(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));
};
exports.createAnticipate = createAnticipate;
exports.createBackIn = createBackIn;
exports.createExpoIn = createExpoIn;
exports.mirrorEasing = mirrorEasing;
exports.reverseEasing = reverseEasing;
//# sourceMappingURL=utils.js.map
