import React, { Component, TouchEventHandler } from 'react'; export declare type GestureHandler = (s: IGestureStatus) => void; export declare type Finger = { x: number; y: number; }; export declare type MultiFingerStatus = { x: number; y: number; z: number; angle: number; }; export declare type SingeFingerMoveStatus = { x: number; y: number; z: number; time: number; velocity: number; angle: number; }; export interface IGesture { enableRotate?: boolean; enablePinch?: boolean; direction?: 'all' | 'vertical' | 'horizontal'; onPinch?: GestureHandler; onPinchStart?: GestureHandler; onPinchMove?: GestureHandler; onPinchEnd?: GestureHandler; onPinchCancel?: GestureHandler; onPinchIn?: GestureHandler; onPinchOut?: GestureHandler; onRotate?: GestureHandler; onRotateStart?: GestureHandler; onRotateMove?: GestureHandler; onRotateEnd?: GestureHandler; onRotateCancel?: GestureHandler; onPan?: GestureHandler; onPanStart?: GestureHandler; onPanMove?: GestureHandler; onPanEnd?: GestureHandler; onPanCancel?: GestureHandler; onPanLeft?: GestureHandler; onPanRight?: GestureHandler; onPanUp?: GestureHandler; onPanDown?: GestureHandler; onTap?: GestureHandler; onPress?: GestureHandler; onPressUp?: GestureHandler; onSwipe?: GestureHandler; onSwipeLeft?: GestureHandler; onSwipeRight?: GestureHandler; onSwipeUp?: GestureHandler; onSwipeDown?: GestureHandler; onTouchStart?: TouchEventHandler; onTouchMove?: TouchEventHandler; onTouchEnd?: TouchEventHandler; onTouchCancel?: TouchEventHandler; } export interface IGestureStatus { startTime: number; startTouches: Finger[]; startMutliFingerStatus?: MultiFingerStatus[]; time: number; touches: Finger[]; preTouches: Finger[]; mutliFingerStatus?: MultiFingerStatus[]; moveStatus?: SingeFingerMoveStatus; press?: boolean; pan?: boolean; availablePan?: boolean; swipe?: boolean; direction?: number; pinch?: boolean; scale?: number; rotate?: boolean; rotation?: number; srcEvent: any; } export default class Gesture extends Component { static defaultProps: { enableRotate: boolean; enablePinch: boolean; direction: string; }; state: {}; protected gesture: IGestureStatus; protected event: any; private pressTimer; private directionSetting; constructor(props: any); triggerEvent: (name: any, ...args: any[]) => void; triggerCombineEvent: (mainEventName: any, eventStatus: any, ...args: any[]) => void; triggerSubEvent: (mainEventName: any, eventStatus: any, ...args: any[]) => void; triggerPinchEvent: (mainEventName: any, eventStatus: any, ...args: any[]) => void; initPressTimer: () => void; cleanPressTimer: () => void; setGestureState: (params: any) => void; getGestureState: () => { startTime: number; startTouches: Finger[]; startMutliFingerStatus?: MultiFingerStatus[] | undefined; time: number; touches: Finger[]; preTouches: Finger[]; mutliFingerStatus?: MultiFingerStatus[] | undefined; moveStatus?: SingeFingerMoveStatus | undefined; press?: boolean | undefined; pan?: boolean | undefined; availablePan?: boolean | undefined; swipe?: boolean | undefined; direction?: number | undefined; pinch?: boolean | undefined; scale?: number | undefined; rotate?: boolean | undefined; rotation?: number | undefined; srcEvent: any; }; cleanGestureState: () => void; getTouches: (e: any) => any; triggerUserCb: (status: any, e: any) => void; _handleTouchStart: (e: any) => void; initGestureStatus: (e: any) => void; checkIfMultiTouchStart: () => void; _handleTouchMove: (e: any) => void; checkIfMultiTouchMove: () => void; allowGesture: () => boolean; checkIfSingleTouchMove: () => void; checkIfMultiTouchEnd: (status: any) => void; updateGestureStatus: (e: any) => void; _handleTouchEnd: (e: any) => void; _handleTouchCancel: (e: any) => void; triggerAllowEvent: (type: any, status: any) => void; doSingleTouchEnd: (status: any) => void; componentWillUnmount(): void; getTouchAction: () => "auto" | "pan-x pan-y" | "pan-x" | "pan-y"; render(): React.ReactElement; }