import type { JSX } from "@solidjs/web"; export type SwipeDirection = "up" | "down" | "left" | "right"; interface SwipeProgressDetailsInternal { deltaX: number; deltaY: number; direction: SwipeDirection | undefined; } /** * Returns the signed displacement of `deltaX` / `deltaY` along the given * direction. A positive return value means motion toward the dismiss edge. */ export declare function getDisplacement(direction: SwipeDirection, deltaX: number, deltaY: number): number; /** * Parses `transform` off the computed style, returning translation + * uniform-scale components. Mirrors React's implementation. */ export declare function getElementTransform(element: HTMLElement): { x: number; y: number; scale: number; }; export interface UseSwipeDismissDetails { nativeEvent: PointerEvent | TouchEvent; direction: SwipeDirection | undefined; } export type UseSwipeDismissProgressDetails = SwipeProgressDetailsInternal; export interface UseSwipeDismissOptions { /** Reactive on/off flag. */ enabled: () => boolean; /** Allowed dismissal directions. A single-entry array is the common case. */ directions: SwipeDirection[]; /** Accessor returning the tracked element. */ elementRef: () => HTMLElement | null; /** CSS custom-property names used for the drag-movement style output. */ movementCssVars: { x: string; y: string; }; swipeThreshold?: number | ((details: { element: HTMLElement; direction: SwipeDirection; }) => number) | undefined; canStart?: ((position: { x: number; y: number; }, details: UseSwipeDismissDetails) => boolean) | undefined; ignoreScrollableAncestors?: boolean | undefined; ignoreSelectorWhenTouch?: boolean | undefined; trackDrag?: boolean | undefined; onSwipeStart?: ((event: PointerEvent | TouchEvent) => void) | undefined; onProgress?: ((progress: number, details?: UseSwipeDismissProgressDetails) => void) | undefined; onCancel?: ((event: PointerEvent | TouchEvent) => void) | undefined; onSwipingChange?: ((swiping: boolean) => void) | undefined; onRelease?: ((details: { event: PointerEvent | TouchEvent; direction: SwipeDirection | undefined; deltaX: number; deltaY: number; velocityX: number; velocityY: number; releaseVelocityX: number; releaseVelocityY: number; }) => boolean | undefined) | undefined; onDismiss?: ((event: PointerEvent | TouchEvent, details: { direction: SwipeDirection; }) => void) | undefined; } export interface UseSwipeDismissReturnValue { swiping: () => boolean; swipeDirection: () => SwipeDirection | undefined; dragDismissed: () => boolean; getPointerProps: () => { onPointerDown?: ((event: PointerEvent) => void) | undefined; onPointerMove?: ((event: PointerEvent) => void) | undefined; onPointerUp?: ((event: PointerEvent) => void) | undefined; onPointerCancel?: ((event: PointerEvent) => void) | undefined; }; getTouchProps: () => { onTouchStart?: ((event: TouchEvent) => void) | undefined; onTouchMove?: ((event: TouchEvent) => void) | undefined; onTouchEnd?: ((event: TouchEvent) => void) | undefined; onTouchCancel?: ((event: TouchEvent) => void) | undefined; }; getDragStyles: () => JSX.CSSProperties; reset: () => void; } export declare function useSwipeDismiss(options: UseSwipeDismissOptions): UseSwipeDismissReturnValue; export {}; //# sourceMappingURL=use-swipe-dismiss.d.ts.map