
import React, { MutableRefObject } from "react";
import { DialogStore } from "@ariakit/react";

//#region src/components/client/BottomSheet/useBottomSheetDrag.d.ts
interface UseBottomSheetDragParams {
  enableDrag: boolean;
  dismissible: boolean;
  store: DialogStore;
  sheetRef: MutableRefObject<HTMLDivElement | null>;
  isDraggingRef: MutableRefObject<boolean>;
  activeSnapIndex: number;
  snapPointTranslatesPx: number[];
  maxSnapPointPx: number;
  resolvedSnapPointsLength: number;
  resolvedDismissThresholdPx: number;
  emitSnapPointChange: (nextIndex: number) => void;
  setTranslateImmediate: (nextTranslatePx: number) => void;
  openTimeRef: MutableRefObject<number | null>;
  lastTimeDragPreventedRef: MutableRefObject<number | null>;
}
declare function useBottomSheetDrag({
  enableDrag,
  dismissible,
  store,
  sheetRef,
  isDraggingRef,
  activeSnapIndex,
  snapPointTranslatesPx,
  maxSnapPointPx,
  resolvedSnapPointsLength,
  resolvedDismissThresholdPx,
  emitSnapPointChange,
  setTranslateImmediate,
  openTimeRef,
  lastTimeDragPreventedRef
}: UseBottomSheetDragParams): {
  onPointerDown: (event: React.PointerEvent<HTMLDivElement>) => void;
  onPointerMove: (event: React.PointerEvent<HTMLDivElement>) => void;
  onPointerUp: (event: React.PointerEvent<HTMLDivElement>) => void;
  onPointerCancel: (event: React.PointerEvent<HTMLDivElement>) => void;
};
//#endregion
export { useBottomSheetDrag };