import type { MindMapData } from '../types'; export declare function generateId(): string; export declare function normalizeData(data: MindMapData | MindMapData[]): MindMapData[]; export declare function updateNodeText(node: MindMapData, id: string, text: string): MindMapData; export declare function updateNodeFields(node: MindMapData, id: string, fields: Partial>): MindMapData; export declare function addChild(node: MindMapData, parentId: string, child: MindMapData): MindMapData; export declare function removeNode(node: MindMapData, targetId: string): MindMapData; export declare function addSibling(node: MindMapData, targetId: string, sibling: MindMapData): MindMapData; export declare function swapSiblings(node: MindMapData, id1: string, id2: string): MindMapData; export declare function findSubtree(node: MindMapData, targetId: string): MindMapData | null; export declare function regenerateIds(node: MindMapData): MindMapData; export declare function getDescendantIds(nodeId: string, nodes: { id: string; parentId?: string; }[]): string[]; export declare function updateNodeTextMulti(roots: MindMapData[], id: string, text: string): MindMapData[]; export declare function updateNodeFieldsMulti(roots: MindMapData[], id: string, fields: Partial>): MindMapData[]; export declare function addChildMulti(roots: MindMapData[], parentId: string, child: MindMapData): MindMapData[]; export declare function addSiblingMulti(roots: MindMapData[], targetId: string, sibling: MindMapData): MindMapData[]; export declare function removeNodeMulti(roots: MindMapData[], targetId: string): MindMapData[]; export declare function swapSiblingsMulti(roots: MindMapData[], id1: string, id2: string): MindMapData[]; export declare function findSubtreeMulti(roots: MindMapData[], targetId: string): MindMapData | null; /** * Add a child to a specific side of a root node's children. * Returns the updated root and the new splitIndex. */ export declare function addChildToSide(root: MindMapData, child: MindMapData, side: 'left' | 'right', splitIndex: number): { data: MindMapData; newSplitIndex: number; }; /** * Move a direct child of root from one side to the other. * Returns the updated root and new splitIndex, or null if already on target side. */ export declare function moveChildToSide(root: MindMapData, childId: string, toSide: 'left' | 'right', splitIndex: number): { data: MindMapData; newSplitIndex: number; } | null;