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<HTMLElement>, HasRootRef<HTMLElement>, 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