UNPKG

react-native-reanimated

Version:

More powerful alternative to Animated library for React Native.

69 lines (68 loc) 2.13 kB
import type { Animation, AnimatableValue, Timestamp } from '../commonTypes'; export type SpringConfig = { stiffness?: number; overshootClamping?: boolean; restDisplacementThreshold?: number; restSpeedThreshold?: number; velocity?: number; } & ({ mass?: number; damping?: number; duration?: never; dampingRatio?: never; } | { mass?: never; damping?: never; duration?: number; dampingRatio?: number; }); export interface SpringConfigInner { useDuration: boolean; configIsInvalid: boolean; } export interface SpringAnimation extends Animation<SpringAnimation> { current: AnimatableValue; toValue: AnimatableValue; velocity: number; lastTimestamp: Timestamp; startTimestamp: Timestamp; startValue: number; zeta: number; omega0: number; omega1: number; } export interface InnerSpringAnimation extends Omit<SpringAnimation, 'toValue' | 'current'> { toValue: number; current: number; } export declare function initialCalculations(mass: number | undefined, config: Record<keyof SpringConfig, any> & SpringConfigInner): { zeta: number; omega0: number; omega1: number; }; export declare function calculateNewMassToMatchDuration(x0: number, config: Record<keyof SpringConfig, any> & SpringConfigInner, v0: number): number; export declare function criticallyDampedSpringCalculations(animation: InnerSpringAnimation, precalculatedValues: { v0: number; x0: number; omega0: number; t: number; }): { position: number; velocity: number; }; export declare function underDampedSpringCalculations(animation: InnerSpringAnimation, precalculatedValues: { zeta: number; v0: number; x0: number; omega0: number; omega1: number; t: number; }): { position: number; velocity: number; }; export declare function isAnimationTerminatingCalculation(animation: InnerSpringAnimation, config: Partial<SpringConfig> & Required<Pick<SpringConfig, 'restSpeedThreshold' | 'restDisplacementThreshold'>>): { isOvershooting: boolean; isVelocity: boolean; isDisplacement: boolean; };