import { MutableRefObject, RefObject } from 'react'; import { UseSwipeDetailsType, SwipeDirection } from './constants'; import { SwipeStartHandler, SwipeMoveHandler, SwipeEndHandler, SwipePreventHandler } from './swipeUtils'; type SetSwipeDetails = (details: Partial) => void; export type { SetSwipeDetails }; export interface UseSwipeUtilsInterface { quickSwipePercent: number; minSwipePercent: number; maxBorderOffsetPercent: number; containerEl: RefObject; swipeDetails: MutableRefObject; setSwipeDetails: SetSwipeDetails; onSwipePrevent?: SwipePreventHandler; onSwipeEnd?: SwipeEndHandler; onSwipeStart?: SwipeStartHandler; onSwipeMove?: SwipeMoveHandler; direction: SwipeDirection; } type SwipeMove = (event: React.MouseEvent | TouchEvent, clientX: number, clientY: number) => void; type SwipeStart = (clientX: number, clientY: number) => void; export interface UseSwipeUtilsResult { swipeMove: SwipeMove; swipeStart: SwipeStart; swipeEnd: () => void; } declare const useSwipeUtils: ({ quickSwipePercent, minSwipePercent, maxBorderOffsetPercent, containerEl, swipeDetails, setSwipeDetails, onSwipePrevent, onSwipeEnd, onSwipeStart, onSwipeMove, direction, }: UseSwipeUtilsInterface) => UseSwipeUtilsResult; export default useSwipeUtils;