import '../../assert/js/assert.js';
import '../../globals.js';
type NumberFunction = (t: number) => number;
declare class Easing {
    readonly value: NumberFunction;
    readonly derivative: NumberFunction;
    readonly secondDerivative: NumberFunction;
    /**
     * Input to the functions should be in the range [0,1], where 0 is the start of an animation, and 1 is the end.
     *
     * @param value - Our easing function (from [0,1] => [0,1])
     * @param derivative - Our easing function's derivative (from [0,1] => *)
     * @param secondDerivative - Our easing function's second derivative (from [0,1] => *)
     */
    constructor(value: NumberFunction, derivative: NumberFunction, secondDerivative: NumberFunction);
    /**
     * The "polynomial ease in" function.
     *
     * @param n - The degree of the polynomial (does not have to be an integer!)
     * @param t - The linear ratio [0,1] of the animation
     */
    static polynomialEaseInValue(n: number, t: number): number;
    /**
     * The "polynomial ease out" function.
     *
     * @param n - The degree of the polynomial (does not have to be an integer!)
     * @param t - The linear ratio [0,1] of the animation
     */
    static polynomialEaseOutValue(n: number, t: number): number;
    /**
     * The "polynomial ease in-out" function.
     *
     * @param n - The degree of the polynomial (does not have to be an integer!)
     * @param t - The linear ratio [0,1] of the animation
     */
    static polynomialEaseInOutValue(n: number, t: number): number;
    /**
     * The derivative of the "polynomial ease in" function.
     *
     * @param n - The degree of the polynomial (does not have to be an integer!)
     * @param t - The linear ratio [0,1] of the animation
     */
    static polynomialEaseInDerivative(n: number, t: number): number;
    /**
     * The derivative of the "polynomial ease out" function.
     *
     * @param n - The degree of the polynomial (does not have to be an integer!)
     * @param t - The linear ratio [0,1] of the animation
     */
    static polynomialEaseOutDerivative(n: number, t: number): number;
    /**
     * The derivative of the "polynomial ease in-out" function.
     *
     * @param n - The degree of the polynomial (does not have to be an integer!)
     * @param t - The linear ratio [0,1] of the animation
     */
    static polynomialEaseInOutDerivative(n: number, t: number): number;
    /**
     * The second derivative of the "polynomial ease in" function.
     *
     * @param n - The degree of the polynomial (does not have to be an integer!)
     * @param t - The linear ratio [0,1] of the animation
     */
    static polynomialEaseInSecondDerivative(n: number, t: number): number;
    /**
     * The second derivative of the "polynomial ease out" function.
     *
     * @param n - The degree of the polynomial (does not have to be an integer!)
     * @param t - The linear ratio [0,1] of the animation
     */
    static polynomialEaseOutSecondDerivative(n: number, t: number): number;
    /**
     * The second derivative of the "polynomial ease in-out" function.
     *
     * @param n - The degree of the polynomial (does not have to be an integer!)
     * @param t - The linear ratio [0,1] of the animation
     */
    static polynomialEaseInOutSecondDerivative(n: number, t: number): number;
    /**
     * Creates a polynomial "in" easing (smooth start)
     *
     * @param n - The degree of the polynomial (does not have to be an integer!)
     */
    static polynomialEaseIn(n: number): Easing;
    /**
     * Creates a polynomial "out" easing (smooth end)
     *
     * @param n - The degree of the polynomial (does not have to be an integer!)
     */
    static polynomialEaseOut(n: number): Easing;
    /**
     * Creates a polynomial "in-out" easing (smooth start and end)
     *
     * @param n - The degree of the polynomial (does not have to be an integer!)
     */
    static polynomialEaseInOut(n: number): Easing;
    static readonly LINEAR: Easing;
    static readonly QUADRATIC_IN: Easing;
    static readonly QUADRATIC_OUT: Easing;
    static readonly QUADRATIC_IN_OUT: Easing;
    static readonly CUBIC_IN: Easing;
    static readonly CUBIC_OUT: Easing;
    static readonly CUBIC_IN_OUT: Easing;
    static readonly QUARTIC_IN: Easing;
    static readonly QUARTIC_OUT: Easing;
    static readonly QUARTIC_IN_OUT: Easing;
    static readonly QUINTIC_IN: Easing;
    static readonly QUINTIC_OUT: Easing;
    static readonly QUINTIC_IN_OUT: Easing;
}
export default Easing;
//# sourceMappingURL=Easing.d.ts.map