import React from "react"; import { Edge } from "reactflow"; import "reactflow/dist/style.css"; import "./index.css"; import { MagicFlow } from "./types/flow"; export * from "./register/node"; type MagicFlowProps = { /** 上游流程 */ flow?: MagicFlow.Flow; /** 头部右侧操作按钮组件 */ header?: { buttons?: React.ReactElement; backIcon?: React.ReactElement; }; /** 是否显示流程头部栏 */ showHeader?: boolean; /** 自定义toolbar */ nodeToolbar?: { list: Array<{ icon: () => React.ReactElement; tooltip?: string; }>; mode?: "append" | "replaceAll"; }; /** 自定义左侧物料栏头部 */ materialHeader?: React.ReactElement; /** 自定义节点配置名称 */ customParamsName?: Partial; /** 定义节点omit参数keys */ omitNodeKeys?: string[]; /** 是否开始部分渲染 */ onlyRenderVisibleElements?: boolean; /** 是否挂载时进行自动布局 */ layoutOnMount?: boolean; /** 是否允许开启debug模式 */ allowDebug?: boolean; /** 是否显示额外信息 */ showExtraFlowInfo?: boolean; /** 流程实例 */ flowInteractionRef?: React.MutableRefObject; }; export type MagicFlowInstance = { /** 获取内部流程数据源 **/ getFlow: () => MagicFlow.Flow; /** 添加节点 */ addNode: (node: MagicFlow.Node) => void; /** 设置节点 */ setNodes: (nodes: MagicFlow.Node[]) => void; /** 设置节点配置 */ setNodeConfig: (nodeConfig: Record) => void; /** 更新节点配置 */ updateNodeConfig: (nodeConfig: Record) => void; /** 删除节点 */ deleteNodes: (nodeIds: string[]) => void; /** 更新节点位置 */ updateNodesPosition: (nodeIds: string[], position: { x: number; y: number; }) => void; /** 更新节点连接 */ updateNextNodeIdsByConnect: (nodeId: string, nextNodeIds: string[]) => void; /** 更新节点连接 */ updateNextNodeIdsByDeleteEdge: (nodeId: string, nextNodeIds: string[]) => void; /** 设置选中的节点 */ setSelectedNodeId: (nodeId: string) => void; /** 获取节点配置 */ getNodeConfig: () => Record; /** 获取节点连接 */ getEdges: () => Edge[]; }; declare const MagicFlowComponent: React.ForwardRefExoticComponent>; export default MagicFlowComponent;