import { AllHTMLAttributes, DragEvent, ElementType, MouseEvent as ReactMouseEvent } from 'react';
import { CustomTouchEvent, Gesture } from './helpers/types';
export interface TouchProps extends AllHTMLAttributes {
usePointerHover?: boolean;
useCapture?: boolean;
slideThreshold?: number;
noSlideClick?: boolean;
onEnter?: HoverHandler;
onLeave?: HoverHandler;
onStart?: TouchEventHandler;
onStartX?: TouchEventHandler;
onStartY?: TouchEventHandler;
onMove?: TouchEventHandler;
onMoveX?: TouchEventHandler;
onMoveY?: TouchEventHandler;
onEnd?: TouchEventHandler;
onEndX?: TouchEventHandler;
onEndY?: TouchEventHandler;
stopPropagation?: boolean;
Component?: ElementType;
}
export interface TouchEvent extends Gesture {
originalEvent: CustomTouchEvent;
}
type HoverHandler = (outputEvent: MouseEvent) => void;
export type TouchEventHandler = (e: TouchEvent) => void;
export type ClickHandler = (e: ReactMouseEvent) => void;
export type DragHandler = (e: DragEvent) => void;
/**
* This component is copied from the VKUI library for convenient handling of pointer events
* https://github.com/VKCOM/VKUI/blob/master/packages/vkui/src/components/Touch/Touch.tsx#L65
*/
export declare const Touch: ({ Component, onStart, onStartX, onStartY, onMove: _onMove, onMoveX, onMoveY, onLeave, onEnter, onEnd: _onEnd, onEndX, onEndY, onClickCapture, usePointerHover, slideThreshold, useCapture, noSlideClick, stopPropagation, ...restProps }: TouchProps) => JSX.Element;
export {};
//# sourceMappingURL=Touch.d.ts.map