import { type ReactNode } from "react";
import { type UseWorkflowOptions, useWorkflow } from "../../hooks/useWorkflow";
export interface WorkflowEditorProps extends UseWorkflowOptions {
    /** Slot at the top-left — defaults to FlowToolbar with common actions. */
    toolbar?: ReactNode | "default" | null;
    /** Left-side drawer slot (e.g. an ActionsDrawer). Rendered before the canvas. */
    drawer?: ReactNode;
    /** Bottom slot (e.g. an ExecutionConsole). Rendered absolutely at the bottom. */
    console?: ReactNode;
    /** Minimap slot — rendered in the bottom-right of the canvas. */
    minimap?: ReactNode;
    /** Empty-state contents (shown when no nodes/edges). */
    emptyState?: ReactNode;
    /** Action side-panel (e.g. a config form) — rendered as overlay via `children`. */
    children?: ReactNode;
    /** Background pattern. Defaults to "dots". */
    background?: "dots" | "lines" | "cross" | "none";
    /** Snap nodes to the grid while dragging. Defaults to true. */
    snapToGrid?: boolean;
    /** Grid size in flow units. Defaults to 20. */
    gridSize?: number;
    onSave?: (workflow: ReturnType<typeof useWorkflow>["workflow"]) => void;
    onRun?: () => void;
    onStop?: () => void;
    onSettings?: () => void;
    /** Called when Reset is pressed — consumer should clear workflow state or ignore. */
    onReset?: () => void;
    onToggleDrawer?: (open: boolean) => void;
    onToggleHistory?: (open: boolean) => void;
    onToggleDebug?: (open: boolean) => void;
    onToggleLockMode?: (locked: boolean) => void;
    /** Fires when a node is selected (or null on deselection). */
    onNodeSelect?: (id: string | null) => void;
    /** Controlled lock mode. If omitted, editor owns the state. */
    isLockMode?: boolean;
    /** Controlled drawer state. If omitted, editor owns the state. */
    isDrawerOpen?: boolean;
    /** Controlled history panel state. */
    isHistoryOpen?: boolean;
    /** Controlled debug console state. */
    isDebugOpen?: boolean;
    /** Show/hide the debug button in the default toolbar. */
    isDebugModeEnabled?: boolean;
    /** Show the Run button as an active "stop" button while true. */
    isExecuting?: boolean;
    height?: number | string;
    width?: number | string;
    className?: string;
}
export declare function WorkflowEditor({ toolbar, drawer, console: consoleSlot, minimap, emptyState, children, background, snapToGrid, gridSize, onSave, onRun, onStop, onSettings, onReset, onToggleDrawer, onToggleHistory, onToggleDebug, onToggleLockMode, onNodeSelect, isLockMode: controlledLockMode, isDrawerOpen: controlledDrawerOpen, isHistoryOpen: controlledHistoryOpen, isDebugOpen: controlledDebugOpen, isDebugModeEnabled, isExecuting, height, width, className, ...options }: WorkflowEditorProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=WorkflowEditor.d.ts.map