import type { ReactNode } from "react";
import type { LayoutEngine } from "./layout/index.js";
/** Props for {@link WorkflowCanvasEditor}. */
export interface WorkflowCanvasEditorProps {
    /** The workflow YAML string to render on the canvas. */
    readonly yaml: string | null;
    /** Called when a task node is selected. */
    readonly onNodeSelect?: (nodeId: string) => void;
    /** Called when an edge is selected. */
    readonly onEdgeSelect?: (edgeId: string) => void;
    /** Called when selection is cleared. */
    readonly onSelectionClear?: () => void;
    /** Whether to show the task palette sidebar. Defaults to true. */
    readonly showPalette?: boolean;
    /** Whether to show the inspector panel. Defaults to true. */
    readonly showInspector?: boolean;
    /** Called when the save button is clicked. Receives the serialized YAML. */
    readonly onSave?: (yaml: string) => void;
    /** Whether a save is currently in progress. */
    readonly isSaving?: boolean;
    /** Called when the canvas dirty state changes. */
    readonly onDirtyChange?: (dirty: boolean) => void;
    /** Map of nodeId -> error messages for validation badge rendering. */
    readonly nodeErrors?: ReadonlyMap<string, readonly string[]>;
    /** Additional CSS class names for the root container. */
    readonly className?: string;
    /** Fallback to show while the canvas loads (DD-013 lazy loading). */
    readonly loadingFallback?: ReactNode;
    /**
     * Layout engine for the "Auto Layout" action.
     * Pass the result of {@link useElkLayoutEngine} for ELK-powered layout.
     * When omitted, dagre is used as the default.
     */
    readonly layoutEngine?: LayoutEngine | null;
}
/**
 * Outer wrapper that provides the React Flow zustand store context.
 *
 * `useWorkflowCanvas` (called inside the inner component) uses `useReactFlow()`
 * which requires a `<ReactFlowProvider>` ancestor. The `<ReactFlow>` component
 * inside `WorkflowCanvasInner` creates its own store but that is too late — the
 * hook runs before the child mounts. This wrapper solves the provider ordering.
 */
export declare const WorkflowCanvasEditor: import("react").NamedExoticComponent<WorkflowCanvasEditorProps>;
//# sourceMappingURL=WorkflowCanvasEditor.d.ts.map