react-native-reanimated
Version:
More powerful alternative to Animated library for React Native.
880 lines (781 loc) • 29.5 kB
TypeScript
// Project: https://github.com/software-mansion/react-native-reanimated
// TypeScript Version: 2.8
declare module 'react-native-reanimated' {
import {
ComponentClass,
Component,
RefObject,
FunctionComponent,
} from 'react';
import {
ViewProps,
TextProps,
ImageProps,
ScrollViewProps,
FlatListProps,
StyleProp,
RegisteredStyle,
ViewStyle,
TextStyle,
ImageStyle,
TransformsStyle,
View as ReactNativeView,
Text as ReactNativeText,
Image as ReactNativeImage,
ScrollView as ReactNativeScrollView,
FlatList as ReactNativeFlatList,
NativeScrollEvent,
NativeSyntheticEvent,
ColorValue,
EasingFunction,
} from 'react-native';
import {
GestureHandlerGestureEvent,
PanGestureHandlerGestureEvent,
} from 'react-native-gesture-handler';
import('./lib/reanimated2/globals');
export type TimingAnimation =
import('./lib/types/lib/reanimated2/animation/index').TimingAnimation;
export type SpringAnimation =
import('./lib/types/lib/reanimated2/animation/index').SpringAnimation;
export type DecayAnimation =
import('./lib/types/lib/reanimated2/animation/index').DecayAnimation;
export type DelayAnimation =
import('./lib/types/lib/reanimated2/animation/commonTypes').DelayAnimation;
export type RepeatAnimation =
import('./lib/types/lib/reanimated2/animation/index').RepeatAnimation;
export type SequenceAnimation =
import('./lib/types/lib/reanimated2/animation/index').SequenceAnimation;
export type StyleLayoutAnimation =
import('./lib/types/lib/reanimated2/animation/index').StyleLayoutAnimation;
export type Animation<T> =
import('./lib/types/lib/reanimated2/commonTypes').Animation<T>;
export type MeasuredDimensions =
import('./lib/types/lib/reanimated2/commonTypes').MeasuredDimensions;
namespace Animated {
export enum Extrapolate {
EXTEND = 'extend',
CLAMP = 'clamp',
IDENTITY = 'identity',
}
type ExtrapolateParameter =
| Extrapolate
| { extrapolateLeft?: Extrapolate; extrapolateRight?: Extrapolate };
interface InterpolationConfig {
inputRange: ReadonlyArray<Adaptable<number>>;
outputRange: ReadonlyArray<Adaptable<number | string>>;
extrapolate?: ExtrapolateParameter;
extrapolateLeft?: Extrapolate;
extrapolateRight?: Extrapolate;
}
type Value = string | number | boolean;
export type SharedValue<T> = { value: T };
export type DerivedValue<T> = Readonly<SharedValue<T>>;
export type Adaptable<T> =
| T
| ReadonlyArray<T | ReadonlyArray<T>>
| SharedValue<T>;
export type TransformStyleTypes = TransformsStyle['transform'] extends
| readonly (infer T)[]
| undefined
? T
: never;
export type AdaptTransforms<T> = {
[P in keyof T]: Adaptable<T[P]>;
};
export type AnimatedTransform = AdaptTransforms<TransformStyleTypes>[];
export type AnimateStyle<S> = {
[K in keyof S]: K extends 'transform'
? AnimatedTransform
: S[K] extends ReadonlyArray<any>
? ReadonlyArray<AnimateStyle<S[K][0]>>
: S[K] extends object
? AnimateStyle<S[K]>
: S[K] extends ColorValue | undefined
? S[K] | number
: S[K] | SharedValue<AnimatableValue>;
};
export type StylesOrDefault<T> = 'style' extends keyof T
? T['style']
: Record<string, unknown>;
export type AnimateProps<P extends object> = {
[K in keyof Omit<P, 'style'>]: P[K] | SharedValue<P[K]>;
} & {
style?: StyleProp<AnimateStyle<StylesOrDefault<P>>>;
} & {
animatedProps?: Partial<AnimateProps<P>>;
layout?:
| BaseAnimationBuilder
| LayoutAnimationFunction
| typeof BaseAnimationBuilder;
entering?:
| BaseAnimationBuilder
| typeof BaseAnimationBuilder
| EntryExitAnimationFunction
| Keyframe;
exiting?:
| BaseAnimationBuilder
| typeof BaseAnimationBuilder
| EntryExitAnimationFunction
| Keyframe;
sharedTransitionTag?: string;
sharedTransitionStyle?: ILayoutAnimationBuilder;
};
// components
export class View extends Component<AnimateProps<ViewProps>> {
getNode(): ReactNativeView;
}
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface View extends ReactNativeView {}
export class Text extends Component<AnimateProps<TextProps>> {
getNode(): ReactNativeText;
}
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface Text extends ReactNativeText {}
export class Image extends Component<AnimateProps<ImageProps>> {
getNode(): ReactNativeImage;
}
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface Image extends ReactNativeImage {}
export class ScrollView extends Component<AnimateProps<ScrollViewProps>> {
getNode(): ReactNativeScrollView;
}
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface ScrollView extends ReactNativeScrollView {}
export interface FlatListPropsWithLayout<T> extends FlatListProps<T> {
itemLayoutAnimation?: ILayoutAnimationBuilder;
}
export class FlatList<T> extends Component<
AnimateProps<FlatListPropsWithLayout<T>>
> {
getNode(): ReactNativeFlatList;
}
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface FlatList<T> extends ReactNativeView<T> {}
type Options<P> = {
setNativeProps: (ref: any, props: P) => void;
};
export function createAnimatedComponent<P extends object>(
component: ComponentClass<P>,
options?: Options<P>
): ComponentClass<AnimateProps<P>>;
export function createAnimatedComponent<P extends object>(
component: FunctionComponent<P>,
options?: Options<P>
): FunctionComponent<AnimateProps<P>>;
// configuration
export function addWhitelistedNativeProps(props: {
[key: string]: true;
}): void;
export function addWhitelistedUIProps(props: { [key: string]: true }): void;
}
export default Animated;
export type SharedValue<T> = Animated.SharedValue<T>;
export type AnimateStyle<S> = Animated.AnimateStyle<S>;
export type DerivedValue<T> = Animated.DerivedValue<T>;
export type Adaptable<T> = Animated.Adaptable<T>;
export type TransformStyleTypes = Animated.TransformStyleTypes;
export type AdaptTransforms<T> = Animated.AdaptTransforms<T>;
export type AnimatedTransform = Animated.AnimatedTransform;
export type AnimateProps<P extends object> = Animated.AnimateProps<P>;
export type LayoutAnimation = {
initialValues: StyleProps;
animations: AnimateStyle;
};
export interface EntryAnimationsValues {
targetOriginX: number;
targetOriginY: number;
targetWidth: number;
targetHeight: number;
targetGlobalOriginX: number;
targetGlobalOriginY: number;
}
export enum SensorType {
ACCELEROMETER = 1,
GYROSCOPE = 2,
GRAVITY = 3,
MAGNETIC_FIELD = 4,
ROTATION = 5,
}
export enum IOSReferenceFrame {
XArbitraryZVertical = 0,
XArbitraryCorrectedZVertical = 1,
XMagneticNorthZVertical = 2,
XTrueNorthZVertical = 3,
Auto = 4,
}
export type SensorConfig = Partial<{
interval: number | 'auto';
adjustToInterfaceOrientation: boolean;
iosReferenceFrame: IOSReferenceFrame;
}>;
export type Value3D = {
x: number;
y: number;
z: number;
interfaceOrientation: InterfaceOrientation;
};
export type SensorValue3D = SharedValue<Value3D>;
export type ValueRotation = {
qw: number;
qx: number;
qy: number;
qz: number;
yaw: number;
pitch: number;
roll: number;
interfaceOrientation: InterfaceOrientation;
};
export type SensorValueRotation = SharedValue<ValueRotation>;
export type AnimatedSensor<SensorValueType> = {
sensor: SensorValueType;
unregister: () => void;
isAvailable: boolean;
config: SensorConfig;
};
export function useAnimatedSensor(
sensorType: SensorType.ROTATION,
userConfig?: SensorConfig
): AnimatedSensor<SensorValueRotation>;
export function useAnimatedSensor(
sensorType: Exclude<SensorType, SensorType.ROTATION>,
userConfig?: SensorConfig
): AnimatedSensor<SensorValue3D>;
export function useAnimatedSensor(
sensorType: SensorType,
userConfig?: SensorConfig
): AnimatedSensor<any>;
export type FrameCallback = {
setActive: (isActive: boolean) => void;
isActive: boolean;
callbackId: number;
};
export type FrameInfo = {
timestamp: number;
timeSincePreviousFrame: number | null;
timeSinceFirstFrame: number;
};
export function useFrameCallback(
callback: (frameInfo: FrameInfo) => void,
autostart?: boolean
): FrameCallback;
export enum KeyboardState {
UNKNOWN = 0,
OPENING = 1,
OPEN = 2,
CLOSING = 3,
CLOSED = 4,
}
export type AnimatedKeyboardInfo = {
height: SharedValue<number>;
state: SharedValue<KeyboardState>;
};
export interface AnimatedKeyboardOptions {
isStatusBarTranslucentAndroid?: boolean;
}
export function useAnimatedKeyboard(
options?: AnimatedKeyboardOptions
): AnimatedKeyboardInfo;
export function useScrollViewOffset(
aref: RefObject<Animated.ScrollView>
): SharedValue<number>;
export interface ExitAnimationsValues {
currentOriginX: number;
currentOriginY: number;
currentWidth: number;
currentHeight: number;
currentGlobalOriginX: number;
currentGlobalOriginY: number;
}
export type EntryExitAnimationFunction =
| ((targetValues: EntryAnimationsValues) => LayoutAnimation)
| ((targetValues: ExitAnimationsValues) => LayoutAnimation);
export type LayoutAnimationsValues = {
currentOriginX: number;
currentOriginY: number;
currentWidth: number;
currentHeight: number;
currentGlobalOriginX: number;
currentGlobalOriginY: number;
targetOriginX: number;
targetOriginY: number;
targetWidth: number;
targetHeight: number;
targetGlobalOriginX: number;
targetGlobalOriginY: number;
windowWidth: number;
windowHeight: number;
};
export type LayoutAnimationFunction = (
targetValues: LayoutAnimationsValues
) => LayoutAnimation;
export interface ILayoutAnimationBuilder {
build: () => LayoutAnimationFunction;
}
export interface IEntryExitAnimationBuilder {
build: () => EntryExitAnimationFunction;
}
export type AnimatableValue = number | string | Array<number>;
// reanimated2 derived operations
export enum Extrapolation {
IDENTITY = 'identity',
CLAMP = 'clamp',
EXTEND = 'extend',
}
export interface InterpolatedNode {
__nodeId: number;
}
export interface ExtrapolationConfig {
extrapolateLeft?: Extrapolation | string;
extrapolateRight?: Extrapolation | string;
}
export type ExtrapolationType =
| ExtrapolationConfig
| Extrapolation
| string
| undefined;
export function interpolate(
x: number,
input: readonly number[],
output: readonly number[],
type?: ExtrapolationType
): number;
// reanimated2 animations
export type AnimationCallback = (
finished?: boolean,
current?: AnimatableValue
) => void;
export type EasingFunctionFactory = { factory: () => EasingFunction };
export interface WithTimingConfig {
duration?: number;
easing?: EasingFunction | EasingFunctionFactory;
}
export interface WithDecayConfig {
deceleration?: number;
velocity?: number;
clamp?: [number, number];
velocityFactor?: number;
rubberBandEffect?: boolean;
rubberBandFactor?: number;
}
export interface WithSpringConfig {
damping?: number;
mass?: number;
stiffness?: number;
overshootClamping?: boolean;
restSpeedThreshold?: number;
restDisplacementThreshold?: number;
velocity?: number;
}
export function withTiming<T extends AnimatableValue>(
toValue: T,
userConfig?: WithTimingConfig,
callback?: AnimationCallback
): T;
export function withSpring<T extends AnimatableValue>(
toValue: T,
userConfig?: WithSpringConfig,
callback?: AnimationCallback
): T;
export function withDecay(
userConfig: WithDecayConfig,
callback?: AnimationCallback
): number;
export function cancelAnimation<T>(sharedValue: SharedValue<T>): void;
export function withDelay<T extends AnimatableValue>(
delayMS: number,
delayedAnimation: T
): T;
export function withRepeat<T extends AnimatableValue>(
animation: T,
numberOfReps?: number,
reverse?: boolean,
callback?: AnimationCallback
): T;
export function withSequence<T extends AnimatableValue>(
...animations: [T, ...T[]]
): T;
// reanimated2 functions
export function runOnUI<A extends any[], R>(
fn: (...args: A) => R
): (...args: Parameters<typeof fn>) => void;
export function runOnJS<A extends any[], R>(
fn: (...args: A) => R
): (...args: Parameters<typeof fn>) => void;
type PropsAdapterFunction = (props: Record<string, unknown>) => void;
export function createAnimatedPropAdapter(
adapter: PropsAdapterFunction,
nativeProps?: string[]
): PropsAdapterFunction;
export function processColor(color: number | string): number;
export type InterpolationOptions = {
gamma?: number;
useCorrectedHSVInterpolation?: boolean;
};
export function isColor(value: unknown): boolean;
export function interpolateColor<T extends string | number>(
value: number,
inputRange: readonly number[],
outputRange: readonly T[],
colorSpace?: 'RGB' | 'HSV',
options?: InterpolationOptions
): T;
export enum ColorSpace {
RGB = 0,
HSV = 1,
}
export interface InterpolateRGB {
r: number[];
g: number[];
b: number[];
a: number[];
}
export interface InterpolateHSV {
h: number[];
s: number[];
v: number[];
}
export interface InterpolateConfig {
inputRange: readonly number[];
outputRange: readonly (string | number)[];
colorSpace: ColorSpace;
cache: SharedValue<InterpolateRGB | InterpolateHSV | null>;
}
export function useInterpolateConfig(
inputRange: readonly number[],
outputRange: readonly (string | number)[],
colorSpace?: ColorSpace,
options?: InterpolationOptions
): SharedValue<InterpolateConfig>;
export function interpolateSharableColor(
value: number,
interpolateConfig: SharedValue<InterpolateConfig>
): string | number;
export function makeMutable<T>(initialValue: T): SharedValue<T>;
type DependencyList = ReadonlyArray<any>;
// reanimated2 hooks
export function useSharedValue<T>(initialValue: T): SharedValue<T>;
export function useDerivedValue<T>(
processor: () => T,
deps?: DependencyList
): DerivedValue<T>;
export function useAnimatedReaction<D>(
prepare: () => D,
react: (prepareResult: D, preparePreviousResult: D | null) => void,
deps?: DependencyList
): void;
export type AnimatedStyleProp<T> =
| AnimateStyle<T>
| RegisteredStyle<AnimateStyle<T>>;
export function useAnimatedStyle<
T extends AnimatedStyleProp<ViewStyle | ImageStyle | TextStyle>
>(updater: () => T, deps?: DependencyList | null): T;
export function useAnimatedProps<T extends {}>(
updater: () => Partial<T>,
deps?: DependencyList | null,
adapters?: PropsAdapterFunction | PropsAdapterFunction[] | null
): Partial<T>;
export function useEvent<T extends {}>(
handler: (e: T) => void,
eventNames?: string[],
rebuild?: boolean
): (e: NativeSyntheticEvent<T>) => void;
export function useHandler<T, TContext extends Context = {}>(
handlers: Record<string, Handler<T, TContext>>,
deps?: DependencyList
): { context: TContext; doDependenciesDiffer: boolean; useWeb: boolean };
export function useAnimatedGestureHandler<
T extends GestureHandlerGestureEvent = PanGestureHandlerGestureEvent,
TContext extends Context = {}
>(
handlers: GestureHandlers<T['nativeEvent'], TContext>,
deps?: DependencyList
): OnGestureEvent<T>;
export function useAnimatedScrollHandler<TContext extends Context = {}>(
handlers: ScrollHandlers<TContext> | ScrollHandler<TContext>,
deps?: DependencyList
): OnScroll;
export function useWorkletCallback<A extends any[], R>(
fn: (...args: A) => R,
deps?: DependencyList
): (...args: Parameters<typeof fn>) => R;
export function useAnimatedRef<T extends Component>(): RefObject<T>;
export function defineAnimation<T>(starting: any, factory: () => T): number;
export function measure<T extends Component>(
ref: RefObject<T>
): MeasuredDimensions | null;
export function getRelativeCoords(
ref: RefObject<Component>,
x: number,
y: number
): {
x: number;
y: number;
};
export function scrollTo(
ref: RefObject<ReactNativeScrollView | ScrollView>,
x: number,
y: number,
animated: boolean
): void;
// gesture-handler
type OnGestureEvent<T extends GestureHandlerGestureEvent> = (
event: T
) => void;
type Context = Record<string, unknown>;
type Handler<T, TContext extends Context> = (
event: T,
context: TContext
) => void;
export interface GestureHandlers<T, TContext extends Context> {
onStart?: Handler<T, TContext>;
onActive?: Handler<T, TContext>;
onEnd?: Handler<T, TContext>;
onFail?: Handler<T, TContext>;
onCancel?: Handler<T, TContext>;
onFinish?: (
event: T,
context: TContext,
isCanceledOrFailed: boolean
) => void;
}
// scroll view
type OnScroll = (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
type ScrollHandler<TContext extends Context> = (
event: NativeScrollEvent,
context: TContext
) => void;
export interface ScrollHandlers<TContext extends Context> {
onScroll?: ScrollHandler<TContext>;
onBeginDrag?: ScrollHandler<TContext>;
onEndDrag?: ScrollHandler<TContext>;
onMomentumBegin?: ScrollHandler<TContext>;
onMomentumEnd?: ScrollHandler<TContext>;
}
export interface StyleProps extends ViewStyle, TextStyle {
originX?: number;
originY?: number;
[key: string]: any;
}
export type EasingFn = (t: number) => number;
export interface KeyframeProps extends StyleProps {
easing?: EasingFn;
[key: string]: any;
}
export class Keyframe {
constructor(definitions: Record<string, KeyframeProps>);
duration(durationMs: number): Keyframe;
delay(delayMs: number): Keyframe;
withCallback(callback: (finished: boolean) => void): Keyframe;
}
export class BaseAnimationBuilder {
static duration(durationMs: number): BaseAnimationBuilder;
duration(durationMs: number): BaseAnimationBuilder;
static delay(durationMs: number): BaseAnimationBuilder;
delay(durationMs: number): BaseAnimationBuilder;
static withCallback(
callback: (finished: boolean) => void
): BaseAnimationBuilder;
withCallback(callback: (finished: boolean) => void): BaseAnimationBuilder;
static randomDelay(): BaseAnimationBuilder;
randomDelay(): BaseAnimationBuilder;
build: () => LayoutAnimationFunction | EntryExitAnimationFunction;
}
export class ComplexAnimationBuilder extends BaseAnimationBuilder {
static duration(durationMs: number): ComplexAnimationBuilder;
duration(durationMs: number): ComplexAnimationBuilder;
static delay(durationMs: number): ComplexAnimationBuilder;
delay(durationMs: number): ComplexAnimationBuilder;
static withCallback(
callback: (finished: boolean) => void
): ComplexAnimationBuilder;
withCallback(
callback: (finished: boolean) => void
): ComplexAnimationBuilder;
static withInitialValues(values: StyleProps): BaseAnimationBuilder;
withInitialValues(values: StyleProps): BaseAnimationBuilder;
static easing(easingFunction: EasingFunction): ComplexAnimationBuilder;
easing(easingFunction: EasingFunction): ComplexAnimationBuilder;
static springify(): ComplexAnimationBuilder;
springify(): ComplexAnimationBuilder;
static damping(dampingFactor: number): ComplexAnimationBuilder;
damping(dampingFactor: number): ComplexAnimationBuilder;
static mass(mass: number): ComplexAnimationBuilder;
mass(mass: number): ComplexAnimationBuilder;
static stiffness(stiffnessFactor: number): ComplexAnimationBuilder;
stiffness(stiffnessFactor: number): ComplexAnimationBuilder;
static overshootClamping(
overshootClampingFactor: number
): ComplexAnimationBuilder;
overshootClamping(overshootClampingFactor: number): ComplexAnimationBuilder;
static restDisplacementThreshold(
restDisplacementThresholdFactor: number
): ComplexAnimationBuilder;
restDisplacementThreshold(
restDisplacementThresholdFactor: number
): ComplexAnimationBuilder;
static restSpeedThreshold(
restSpeedThresholdFactor: number
): ComplexAnimationBuilder;
restSpeedThreshold(
restSpeedThresholdFactor: number
): ComplexAnimationBuilder;
}
export class Layout extends ComplexAnimationBuilder {}
export class FadingTransition extends BaseAnimationBuilder {}
export class SequencedTransition extends BaseAnimationBuilder {
static reverse(): SequencedTransition;
reverse(): SequencedTransition;
}
export class JumpingTransition extends BaseAnimationBuilder {}
export class CurvedTransition extends BaseAnimationBuilder {
static delay(durationMs: number): CurvedTransition;
delay(durationMs: number): CurvedTransition;
static easingX(easing: EasingFn): CurvedTransition;
easingX(easing: EasingFn): CurvedTransition;
static easingY(easing: EasingFn): CurvedTransition;
easingY(easing: EasingFn): CurvedTransition;
static easingWidth(easing: EasingFn): CurvedTransition;
easingWidth(easing: EasingFn): CurvedTransition;
static easingHeight(easing: EasingFn): CurvedTransition;
easingHeight(easing: EasingFn): CurvedTransition;
}
export class EntryExitTransition extends BaseAnimationBuilder {
static delay(durationMs: number): EntryExitTransition;
delay(durationMs: number): EntryExitTransition;
static entering(
animation: BaseAnimationBuilder | typeof BaseAnimationBuilder
): EntryExitTransition;
entering(
animation: BaseAnimationBuilder | typeof BaseAnimationBuilder
): EntryExitTransition;
static exiting(
animation: BaseAnimationBuilder | typeof BaseAnimationBuilder
): EntryExitTransition;
exiting(
animation: BaseAnimationBuilder | typeof BaseAnimationBuilder
): EntryExitTransition;
}
export function combineTransition(
exiting: BaseAnimationBuilder | typeof BaseAnimationBuilder,
entering: BaseAnimationBuilder | typeof BaseAnimationBuilder
): EntryExitTransition;
export class SlideInRight extends ComplexAnimationBuilder {}
export class SlideOutRight extends ComplexAnimationBuilder {}
export class SlideInUp extends ComplexAnimationBuilder {}
export class SlideInDown extends ComplexAnimationBuilder {}
export class SlideOutUp extends ComplexAnimationBuilder {}
export class SlideOutDown extends ComplexAnimationBuilder {}
export class FadeIn extends ComplexAnimationBuilder {}
export class FadeInRight extends ComplexAnimationBuilder {}
export class FadeInLeft extends ComplexAnimationBuilder {}
export class FadeInUp extends ComplexAnimationBuilder {}
export class FadeInDown extends ComplexAnimationBuilder {}
export class FadeOut extends ComplexAnimationBuilder {}
export class FadeOutRight extends ComplexAnimationBuilder {}
export class FadeOutLeft extends ComplexAnimationBuilder {}
export class FadeOutUp extends ComplexAnimationBuilder {}
export class FadeOutDown extends ComplexAnimationBuilder {}
export class SlideOutLeft extends ComplexAnimationBuilder {}
export class SlideInLeft extends ComplexAnimationBuilder {}
export class ZoomIn extends ComplexAnimationBuilder {}
export class ZoomInRotate extends ComplexAnimationBuilder {}
export class ZoomInRight extends ComplexAnimationBuilder {}
export class ZoomInLeft extends ComplexAnimationBuilder {}
export class ZoomInUp extends ComplexAnimationBuilder {}
export class ZoomInDown extends ComplexAnimationBuilder {}
export class ZoomInEasyUp extends ComplexAnimationBuilder {}
export class ZoomInEasyDown extends ComplexAnimationBuilder {}
export class ZoomOut extends ComplexAnimationBuilder {}
export class ZoomOutRotate extends ComplexAnimationBuilder {}
export class ZoomOutRight extends ComplexAnimationBuilder {}
export class ZoomOutLeft extends ComplexAnimationBuilder {}
export class ZoomOutUp extends ComplexAnimationBuilder {}
export class ZoomOutDown extends ComplexAnimationBuilder {}
export class ZoomOutEasyUp extends ComplexAnimationBuilder {}
export class ZoomOutEasyDown extends ComplexAnimationBuilder {}
export class StretchInX extends ComplexAnimationBuilder {}
export class StretchInY extends ComplexAnimationBuilder {}
export class StretchOutX extends ComplexAnimationBuilder {}
export class StretchOutY extends ComplexAnimationBuilder {}
export class FlipInXUp extends ComplexAnimationBuilder {}
export class FlipInYLeft extends ComplexAnimationBuilder {}
export class FlipInXDown extends ComplexAnimationBuilder {}
export class FlipInYRight extends ComplexAnimationBuilder {}
export class FlipInEasyX extends ComplexAnimationBuilder {}
export class FlipInEasyY extends ComplexAnimationBuilder {}
export class FlipOutXUp extends ComplexAnimationBuilder {}
export class FlipOutYLeft extends ComplexAnimationBuilder {}
export class FlipOutXDown extends ComplexAnimationBuilder {}
export class FlipOutYRight extends ComplexAnimationBuilder {}
export class FlipOutEasyX extends ComplexAnimationBuilder {}
export class FlipOutEasyY extends ComplexAnimationBuilder {}
export class BounceIn extends BaseAnimationBuilder {}
export class BounceInDown extends BaseAnimationBuilder {}
export class BounceInUp extends BaseAnimationBuilder {}
export class BounceInLeft extends BaseAnimationBuilder {}
export class BounceInRight extends BaseAnimationBuilder {}
export class BounceOut extends BaseAnimationBuilder {}
export class BounceOutDown extends BaseAnimationBuilder {}
export class BounceOutUp extends BaseAnimationBuilder {}
export class BounceOutLeft extends BaseAnimationBuilder {}
export class BounceOutRight extends BaseAnimationBuilder {}
export class LightSpeedInRight extends ComplexAnimationBuilder {}
export class LightSpeedInLeft extends ComplexAnimationBuilder {}
export class LightSpeedOutRight extends ComplexAnimationBuilder {}
export class LightSpeedOutLeft extends ComplexAnimationBuilder {}
export class PinwheelIn extends ComplexAnimationBuilder {}
export class PinwheelOut extends ComplexAnimationBuilder {}
export class RotateInDownLeft extends ComplexAnimationBuilder {}
export class RotateInDownRight extends ComplexAnimationBuilder {}
export class RotateInUpRight extends ComplexAnimationBuilder {}
export class RotateInUpLeft extends ComplexAnimationBuilder {}
export class RotateOutDownRight extends ComplexAnimationBuilder {}
export class RotateOutDownLeft extends ComplexAnimationBuilder {}
export class RotateOutUpLeft extends ComplexAnimationBuilder {}
export class RotateOutUpRight extends ComplexAnimationBuilder {}
export class RollInLeft extends ComplexAnimationBuilder {}
export class RollInRight extends ComplexAnimationBuilder {}
export class RollOutLeft extends ComplexAnimationBuilder {}
export class RollOutRight extends ComplexAnimationBuilder {}
interface EasingStatic {
linear: Animated.EasingFunction;
ease: Animated.EasingFunction;
quad: Animated.EasingFunction;
cubic: Animated.EasingFunction;
poly(n: number): Animated.EasingFunction;
sin: Animated.EasingFunction;
circle: Animated.EasingFunction;
exp: Animated.EasingFunction;
elastic(bounciness?: number): Animated.EasingFunction;
back(s?: number): Animated.EasingFunction;
bounce: Animated.EasingFunction;
bezier(
x1: number,
y1: number,
x2: number,
y2: number
): { factory: () => Animated.EasingFunction };
bezierFn(
x1: number,
y1: number,
x2: number,
y2: number
): Animated.EasingFunction;
in(easing: Animated.EasingFunction): Animated.EasingFunction;
out(easing: Animated.EasingFunction): Animated.EasingFunction;
inOut(easing: Animated.EasingFunction): Animated.EasingFunction;
}
export const Easing: EasingStatic;
export function enableLayoutAnimations(flag: boolean): void;
export const Extrapolate: typeof Animated.Extrapolate;
type AnimationFactoryType = (values: LayoutAnimationsValues) => StyleProps;
export class SharedTransition implements ILayoutAnimationBuilder {
animationFactory: AnimationFactoryType | null = null;
static createInstance(): SharedTransition;
static custom(animationFactory: AnimationFactoryType): SharedTransition;
custom(animationFactory: AnimationFactoryType): SharedTransition;
static build(): LayoutAnimationFunction;
build(): LayoutAnimationFunction;
}
}