import * as React from 'react'; import { type VKUITouchEvent } from '../../lib/touch'; import type { HasComponent, HasRootRef } from '../../types'; export interface CustomTouchEvent extends Gesture { /** * Оригинальное событие. */ originalEvent: VKUITouchEvent; } export type HoverHandler = (outputEvent: MouseEvent) => void; export type CustomTouchEventHandler = (event: CustomTouchEvent) => void; export interface TouchProps extends React.AllHTMLAttributes, HasRootRef, HasComponent { /** * Использовать pointer-events для hover-состояний. * Работает на отключенных элементах (disabled inputs). */ usePointerHover?: boolean; /** * Использовать фазу capture для событий. */ useCapture?: boolean; /** * Порог расстояния в пикселях для активации свайпа. * @default 5 */ slideThreshold?: number; /** * Блокировать click-события после распознавания свайпа. */ noSlideClick?: boolean; /** * Останавливать всплытие событий. */ stopPropagation?: boolean; /** * Обработчик входа курсора в область. */ onEnter?: HoverHandler; /** * Обработчик выхода курсора из области. */ onLeave?: HoverHandler; /** * Общий обработчик начала взаимодействия. */ onStart?: CustomTouchEventHandler; /** * Обработчик начала горизонтального перемещения. */ onStartX?: CustomTouchEventHandler; /** * Обработчик начала вертикального перемещения. */ onStartY?: CustomTouchEventHandler; /** * Общий обработчик перемещения. */ onMove?: CustomTouchEventHandler; /** * Обработчик горизонтального перемещения. */ onMoveX?: CustomTouchEventHandler; /** * Обработчик вертикального перемещения. */ onMoveY?: CustomTouchEventHandler; /** * Общий обработчик завершения взаимодействия. */ onEnd?: CustomTouchEventHandler; /** * Обработчик завершения горизонтального свайпа. */ onEndX?: CustomTouchEventHandler; /** * Обработчик завершения вертикального свайпа. */ onEndY?: CustomTouchEventHandler; } export interface Gesture { /** * Начальная X-координата касания. */ startX: number; /** * Начальная Y-координата касания. */ startY: number; /** * Время начала взаимодействия. */ startT: Date; /** * Длительность взаимодействия в миллисекундах. */ duration: number; /** * Флаг активного нажатия. */ isPressed: boolean; /** * Флаг вертикального перемещения. */ isY: boolean; /** * Флаг горизонтального перемещения. */ isX: boolean; /** * Флаг горизонтального свайпа. */ isSlideX: boolean; /** * Флаг вертикального свайпа. */ isSlideY: boolean; /** * Общий флаг свайпа (вертикального или горизонтального). */ isSlide: boolean; /** * Текущая X-координата курсора/касания. */ clientX: number; /** * Текущая Y-координата курсора/касания. */ clientY: number; /** * Смещение по X относительно начальной точки. */ shiftX: number; /** * Смещение по Y относительно начальной точки. */ shiftY: number; /** * Абсолютное смещение по X. */ shiftXAbs: number; /** * Абсолютное смещение по Y. */ shiftYAbs: number; } /** * @see https://vkui.io/components/touch */ export declare const Touch: ({ onStart, onStartX, onStartY, onMove, onMoveX, onMoveY, onEnter, onLeave, onEnd, onEndX, onEndY, onClickCapture, usePointerHover, slideThreshold, useCapture, Component, getRootRef, noSlideClick, stopPropagation, ...restProps }: TouchProps) => import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=Touch.d.ts.map