import { type ReactNode } from "react"; import type { Connection, Edge, Graph, NodeDefinition, NodeInstance, SelectionState } from "../../core/graph/types"; import type { ReconnectEdgeOptions } from "../../core/graph/utilities"; import type { NodeRegistry } from "../../core/registry/nodeRegistry"; export type CollectionUpdater = T[] | ((current: T[]) => T[]); export type GraphUpdater = Graph | ((current: Graph) => Graph); export interface DeleteElementsOptions { nodeIds?: string[]; edgeIds?: string[]; } export interface DeleteElementsResult { deletedNodes: NodeInstance[]; deletedEdges: Edge[]; } export interface AINodeEditorApi { graph: Graph; nodes: NodeInstance[]; edges: Edge[]; selection: SelectionState; definitions: NodeDefinition[]; registry: NodeRegistry; getGraph: () => Graph; setGraph: (updater: GraphUpdater) => void; getNodes: () => NodeInstance[]; setNodes: (updater: CollectionUpdater) => void; addNodes: (nodes: NodeInstance | NodeInstance[]) => void; getNode: (nodeId: string) => NodeInstance | undefined; updateNode: (nodeId: string, patch: Partial>) => void; getEdges: () => Edge[]; setEdges: (updater: CollectionUpdater) => void; addEdges: (edges: Edge | Edge[]) => void; getEdge: (edgeId: string) => Edge | undefined; updateEdge: (edgeId: string, patch: Partial>) => void; reconnectEdge: (edgeId: string, connection: Connection, options?: ReconnectEdgeOptions) => void; deleteElements: (options: DeleteElementsOptions) => Promise; } export declare function AINodeEditorProvider({ value, children }: { value: AINodeEditorApi; children: ReactNode; }): import("react/jsx-runtime").JSX.Element; export declare function AINodeIdProvider({ nodeId, children }: { nodeId: string; children: ReactNode; }): import("react/jsx-runtime").JSX.Element; export declare function useAINodeEditor(): AINodeEditorApi; export declare function useEditorNodes(): NodeInstance[]; export declare function useEditorEdges(): Edge[]; export declare function useEditorSelection(): SelectionState; export declare function useCurrentNodeId(): string | undefined; export declare function useEditorNodeData(nodeId?: string): NodeInstance | undefined; export interface UseNodeConnectionsOptions { nodeId?: string; portId?: string; direction?: "input" | "output"; } export declare function useNodeConnections(options?: UseNodeConnectionsOptions): Edge[]; //# sourceMappingURL=EditorContext.d.ts.map