import { Position } from '../types.js'; import { ConfigurableWindow } from '../_configurable.js'; import { Accessor } from 'solid-js'; import { MaybeAccessor } from '@solidjs-use/shared'; type UseSwipeDirection = 'up' | 'down' | 'left' | 'right' | 'none'; interface UseSwipeOptions extends ConfigurableWindow { /** * Register events as passive * * @default true */ passive?: boolean; /** * @default 50 */ threshold?: number; /** * Callback on swipe start */ onSwipeStart?: (e: TouchEvent) => void; /** * Callback on swipe moves */ onSwipe?: (e: TouchEvent) => void; /** * Callback on swipe ends */ onSwipeEnd?: (e: TouchEvent, direction: UseSwipeDirection) => void; } interface UseSwipeReturn { isPassiveEventSupported: boolean; isSwiping: Accessor; direction: Accessor; coordsStart: Readonly; coordsEnd: Readonly; lengthX: Accessor; lengthY: Accessor; stop: () => void; } /** * Reactive swipe detection. * * @see https://solidjs-use.github.io/solidjs-use/core/useSwipe */ declare function useSwipe(target: MaybeAccessor, options?: UseSwipeOptions): UseSwipeReturn; export { UseSwipeDirection, UseSwipeOptions, UseSwipeReturn, useSwipe };