UNPKG

react-native-reanimated

Version:

More powerful alternative to Animated library for React Native.

880 lines (781 loc) • 29.5 kB
// 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; } }