import { MagicFlow } from "../../types/flow"; import React from "react"; import { Edge } from "reactflow"; import { EventEmitter } from "ahooks/lib/useEventEmitter"; import { BatchProcessingOptions } from "../../hooks/useNodeBatchProcessing"; export type FlowDataCtx = { flow: MagicFlow.Flow | null; description: string; debuggerMode: boolean; updateFlow: (this: any, flowConfig: any) => void; }; export type FlowEdgesStateType = { edges: Edge[]; selectedEdgeId: string | null; }; export type FlowEdgesActionsType = { onEdgesChange: (this: any, changes: any) => void; onConnect: (this: any, connection: any) => void; setEdges: React.Dispatch>; setSelectedEdgeId: React.Dispatch>; updateNextNodeIdsByDeleteEdge: (connection: Edge) => void; updateNextNodeIdsByConnect: (newEdge: Edge) => void; deleteEdges: (edgesToDelete: Edge[]) => void; }; export type FlowEdgesCtx = FlowEdgesStateType & FlowEdgesActionsType; export declare const FlowEdgesStateContext: React.Context; export declare const FlowEdgesActionsContext: React.Context; export type NodeConfigCtx = { nodeConfig: Record; }; export declare const NodeConfigContext: React.Context; export type NodeConfigActionsCtx = { setNodeConfig: React.Dispatch>>; updateNodeConfig: (node: MagicFlow.Node, originalNode?: MagicFlow.Node) => void; notifyNodeChange: (nodeId?: string) => void; }; export declare const NodeConfigActionsContext: React.Context; export type FlowNodesStateType = { selectedNodeId: string; triggerNode: any | null; }; export type FlowNodesActionsType = { addNode: (node: MagicFlow.Node | MagicFlow.Node[], meta?: any) => void; deleteNodes: (nodeIds: string[]) => void; updateNodesPosition: (nodeId: string[], position: Record) => void; setSelectedNodeId: (id: string) => void; getNewNodeIndex: () => number; processNodesBatch: (allNodes: any[], processCallback: (nodes: any[]) => void, customOptions?: Partial) => () => void; }; export type FlowNodesCtx = FlowNodesStateType & FlowNodesActionsType; export declare const FlowNodesStateContext: React.Context; export declare const FlowNodesActionsContext: React.Context; export declare const FlowNodesContext: React.Context; export type FlowUICtx = { flowInstance: React.MutableRefObject; showMaterialPanel: boolean; setShowMaterialPanel: React.Dispatch>; flowDesignListener: EventEmitter; }; export type FlowCtx = React.PropsWithChildren; export declare const FlowDataContext: React.Context; export declare const FlowEdgesContext: React.Context; export declare const FlowUIContext: React.Context; export declare const FlowContext: React.Context;