1/**
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 * @format
8 */
9
10/**
11 * This class implements common easing functions. The math is pretty obscure,
12 * but this cool website has nice visual illustrations of what they represent:
13 * http://xaedes.de/dev/transitions/
14 */
15export type EasingFunction = (value: number) => number;
16export interface EasingStatic {
17  step0: EasingFunction;
18  step1: EasingFunction;
19  linear: EasingFunction;
20  ease: EasingFunction;
21  quad: EasingFunction;
22  cubic: EasingFunction;
23  poly(n: number): EasingFunction;
24  sin: EasingFunction;
25  circle: EasingFunction;
26  exp: EasingFunction;
27  elastic(bounciness: number): EasingFunction;
28  back(s: number): EasingFunction;
29  bounce: EasingFunction;
30  bezier(x1: number, y1: number, x2: number, y2: number): EasingFunction;
31  in(easing: EasingFunction): EasingFunction;
32  out(easing: EasingFunction): EasingFunction;
33  inOut(easing: EasingFunction): EasingFunction;
34}
35
36export type Easing = EasingStatic;
37export const Easing: EasingStatic;
38