import { Node, XYPosition } from 'reactflow'; import { FlattenNodes, MetaData, NodeState } from '../../types'; interface AddNodeDispatch { type: 'addNode'; node: Node; } interface BatchAddNodesDispatch { type: 'addNodes'; nodes: Record; } interface DeleteNodeDispatch { type: 'deleteNode'; id: string; } interface UpdateNodePositionDispatch { type: 'updateNodePosition'; id: string; position?: XYPosition; } interface UpdateNodeMetaDispatch { type: 'updateNodeMeta'; id: string; key: keyof MetaData; value: MetaData[keyof MetaData]; } interface UpdateNodeStateDispatch { type: 'updateNodeState'; id: string; key: keyof NodeState; value: any; } interface UpdateNodeContentDispatch { type: 'updateNodeContent'; id: string; key: string; value: any; } interface UpdateNodeDataDispatch { type: 'updateNodeData'; id: string; newData: any; deepReplace?: boolean; } export type NodeDispatch = AddNodeDispatch | BatchAddNodesDispatch | DeleteNodeDispatch | UpdateNodePositionDispatch | UpdateNodeMetaDispatch | UpdateNodeStateDispatch | UpdateNodeContentDispatch | UpdateNodeDataDispatch; export declare const nodeReducer: (state: FlattenNodes, action: NodeDispatch) => FlattenNodes; export {};