import React from 'react'; /** * Вектор, выраженный двумя координатами */ declare type Vector = { x: number; y: number; }; /** * Объект состояния жеста, передается единственным аргументом в колбэк */ interface GestureState { /** * Координаты пальца пользователя в момент предыдущего срабатывания функции */ previousPosition: Vector; /** * Координаты пальца пользователя в данный момент */ currentPosition: Vector; /** * Координаты начала жеста */ initialPosition: Vector; /** * Сдвиг по каждой из осей с момента начала жеста */ movement: Vector; /** * Расстояние, пройденное с момента предыдущего вызова функции */ delta: Vector; /** * Время начала жеста (timestamp) */ startTime: number; /** * Длительность жеста */ elapsedTime: number; /** * Признак начала жеста */ first: boolean; /** * Признак окончания жеста */ last: boolean; /** * Скорость движения пальца по каждой из осей */ velocity: Vector; /** * Исходный объект события */ event: React.TouchEvent; /** * Пользовательские данные */ data: T; } /** * Тип колбэка */ declare type StateChangeCallback = (arg: Readonly>) => void; /** * Предоставляет унифицированный интерфейс для работы с * простыми тачевыми событиями (где используется один палец) */ export declare const useDrag: (onStateChange: StateChangeCallback) => { dragProps: { onTouchStart: (event: React.TouchEvent) => void; onTouchMove: (event: React.TouchEvent) => void; onTouchEnd: (event: React.TouchEvent) => void; onTouchCancel: (event: React.TouchEvent) => void; }; }; export {};