import type { ReactNode } from "react";
import type { InsertOption } from "../../types";
/**
 * The component insert/append menu. Unlike a context menu it is anchored to the
 * placeholder "+" button it belongs to (via {@link PopoverTrigger}) rather than
 * popping up at the mouse position. It opens to the right by default, flips/
 * shifts to stay on-screen (Radix collision handling), and animates in with a
 * slide + zoom from the anchor.
 *
 * The trigger is the caller's "+" button: pass it as {@link children}. The
 * caller keeps full ownership of the button's click handling - opening is driven
 * by the controlled `open`/`onOpenChange` pair, so modifier-click / quick-insert
 * shortcuts can short-circuit (preventDefault) without ever opening the menu.
 */
export declare function InsertComponentMenu({ open, onOpenChange, title, contextLabel, options, onSelect, side, align, sideOffset, children, }: {
    open: boolean;
    onOpenChange: (open: boolean) => void;
    title: string;
    contextLabel?: string;
    options: InsertOption[];
    onSelect: (option: InsertOption) => void;
    side?: "top" | "right" | "bottom" | "left";
    align?: "start" | "center" | "end";
    sideOffset?: number;
    children: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
