import type { Schema } from 'jamis-core'; import type { IPlayNode } from './types'; export type Node = IPlayNode; export type { Schema }; /** * 从schema对象中加载出nodeMap. * 采用迭代方式, 为每个节点生成唯一的nanoid. * @returns 返回nodeMap和rootNode */ export declare const loadSchema: (schema: Schema) => [Map, Node]; /** * 添加子节点. * 复用加载逻辑, 将新节点及其子孙添加到 nodeMap. */ export declare const addChild: (nodeMap: Map, parentId: string, slot: string, newItemSchema: Schema) => Node; /** * 更新节点值. * 逻辑简化: 先删除所有旧的子节点, 再根据 newValue 添加新的子节点. */ export declare const updateNode: (nodeMap: Map, id: string, newValue: Schema) => Node | null; /** * 删除节点及其所有子孙. * 逻辑极其简单, 无需再关心兄弟节点. */ export declare const deleteNode: (nodeMap: Map, id: string) => void; /** * 导出最新的schema对象树. */ export declare const pipeOut: (nodeMap: Map, id: string) => Schema; /** * 序列化为JS文件字符串. */ export declare const toString: (nodeMap: Map, id: string) => string;