
"use client";
import { UniversalBottomSheetProps } from "../../../types/dist/index.js";
import { BottomSheetController } from "./useBottomSheetStore.js";
import React from "react";
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
import { DialogProps } from "@ariakit/react";

//#region src/components/client/BottomSheet/BottomSheet.d.ts
type BottomSheetA11yProps = Pick<DialogProps, 'aria-label' | 'aria-labelledby' | 'aria-describedby'>;
interface BottomSheetProps extends UniversalBottomSheetProps, Pick<DialogProps, 'unmountOnHide' | 'onClose' | 'preventBodyScroll' | 'modal'>, BottomSheetA11yProps {
  /**
   * Reduce motion and transition effects.
   * @default false
   */
  reduceMotion?: boolean;
  /**
   * Controller returned from `useBottomSheetStore()`.
   * @remarks If omitted, uses the nearest `BottomSheetProvider` context.
   */
  controller?: BottomSheetController;
  /**
   * Determines whether the element should be rendered as a React Portal.
   * @default true
   */
  portal?: boolean;
  /**
   * An HTML element that returns an HTML element to be used as the portal element.
   * By default, the portal element will be a div element appended to the document.body.
   * @example
   * ```jsx
   * const [portal, setPortal] = useState(null);
   * <BottomSheet portalElement={portalElement} />
   * <div ref={setPortalElement} />
   * ```
   */
  portalElement?: HTMLElement;
  /**
   * Determines if the dialog will hide when the user presses the Escape key.
   *
   * This prop can be either a boolean or a function that accepts an event as an argument and returns a boolean. The event object represents the keydown event that initiated the hide action, which could be either a native keyboard event or a React synthetic event.
   * @default true
   */
  hideOnEscape?: boolean;
  /** Optional override for the default backdrop element passed to Ariakit Dialog. */
  backdrop?: React.ReactElement;
  /** Optional class hooks for internal elements. */
  slotProps?: {
    /** Optional className for the scrim element. */scrim?: {
      className?: string;
    }; /** Optional className for the handle indicator element. */
    handleIndicator?: {
      className?: string;
    };
  };
}
declare function BottomSheet({
  children,
  className: sheetClassName,
  controller: controllerProp,
  variant,
  snapPoints: snapPointsProp,
  defaultSnapPointIndex,
  snapPointIndex: snapPointIndexProp,
  onSnapPointChange,
  height,
  modal,
  portal,
  portalElement,
  dismissible,
  enableDrag,
  showHandleIndicator,
  hideOnEscape,
  onClose,
  reduceMotion: forceReduceMotion,
  'aria-label': ariaLabel,
  'aria-labelledby': ariaLabelledBy,
  'aria-describedby': ariaDescribedBy,
  backdrop,
  preventBodyScroll,
  slotProps,
  fullWidthAtMaxSnap
}: BottomSheetProps): _$react_jsx_runtime0.JSX.Element;
declare namespace BottomSheet {
  var displayName: string;
}
//#endregion
export { BottomSheet, type BottomSheetProps };