
import { BottomSheetHeight } from "../../../types/dist/index.js";
import "../../../tokens/index.js";
import { MutableRefObject } from "react";

//#region src/components/client/BottomSheet/useBottomSheetSnapModel.d.ts
interface UseBottomSheetSnapModelParams {
  isOpen: boolean;
  snapPointsProp?: BottomSheetHeight[];
  height?: BottomSheetHeight;
  defaultSnapPointIndex: number;
  snapPointIndexProp?: number;
  onSnapPointChange?: (index: number, height: BottomSheetHeight) => void;
  viewportHeightPx: number;
  maxHeightPx: number;
  setTranslateAnimated: (nextTranslatePx: number) => void;
  isDraggingRef: MutableRefObject<boolean>;
}
interface UseBottomSheetSnapModelResult {
  resolvedSnapPoints: BottomSheetHeight[];
  snapPointsPx: number[];
  maxSnapPointPx: number;
  snapPointTranslatesPx: number[];
  activeSnapIndex: number;
  restTranslatePx: number;
  setRestTranslatePx: React.Dispatch<React.SetStateAction<number>>;
  isSnapPointControlled: boolean;
  emitSnapPointChange: (nextIndex: number) => void;
  openTimeRef: MutableRefObject<number | null>;
  lastTimeDragPreventedRef: MutableRefObject<number | null>;
  isEnteringRef: MutableRefObject<boolean>;
}
declare function useBottomSheetSnapModel({
  isOpen,
  snapPointsProp,
  height,
  defaultSnapPointIndex,
  snapPointIndexProp,
  onSnapPointChange,
  viewportHeightPx,
  maxHeightPx,
  setTranslateAnimated,
  isDraggingRef
}: UseBottomSheetSnapModelParams): UseBottomSheetSnapModelResult;
//#endregion
export { useBottomSheetSnapModel };