import { type ComponentPropsWithoutRef, type ReactNode } from "react";
import type { CanvasViewport, WorkflowEdge, WorkflowNode } from "../../workflow/types";
import { type FlowNodeProps } from "../FlowNode/FlowNode";
export interface FlowCanvasProps extends Omit<ComponentPropsWithoutRef<"div">, "children"> {
    nodes: WorkflowNode[];
    edges: WorkflowEdge[];
    viewport: CanvasViewport;
    connectingFrom?: FlowNodeProps["connectingFrom"];
    onViewportChange?: (viewport: Partial<CanvasViewport>) => void;
    minZoom?: number;
    maxZoom?: number;
    onNodeSelect?: (id: string) => void;
    onEdgeSelect?: (id: string) => void;
    onDeselectAll?: () => void;
    onNodePositionChange?: (id: string, position: {
        x: number;
        y: number;
    }) => void;
    onNodeDelete?: (id: string) => void;
    onNodesDelete?: (ids: string[]) => void;
    onEdgeDelete?: (id: string) => void;
    onStartConnecting?: FlowNodeProps["onStartConnecting"];
    onEndConnecting?: FlowNodeProps["onEndConnecting"];
    validateConnection?: FlowNodeProps["validateConnection"];
    selectedNodeId?: string;
    children?: ReactNode;
    emptyState?: ReactNode;
    gridSize?: number;
    showGrid?: boolean;
    isLockMode?: boolean;
    height?: number | string;
    width?: number | string;
}
/**
 * FlowCanvas - Canvas for workflow editor
 *
 * TODO: This is a stub implementation. Full feature set from octaviaflow-ui needs to be ported:
 * - Pan and zoom controls
 * - Grid background
 * - Touch gestures
 * - Keyboard shortcuts
 * - Execution console
 * - History panel
 * - Validation panel
 * - Debug panel
 * - Layout algorithms
 * - SSE streaming
 *
 * See: octaviaflow-ui/src/components/WorkFlowCanvas for full implementation
 */
export declare function FlowCanvas({ nodes, edges, viewport, connectingFrom, onViewportChange, minZoom, maxZoom, onNodeSelect, onEdgeSelect, onDeselectAll, onNodePositionChange, onNodeDelete, onNodesDelete, onEdgeDelete, onStartConnecting, onEndConnecting, validateConnection, selectedNodeId, children, emptyState, gridSize, showGrid, isLockMode, height, width, className, ...props }: FlowCanvasProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=FlowCanvas.d.ts.map