export interface SwipeValues { xStart: number | undefined; yStart: number | undefined; xEnd: number | undefined; yEnd: number | undefined; xDiff: number | undefined; yDiff: number | undefined; } export type SwipeEventCallback = (event: PointerEvent) => void; export type SwipeValuesCallback = (values: SwipeValues) => void; /** * Options for handling swipe events. */ export interface SwipeOptions { /** * The element on which the swipe events will be handled. * @default null */ element?: HTMLElement | string | null; /** * Callback function to be executed when a left swipe is detected. * @default undefined */ onLeft?: SwipeEventCallback; /** * Callback function to be executed when a right swipe is detected. * @default undefined */ onRight?: SwipeEventCallback; /** * Callback function to be executed when an up swipe is detected. * @default undefined */ onUp?: SwipeEventCallback; /** * Callback function to be executed when a down swipe is detected. * @default undefined */ onDown?: SwipeEventCallback; /** * Callback function to be executed when values are changed. * @default undefined */ onValuesChanged?: SwipeValuesCallback; /** * The minimum distance the swipe needs to travel to be considered valid. * @default 50 */ threshold?: number; /** * Whether to prevent the default behavior of the pointer move event (the move listener * becomes non-passive when enabled). * @default false */ preventDefaultOnMove?: boolean; /** * Whether to prevent the default behavior of mousewheel event. * @default false */ preventDefaultOnMouseWheel?: boolean; /** * Pointer types that can trigger the swipe. * @default ['mouse', 'touch', 'pen'] */ pointerTypes?: ('mouse' | 'touch' | 'pen')[]; /** * Whether to start listening immediately on instantiation. * @default false */ immediate?: boolean; /** * Whether to trigger the swipe event on pointer up. * If set to true, the swipe event will be triggered only when the user lifts their finger/pointer. * @default false */ triggerOnEnd?: boolean; } type DefaultSwipeOptions = Required>; type SwipeOptionsWithDefaults = SwipeOptions & DefaultSwipeOptions; export declare class Swipe { readonly inputOption: SwipeOptions; element: HTMLElement | undefined; xStart: number | undefined; yStart: number | undefined; xEnd: number | undefined; yEnd: number | undefined; xDiff: number | undefined; yDiff: number | undefined; private pointerDown; private readonly onPointerDownCallback; private readonly onPointerMoveCallback; private readonly onPointerUpCallback; private readonly onMouseWheelCallback; readonly start: (element?: typeof this.options.element) => void; readonly stop: () => void; options: SwipeOptionsWithDefaults; constructor(inputOption: SwipeOptions); private startListening; private stopListening; private setElement; private isPointerAllowed; private handleMouseWheel; private handlePointerDown; private emitValuesChanged; private handlePointerMove; private handlePointerUp; private runCallbacks; private resetValues; } export {};