// Type definitions for D3JS d3-ease module 3.0 // Project: https://github.com/d3/d3-ease/, https://d3js.org/d3-ease // Definitions by: Tom Wanzek // Alex Ford // Boris Yankov // Nathan Bierema // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // Last module patch version validated against: 3.0.1 // -------------------------------------------------------------------------- // Easing Functions // -------------------------------------------------------------------------- /** * Linear easing; the identity function; linear(t) returns t. * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeLinear(normalizedTime: number): number; /** * Symmetric quadratic easing; scales quadIn for t in [0, 0.5] and quadOut for t in [0.5, 1]. Also equivalent to poly.exponent(2). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeQuad(normalizedTime: number): number; /** * Quadratic easing; equivalent to polyIn.exponent(2). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeQuadIn(normalizedTime: number): number; /** * Reverse quadratic easing; equivalent to 1 - quadIn(1 - t). Also equivalent to polyOut.exponent(2). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeQuadOut(normalizedTime: number): number; /** * Symmetric quadratic easing; scales quadIn for t in [0, 0.5] and quadOut for t in [0.5, 1]. Also equivalent to poly.exponent(2). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeQuadInOut(normalizedTime: number): number; /** * Symmetric cubic easing; scales cubicIn for t in [0, 0.5] and cubicOut for t in [0.5, 1]. Also equivalent to poly.exponent(3). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeCubic(normalizedTime: number): number; /** * Cubic easing; equivalent to polyIn.exponent(3). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeCubicIn(normalizedTime: number): number; /** * Reverse cubic easing; equivalent to 1 - cubicIn(1 - t). Also equivalent to polyOut.exponent(3). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeCubicOut(normalizedTime: number): number; /** * Symmetric cubic easing; scales cubicIn for t in [0, 0.5] and cubicOut for t in [0.5, 1]. Also equivalent to poly.exponent(3). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeCubicInOut(normalizedTime: number): number; /** * Polynomial easing function factory */ export interface PolynomialEasingFactory { /** * Calculate eased time. * @param normalizedTime Normalized time typically in the range [0, 1] */ (normalizedTime: number): number; /** * Returns a new polynomial easing with the specified exponent e. * If the exponent is not specified, it defaults to 3, equivalent to cubic. * * @param e Exponent for polynomial easing. */ exponent(e: number): PolynomialEasingFactory; } /** * Symmetric polynomial easing/easing factory; scales polyIn for t in [0, 0.5] and polyOut for t in [0.5, 1]. * If the exponent is not specified, it defaults to 3, equivalent to cubic. */ export const easePoly: PolynomialEasingFactory; /** * Polynomial easing/easing factory; raises t to the specified exponent. * If the exponent is not specified, it defaults to 3, equivalent to cubicIn. */ export const easePolyIn: PolynomialEasingFactory; /** * Reverse polynomial easing/easing factory; equivalent to 1 - polyIn(1 - t). * If the exponent is not specified, it defaults to 3, equivalent to cubicOut. */ export const easePolyOut: PolynomialEasingFactory; /** * Symmetric polynomial easing/easing factory; scales polyIn for t in [0, 0.5] and polyOut for t in [0.5, 1]. * If the exponent is not specified, it defaults to 3, equivalent to cubic. */ export const easePolyInOut: PolynomialEasingFactory; /** * Symmetric sinusoidal easing; scales sinIn for t in [0, 0.5] and sinOut for t in [0.5, 1]. * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeSin(normalizedTime: number): number; /** * Sinusoidal easing; returns sin(t). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeSinIn(normalizedTime: number): number; /** * Reverse sinusoidal easing; equivalent to 1 - sinIn(1 - t). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeSinOut(normalizedTime: number): number; /** * Symmetric sinusoidal easing; scales sinIn for t in [0, 0.5] and sinOut for t in [0.5, 1]. * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeSinInOut(normalizedTime: number): number; /** * Symmetric exponential easing; scales expIn for t in [0, 0.5] and expOut for t in [0.5, 1]. * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeExp(normalizedTime: number): number; /** * Exponential easing; raises 2 to the exponent 10 * (t - 1). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeExpIn(normalizedTime: number): number; /** * Reverse exponential easing; equivalent to 1 - expIn(1 - t). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeExpOut(normalizedTime: number): number; /** * Symmetric exponential easing; scales expIn for t in [0, 0.5] and expOut for t in [0.5, 1]. * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeExpInOut(normalizedTime: number): number; /** * Symmetric circular easing; scales circleIn for t in [0, 0.5] and circleOut for t in [0.5, 1]. * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeCircle(normalizedTime: number): number; /** * Circular easing. * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeCircleIn(normalizedTime: number): number; /** * Reverse circular easing; equivalent to 1 - circleIn(1 - t). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeCircleOut(normalizedTime: number): number; /** * Symmetric circular easing; scales circleIn for t in [0, 0.5] and circleOut for t in [0.5, 1]. * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeCircleInOut(normalizedTime: number): number; /** * Reverse bounce easing; equivalent to 1 - bounceIn(1 - t). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeBounce(normalizedTime: number): number; /** * Bounce easing, like a rubber ball. * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeBounceIn(normalizedTime: number): number; /** * Reverse bounce easing; equivalent to 1 - bounceIn(1 - t). * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeBounceOut(normalizedTime: number): number; /** * Symmetric bounce easing; scales bounceIn for t in [0, 0.5] and bounceOut for t in [0.5, 1]. * * @param normalizedTime Normalized time typically in the range [0, 1] */ export function easeBounceInOut(normalizedTime: number): number; /** * Anticipatory easing function factory */ export interface BackEasingFactory { /** * Calculate eased time. * @param normalizedTime Normalized time typically in the range [0, 1] */ (normalizedTime: number): number; /** * Returns a new back easing with the specified overshoot s. * The degree of overshoot is configurable; if not specified, it defaults to 1.70158. * * @param s Overshoot parameter */ overshoot(s: number): BackEasingFactory; } /** * Symmetric anticipatory easing; scales backIn for t in [0, 0.5] and backOut for t in [0.5, 1]. * The degree of overshoot is configurable; it not specified, it defaults to 1.70158. */ export const easeBack: BackEasingFactory; /** * Anticipatory easing, like a dancer bending their knees before jumping off the floor. * The degree of overshoot is configurable; it not specified, it defaults to 1.70158. */ export const easeBackIn: BackEasingFactory; /** * Reverse anticipatory easing; equivalent to 1 - backIn(1 - t). * The degree of overshoot is configurable; it not specified, it defaults to 1.70158. */ export const easeBackOut: BackEasingFactory; /** * Symmetric anticipatory easing; scales backIn for t in [0, 0.5] and backOut for t in [0.5, 1]. * The degree of overshoot is configurable; it not specified, it defaults to 1.70158. */ export const easeBackInOut: BackEasingFactory; /** * Elastic easing function factory */ export interface ElasticEasingFactory { /** * Calculate eased time. * @param normalizedTime Normalized time typically in the range [0, 1] */ (normalizedTime: number): number; /** * Returns a new elastic easing with the specified amplitude a. * Defaults to 1,if not specified. * * @param a Amplitude for elastic easing. */ amplitude(a: number): ElasticEasingFactory; /** * Returns a new elastic easing with the specified amplitude a. * Defaults to 0.3,if not specified. * * @param p Period for elastic easing. */ period(p: number): ElasticEasingFactory; } /** * Reverse elastic easing; equivalent to 1 - elasticIn(1 - t). * The amplitude and period of the oscillation are configurable; * if not specified, they default to 1 and 0.3, respectively. */ export const easeElastic: ElasticEasingFactory; /** * Elastic easing, like a rubber band. * The amplitude and period of the oscillation are configurable; * if not specified, they default to 1 and 0.3, respectively. */ export const easeElasticIn: ElasticEasingFactory; /** * Reverse elastic easing; equivalent to 1 - elasticIn(1 - t). * The amplitude and period of the oscillation are configurable; * if not specified, they default to 1 and 0.3, respectively. */ export const easeElasticOut: ElasticEasingFactory; /** * Symmetric elastic easing; scales elasticIn for t in [0, 0.5] and elasticOut for t in [0.5, 1]. * The amplitude and period of the oscillation are configurable; * if not specified, they default to 1 and 0.3, respectively. */ export const easeElasticInOut: ElasticEasingFactory;