UNPKG

react-native-reanimated

Version:

More powerful alternative to Animated library for React Native.

148 lines (147 loc) • 4.87 kB
import type { PerpectiveTransform, RotateTransform, RotateXTransform, RotateYTransform, RotateZTransform, ScaleTransform, ScaleXTransform, ScaleYTransform, TranslateXTransform, TranslateYTransform, SkewXTransform, SkewYTransform, MatrixTransform, ViewStyle, TextStyle } from 'react-native'; export type TransformProperty = PerpectiveTransform | RotateTransform | RotateXTransform | RotateYTransform | RotateZTransform | ScaleTransform | ScaleXTransform | ScaleYTransform | TranslateXTransform | TranslateYTransform | SkewXTransform | SkewYTransform | MatrixTransform; export interface StyleProps extends ViewStyle, TextStyle { originX?: number; originY?: number; [key: string]: any; } export interface SharedValue<T> { value: T; addListener: (listenerID: number, listener: (value: T) => void) => void; removeListener: (listenerID: number) => void; modify: (modifier: (value: T) => T) => void; } export type ShareableRef<T> = { __hostObjectShareableJSRef: T; }; export type ShareableSyncDataHolderRef<T> = { __hostObjectShareableJSRefSyncDataHolder: T; }; export type MapperRegistry = { start: (mapperID: number, worklet: () => void, inputs: SharedValue<any>[], outputs?: SharedValue<any>[]) => void; stop: (mapperID: number) => void; }; export type Context = Record<string, unknown>; export interface WorkletFunction { _closure?: Context; __workletHash?: number; } export interface BasicWorkletFunction<T> extends WorkletFunction { (): T; } export interface BasicWorkletFunctionOptional<T> extends WorkletFunction { (): Partial<T>; } export interface NativeEvent<T> { nativeEvent: T; } export interface ComplexWorkletFunction<A extends any[], R> extends WorkletFunction { (...args: A): R; __remoteFunction?: (...args: A) => R; } export interface NestedObject<T> { [key: string]: NestedObjectValues<T>; } export type NestedObjectValues<T> = T | Array<NestedObjectValues<T>> | NestedObject<T>; export interface AdapterWorkletFunction extends WorkletFunction { (value: NestedObject<string | number | AnimationObject>): void; } type Animatable = number | string | Array<number>; export type AnimatableValueObject = { [key: string]: Animatable; }; export type AnimatableValue = Animatable | AnimatableValueObject; export interface AnimationObject { [key: string]: any; callback?: AnimationCallback; current?: AnimatableValue; toValue?: AnimationObject['current']; startValue?: AnimationObject['current']; finished?: boolean; strippedCurrent?: number; cancelled?: boolean; __prefix?: string; __suffix?: string; onFrame: (animation: any, timestamp: Timestamp) => boolean; onStart: (nextAnimation: any, current: any, timestamp: Timestamp, previousAnimation: any) => void; } export interface Animation<T extends AnimationObject> extends AnimationObject { onFrame: (animation: T, timestamp: Timestamp) => boolean; onStart: (nextAnimation: T, current: AnimatableValue, timestamp: Timestamp, previousAnimation: Animation<any> | null | T) => void; } export declare enum SensorType { ACCELEROMETER = 1, GYROSCOPE = 2, GRAVITY = 3, MAGNETIC_FIELD = 4, ROTATION = 5 } export declare enum IOSReferenceFrame { XArbitraryZVertical = 0, XArbitraryCorrectedZVertical = 1, XMagneticNorthZVertical = 2, XTrueNorthZVertical = 3, Auto = 4 } export type SensorConfig = { interval: number | 'auto'; adjustToInterfaceOrientation: boolean; iosReferenceFrame: IOSReferenceFrame; }; export type AnimatedSensor<T extends Value3D | ValueRotation> = { sensor: SharedValue<T>; unregister: () => void; isAvailable: boolean; config: SensorConfig; }; export interface NumericAnimation { current?: number; } export type AnimationCallback = (finished?: boolean, current?: AnimatableValue) => void; export type Timestamp = number; export type Value3D = { x: number; y: number; z: number; interfaceOrientation: InterfaceOrientation; }; export type ValueRotation = { qw: number; qx: number; qy: number; qz: number; yaw: number; pitch: number; roll: number; interfaceOrientation: InterfaceOrientation; }; export declare enum InterfaceOrientation { ROTATION_0 = 0, ROTATION_90 = 90, ROTATION_180 = 180, ROTATION_270 = 270 } export type ShadowNodeWrapper = object; export declare enum KeyboardState { UNKNOWN = 0, OPENING = 1, OPEN = 2, CLOSING = 3, CLOSED = 4 } export type AnimatedKeyboardInfo = { height: SharedValue<number>; state: SharedValue<KeyboardState>; }; export interface MeasuredDimensions { x: number; y: number; width: number; height: number; pageX: number; pageY: number; } export interface AnimatedKeyboardOptions { isStatusBarTranslucentAndroid?: boolean; } export {};