export default class TinyGesture { element: Element; opts: Options; touch1: Touch | null; touch2: Touch | null; touchStartX: number | null; touchStartY: number | null; touchEndX: number | null; touchEndY: number | null; touchMove1: Touch | null; touchMove2: Touch | null; touchMoveX: number | null; touchMoveY: number | null; velocityX: number | null; velocityY: number | null; longPressTimer: number | null; doubleTapTimer: number | null; doubleTapWaiting: boolean; thresholdX: number; thresholdY: number; disregardVelocityThresholdX: number; disregardVelocityThresholdY: number; swipingHorizontal: boolean; swipingVertical: boolean; swipingDirection: SwipingDirection | null; swipedHorizontal: boolean; swipedVertical: boolean; originalDistance: number | null; newDistance: number | null; scale: number | null; originalAngle: number | null; newAngle: number | null; rotation: number | null; handlers: Handlers; private _onTouchStart; private _onTouchMove; private _onTouchEnd; constructor(element: Element, options?: Partial>); destroy(): void; on(type: E, fn: Handler): { type: E; fn: Handler; cancel: () => void; } | undefined; off(type: E, fn: Handler): void; fire(type: E, event: Events[E]): void; onTouchStart(event: MouseEvent | TouchEvent): void; onTouchMove(event: MouseEvent | TouchEvent): void; onTouchEnd(event: MouseEvent | TouchEvent): void; static defaults: Options; } export interface Options { diagonalLimit: number; diagonalSwipes: boolean; doubleTapTime: number; disregardVelocityThreshold(type: 'x' | 'y', self: TinyGesture): number; longPressTime: number; mouseSupport: boolean; pressThreshold: number; threshold(type: 'x' | 'y', self: TinyGesture): number; velocityThreshold: number; } export interface Events { doubletap: MouseEvent | TouchEvent; longpress: MouseEvent | TouchEvent; panend: MouseEvent | TouchEvent; panmove: MouseEvent | TouchEvent; panstart: MouseEvent | TouchEvent; swipedown: MouseEvent | TouchEvent; swipeleft: MouseEvent | TouchEvent; swiperight: MouseEvent | TouchEvent; swipeup: MouseEvent | TouchEvent; tap: MouseEvent | TouchEvent; pinch: TouchEvent; pinchend: TouchEvent; rotate: TouchEvent; rotateend: TouchEvent; } export type Handler = (event: E) => void; export type Handlers = { [E in keyof Events]: Handler[]; }; export type SwipingDirection = 'horizontal' | 'pre-horizontal' | 'vertical' | 'pre-vertical';