import type { Connection, Edge, EdgeTypes, Node, NodeTypes } from '../../xyflow/react.ts';
import { useEdgesState, useNodesState } from '../../xyflow/react.ts';
import { useNodeTypeRegistry } from '../../core';
export interface UseCanvasStoryOptions {
    initialNodes: Node[];
    initialEdges?: Edge[];
    nodeComponent?: NodeTypes[string];
    additionalNodeTypes?: NodeTypes;
}
export interface UseCanvasStoryReturn {
    nodes: Node[];
    setNodes: React.Dispatch<React.SetStateAction<Node[]>>;
    onNodesChange: ReturnType<typeof useNodesState>[2];
    edges: Edge[];
    edgeTypes: EdgeTypes;
    setEdges: React.Dispatch<React.SetStateAction<Edge[]>>;
    onEdgesChange: ReturnType<typeof useEdgesState>[2];
    onConnect: (connection: Connection) => void;
    nodeTypeRegistry: ReturnType<typeof useNodeTypeRegistry>;
    nodeTypes: NodeTypes;
    canvasProps: {
        nodes: Node[];
        edges: Edge[];
        onNodesChange: ReturnType<typeof useNodesState>[2];
        onEdgesChange: ReturnType<typeof useEdgesState>[2];
        onConnect: (connection: Connection) => void;
        nodeTypes: NodeTypes;
        edgeTypes: EdgeTypes;
    };
}
export declare function useCanvasStory(options: UseCanvasStoryOptions): UseCanvasStoryReturn;
export declare function useNodeTypesFromRegistry(nodeComponent?: NodeTypes[string]): NodeTypes;
//# sourceMappingURL=useCanvasStory.d.ts.map