/** Describes what was right-clicked on the canvas. */
export type CanvasContextMenuTarget = {
    readonly type: "node";
    readonly id: string;
    readonly taskName: string;
} | {
    readonly type: "edge";
    readonly id: string;
} | {
    readonly type: "pane";
} | {
    readonly type: "selection";
    readonly count: number;
};
/** Props for {@link CanvasContextMenu}. */
export interface CanvasContextMenuProps {
    /** Whether the context menu is open. */
    readonly open: boolean;
    /** Called when the menu open state changes (e.g. clicking outside, pressing Escape). */
    readonly onOpenChange: (open: boolean) => void;
    /** What was right-clicked — determines which menu items are shown. */
    readonly target: CanvasContextMenuTarget | null;
    /** Screen-coordinate position where the menu should appear. */
    readonly position: {
        readonly x: number;
        readonly y: number;
    } | null;
    /** Called to delete a node. */
    readonly onDeleteNode?: (nodeId: string) => void;
    /** Called to duplicate a node. */
    readonly onDuplicateNode?: (nodeId: string) => void;
    /** Called to trigger the "add task after" flow (opens TaskPicker). */
    readonly onAddTaskAfter?: (nodeId: string) => void;
    /** Called to toggle disabled state on a node. */
    readonly onToggleDisabled?: (nodeId: string) => void;
    /** Called to wrap a node in try/catch. */
    readonly onWrapInTryCatch?: (nodeId: string) => void;
    /** Called to copy a single node to clipboard. */
    readonly onCopyNode?: (nodeId: string) => void;
    /** Called to rename a node (triggers inline rename in inspector). */
    readonly onRenameNode?: (nodeId: string) => void;
    /** Called to view a node's YAML representation. */
    readonly onViewYaml?: (nodeId: string) => void;
    /** Called to delete an edge. */
    readonly onDeleteEdge?: (edgeId: string) => void;
    /** Called to trigger the "insert task on edge" flow (opens TaskPicker). */
    readonly onInsertTaskOnEdge?: (edgeId: string) => void;
    /** Called to trigger the "add task at position" flow (opens TaskPicker). */
    readonly onAddTaskAtPosition?: () => void;
    /** Called to select all non-sentinel nodes. */
    readonly onSelectAll?: () => void;
    /** Called to trigger auto-layout. */
    readonly onAutoLayout?: () => void;
    /** Called to paste from clipboard at current position. */
    readonly onPaste?: () => void;
    /** Whether the internal clipboard has content available to paste. */
    readonly hasClipboard?: boolean;
    /** Called to zoom/fit the canvas. */
    readonly onFitView?: () => void;
    /** Called to copy the current selection (multi-select). */
    readonly onCopySelection?: () => void;
    /** Called to duplicate the current selection (multi-select). */
    readonly onDuplicateSelection?: () => void;
    /** Called to disable/enable the current selection (multi-select). */
    readonly onDisableSelection?: () => void;
    /** Called to delete the current selection (multi-select). */
    readonly onDeleteSelection?: () => void;
    /** Additional CSS class names for the popup. */
    readonly className?: string;
}
/**
 * Right-click context menu for the workflow canvas editor.
 *
 * Renders different menu items depending on the {@link CanvasContextMenuTarget}:
 * - **Node**: Delete Task, Duplicate Task, Add Task After
 * - **Edge**: Delete Connection, Insert Task
 * - **Pane**: Add Task, Select All, Auto-layout
 *
 * Uses `@base-ui/react/menu` in controlled mode with a virtual anchor
 * positioned at the right-click coordinates. Portaled via
 * `useStigmerPortalContainer()` to inherit `--stgm-*` tokens.
 *
 * @since T05 (Context Menu + Duplicate)
 */
export declare const CanvasContextMenu: import("react").NamedExoticComponent<CanvasContextMenuProps>;
//# sourceMappingURL=CanvasContextMenu.d.ts.map