/**
 * @file BottomSheetPanel.tsx
 * @input Uses React, StyleX, theme tokens, useSheetGestures
 * @output Internal BottomSheetPanel surface and motion-state types
 * @position Shared presentation layer for standalone and switcher BottomSheets
 *
 * This component owns everything intrinsic to a sheet surface: height budgets,
 * drag and snap gestures, the handle and scrolling body, motion styles, and
 * transition completion. It deliberately does not own a dialog, focus, inert
 * state, or switcher registration; those belong to the hosting controller.
 *
 * SYNC: When modified, update these files to stay in sync:
 * - /packages/core/src/BottomSheet/BottomSheet.tsx
 * - /packages/core/src/BottomSheet/BottomSheetPanel.test.tsx
 * - /packages/core/src/BottomSheet/snapOffsets.ts
 * - /packages/core/src/BottomSheet/useMobileKeyboard.ts
 * - /packages/core/src/BottomSheet/useSheetGestures.ts
 */
import { type ReactNode } from 'react';
import type { BaseProps } from '../BaseProps';
import { type BottomSheetSnapPoint } from './snapOffsets';
declare const HEIGHT_BUDGETS: {
    readonly hug: "92dvh";
    readonly capped: "62dvh";
    readonly tall: "92dvh";
};
export type BottomSheetHeight = keyof typeof HEIGHT_BUDGETS;
export type { BottomSheetSnapPoint };
export type BottomSheetPanelMotion = 'entering' | 'aligning' | 'fading' | 'exiting';
export type BottomSheetPanelState = {
    kind: 'hidden';
} | {
    kind: 'open';
    entering: boolean;
} | {
    kind: 'retained';
    motion: 'covered' | 'aligning' | 'fading';
    alignmentOffset: number;
} | {
    kind: 'exiting';
};
interface BottomSheetPanelProps extends BaseProps<HTMLDivElement> {
    /** Ref forwarded to the visual sheet panel. */
    ref?: React.Ref<HTMLDivElement>;
    state: BottomSheetPanelState;
    height: BottomSheetHeight | number | string;
    children: ReactNode;
    snapPoints?: ReadonlyArray<BottomSheetSnapPoint>;
    isSwipeDismissAllowed?: boolean;
    /** Whether the host has locked page scrolling (a modal, scrim-backed sheet). */
    isPageScrollLocked?: boolean;
    onDismiss: () => void;
    onScrimOpacity: (opacity: number) => void;
    onElementChange?: (element: HTMLDivElement | null) => void;
    onMotionStart?: (motion: BottomSheetPanelMotion) => void;
    onMotionComplete?: (motion: BottomSheetPanelMotion) => void;
}
/** Internal visual and gesture surface shared by every BottomSheet host. */
export declare function BottomSheetPanel({ ref, state, height, children, snapPoints, className, style, tabIndex, xstyle, isSwipeDismissAllowed, isPageScrollLocked, onDismiss, onScrimOpacity, onElementChange, onMotionStart, onMotionComplete, ...props }: BottomSheetPanelProps): import("react").JSX.Element;
export declare namespace BottomSheetPanel {
    var displayName: string;
}
//# sourceMappingURL=BottomSheetPanel.d.ts.map