UNPKG

react-native-reanimated

Version:

More powerful alternative to Animated library for React Native.

34 lines (33 loc) 1.38 kB
import type { Context, WorkletFunction, NativeEvent } from '../commonTypes'; import type { DependencyList } from './commonTypes'; interface Handler<T, TContext extends Context> extends WorkletFunction { (event: T, context: TContext, isCanceledOrFailed?: boolean): void; } export interface GestureHandlers<T, TContext extends Context> { [key: string]: Handler<T, TContext> | undefined; onStart?: Handler<T, TContext>; onActive?: Handler<T, TContext>; onEnd?: Handler<T, TContext>; onFail?: Handler<T, TContext>; onCancel?: Handler<T, TContext>; onFinish?: Handler<T, TContext>; } declare const EventType: { UNDETERMINED: number; FAILED: number; BEGAN: number; CANCELLED: number; ACTIVE: number; END: number; }; interface GestureHandlerNativeEvent { handlerTag: number; numberOfPointers: number; state: (typeof EventType)[keyof typeof EventType]; } export interface GestureHandlerEvent<T> extends NativeEvent<T> { nativeEvent: T; } type InferArgument<T> = T extends GestureHandlerEvent<infer E> ? E extends GestureHandlerNativeEvent ? E : never : never; export declare function useAnimatedGestureHandler<T extends GestureHandlerEvent<any>, TContext extends Context = Context, Payload = InferArgument<T>>(handlers: GestureHandlers<Payload, TContext>, dependencies?: DependencyList): (e: T) => void; export {};