@difizen/ai-flow
Version:
Scalable, out-of-the-box, agent-oriented flow
58 lines (57 loc) • 2.16 kB
TypeScript
import { ControlMode, type NodePanelType } from "../interfaces/flow";
import type { Connection, Edge, Node, OnEdgesChange, OnNodesChange, ReactFlowInstance, Viewport } from '@xyflow/react';
export interface FlowStoreType {
nodes: Node[];
edges: Edge[];
initFlow: (graph: {
nodes: Node[];
edges: Edge[];
}) => {
nodes: Node[];
edges: Edge[];
};
onEdgesChange: OnEdgesChange;
onNodesChange: OnNodesChange;
reactFlowInstance: ReactFlowInstance | null;
setReactFlowInstance: (newState: ReactFlowInstance) => void;
setNodes: (update: Node[] | ((oldState: Node[]) => Node[]), skipSave?: boolean) => void;
setEdges: (update: Edge[] | ((oldState: Edge[]) => Edge[]), skipSave?: boolean) => void;
setNode: (id: string, update: Node | ((oldState: Node) => Node)) => void;
getNode: (id: string) => Node | undefined;
setEdge: (id: string, update: Edge | ((oldState: Edge) => Edge)) => void;
deleteNode: (nodeId: string | Array<string>) => void;
deleteEdge: (edgeId: string | Array<string>) => void;
onConnect: (connection: Connection) => void;
getFlow: () => {
nodes: Node[];
edges: Edge[];
viewport: Viewport;
};
paste: (selection: {
nodes: Node[];
edges: Edge[];
}, position: {
x: number;
y: number;
paneX?: number;
paneY?: number;
}) => void;
findUpstreamNodes: (id: string) => Node[];
lastCopiedSelection: {
nodes: any;
edges: any;
} | null;
setLastCopiedSelection: (newSelection: {
nodes: any;
edges: any;
} | null, isCrop?: boolean) => void;
setNodeFolded: (id: string, folded: boolean) => void;
nodeLinkMap: Record<string, Node[]>;
calculateNodeLinkMap: () => void;
nodePanel: NodePanelType;
setNodePanel: (panel: NodePanelType) => void;
controlMode: ControlMode;
setControlMode: (mode: ControlMode) => void;
handleNodeEdited: (nodeId: string, cancelEdited?: boolean) => void;
}
export declare const useFlowStore: import("zustand").UseBoundStore<import("zustand").StoreApi<FlowStoreType>>;