`.
```dts
function draw(
	node: SVGElement & {
		getTotalLength(): number;
	},
	{
		delay,
		speed,
		duration,
		easing
	}?: DrawParams | undefined
): TransitionConfig;
```
## fade
Animates the opacity of an element from 0 to the current opacity for `in` transitions and from the current opacity to 0 for `out` transitions.
```dts
function fade(
	node: Element,
	{ delay, duration, easing }?: FadeParams | undefined
): TransitionConfig;
```
## fly
Animates the x and y positions and the opacity of an element. `in` transitions animate from the provided values, passed as parameters to the element's default values. `out` transitions animate from the element's default values to the provided values.
```dts
function fly(
	node: Element,
	{
		delay,
		duration,
		easing,
		x,
		y,
		opacity
	}?: FlyParams | undefined
): TransitionConfig;
```
## scale
Animates the opacity and scale of an element. `in` transitions animate from the provided values, passed as parameters, to an element's current (default) values. `out` transitions animate from an element's default values to the provided values.
```dts
function scale(
	node: Element,
	{
		delay,
		duration,
		easing,
		start,
		opacity
	}?: ScaleParams | undefined
): TransitionConfig;
```
## slide
Slides an element in and out.
```dts
function slide(
	node: Element,
	{
		delay,
		duration,
		easing,
		axis
	}?: SlideParams | undefined
): TransitionConfig;
```
## BlurParams
```dts
interface BlurParams {/*…*/}
```
```dts
delay?: number;
```
```dts
duration?: number;
```
```dts
easing?: EasingFunction;
```
```dts
amount?: number | string;
```
```dts
opacity?: number;
```
```dts
interface CrossfadeParams {/*…*/}
```
```dts
delay?: number;
```
```dts
duration?: number | ((len: number) => number);
```
```dts
easing?: EasingFunction;
```
```dts
interface DrawParams {/*…*/}
```
```dts
delay?: number;
```
```dts
speed?: number;
```
```dts
duration?: number | ((len: number) => number);
```
```dts
easing?: EasingFunction;
```
```dts
type EasingFunction = (t: number) => number;
```
## FadeParams
```dts
interface FadeParams {/*…*/}
```
```dts
delay?: number;
```
```dts
duration?: number;
```
```dts
easing?: EasingFunction;
```
```dts
interface FlyParams {/*…*/}
```
```dts
delay?: number;
```
```dts
duration?: number;
```
```dts
easing?: EasingFunction;
```
```dts
x?: number | string;
```
```dts
y?: number | string;
```
```dts
opacity?: number;
```
```dts
interface ScaleParams {/*…*/}
```
```dts
delay?: number;
```
```dts
duration?: number;
```
```dts
easing?: EasingFunction;
```
```dts
start?: number;
```
```dts
opacity?: number;
```
```dts
interface SlideParams {/*…*/}
```
```dts
delay?: number;
```
```dts
duration?: number;
```
```dts
easing?: EasingFunction;
```
```dts
axis?: 'x' | 'y';
```
```dts
interface TransitionConfig {/*…*/}
```
```dts
delay?: number;
```
```dts
duration?: number;
```
```dts
easing?: EasingFunction;
```
```dts
css?: (t: number, u: number) => string;
```
```dts
tick?: (t: number, u: number) => void;
```