import type { ReactTestInstance } from 'react-test-renderer';
import type { FlingGestureHandler } from '../handlers/FlingGestureHandler';
import type { ForceTouchGestureHandler } from '../handlers/ForceTouchGestureHandler';
import type { BaseGestureHandlerProps, GestureEvent, HandlerStateChangeEvent } from '../handlers/gestureHandlerCommon';
import type { ForceTouchGestureHandlerEventPayload, LongPressGestureHandlerEventPayload, NativeViewGestureHandlerPayload, PanGestureHandlerEventPayload, PinchGestureHandlerEventPayload, RotationGestureHandlerEventPayload, TapGestureHandlerEventPayload } from '../handlers/GestureHandlerEventPayload';
import type { FlingGesture } from '../handlers/gestures/flingGesture';
import type { ForceTouchGesture } from '../handlers/gestures/forceTouchGesture';
import type { GestureType } from '../handlers/gestures/gesture';
import { BaseGesture } from '../handlers/gestures/gesture';
import type { LongPressGesture } from '../handlers/gestures/longPressGesture';
import type { NativeGesture } from '../handlers/gestures/nativeGesture';
import type { PanGesture } from '../handlers/gestures/panGesture';
import type { PinchGesture } from '../handlers/gestures/pinchGesture';
import type { RotationGesture } from '../handlers/gestures/rotationGesture';
import type { TapGesture } from '../handlers/gestures/tapGesture';
import type { LongPressGestureHandler } from '../handlers/LongPressGestureHandler';
import type { NativeViewGestureHandler } from '../handlers/NativeViewGestureHandler';
import type { PanGestureHandler } from '../handlers/PanGestureHandler';
import type { PinchGestureHandler } from '../handlers/PinchGestureHandler';
import type { RotationGestureHandler } from '../handlers/RotationGestureHandler';
import type { TapGestureHandler } from '../handlers/TapGestureHandler';
import type { SingleGesture } from '../v3/types';
type GestureHandlerTestEvent<TEventPayload extends Record<string, unknown> = Record<string, unknown>> = (GestureEvent<TEventPayload> | HandlerStateChangeEvent<TEventPayload>)['nativeEvent'];
type AllGestures = TapGesture | PanGesture | LongPressGesture | RotationGesture | PinchGesture | FlingGesture | ForceTouchGesture | NativeGesture;
type AllHandlers = TapGestureHandler | PanGestureHandler | LongPressGestureHandler | RotationGestureHandler | PinchGestureHandler | FlingGestureHandler | ForceTouchGestureHandler | NativeViewGestureHandler;
type ClassComponentConstructor<P> = new (props: P) => React.Component<P, any, any>;
type ExtractPayloadFromProps<T> = T extends BaseGestureHandlerProps<infer TPayload> ? TPayload : never;
type ExtractConfig<T> = T extends BaseGesture<infer TGesturePayload> ? TGesturePayload : T extends ClassComponentConstructor<infer THandlerProps> ? ExtractPayloadFromProps<THandlerProps> : Record<string, unknown>;
export declare function fireGestureHandler<THandler extends AllGestures | AllHandlers>(componentOrGesture: ReactTestInstance | GestureType | SingleGesture<any, any, any>, eventList?: Partial<GestureHandlerTestEvent<ExtractConfig<THandler>>>[]): void;
export declare function getByGestureTestId(testID: string): BaseGesture<Record<string, unknown>> | BaseGesture<Record<string, never>> | BaseGesture<TapGestureHandlerEventPayload> | BaseGesture<PanGestureHandlerEventPayload> | BaseGesture<LongPressGestureHandlerEventPayload> | BaseGesture<RotationGestureHandlerEventPayload> | BaseGesture<PinchGestureHandlerEventPayload> | BaseGesture<ForceTouchGestureHandlerEventPayload> | BaseGesture<NativeViewGestureHandlerPayload> | BaseGesture<import("../handlers/GestureHandlerEventPayload").HoverGestureHandlerEventPayload> | SingleGesture<any, any, any>;
export {};
//# sourceMappingURL=jestUtils.d.ts.map