import { LEVEL_ENUM, EventEmitter } from '..'; /** * 顶点类 * 属性均为只读,仅在初始化和 load 的情况下可以修改 */ export declare class Vertex extends EventEmitter { /** * 可修改标志,内部属性 * 标记在构造函数结束后是否可修改 */ protected _mutable: boolean; /** * 概念类型 */ readonly level: LEVEL_ENUM; /** * toJSON 时需要去除的键,为了避免出现 CircularJSON */ protected readonly JSON_EXCLUDED_KEYS: Set; /** * 顶点 id */ readonly id: string; /** * 唯一 uuid * 目前主要用于前端 Debug 区分两个实例 */ readonly _uuid: string; /** * 前端记录缓存的时间戳 */ readonly _cacheTimestamp: string; /** * 名称 */ readonly name: string; /** * 创建人 */ readonly createdBy: string; /** * 创建时间 */ readonly createdTime: string; /** * 修改人 */ readonly updatedBy: string; /** * 修改时间 */ readonly updatedTime: string; /** * IDE 版本 */ readonly ideVersion: string; /** * 是否可编辑 */ editable: boolean; /** * 是否正在编辑 * 前端 UI 状态 */ editing: boolean; /** * 是否正在请求 * 前端 UI 状态 */ loading: boolean; /** * 节点是否为展开状态 * 前端 UI 状态 */ expanded: boolean; /** * 是否为叶子节点 * 前端 UI 状态 */ isLeaf: boolean; /** * @param source 需要合并的部分参数 */ constructor(source?: Partial); assign(source: any): void; emitVertexIdToNameChange(): void; plainAssign(source: any): void; pick(source: any, keys?: Array): void; /** * 从对象中深度获取 * @param source * @param keys * @example 比如一般后端返回只是添加了个 id * ``` * this.deepPick(result, ['id']) */ deepPick(source: any, keys?: Array): void; /** * 去除循环依赖,转为纯 JSON * @param parentKey 外面的 key,提供给 JSON.stringify 使用 * @param excludedKeys 需要额外排除的 keys */ toJSON(parentKey?: string, excludedKeys?: Array): any; /** * 转为单层的 JSON * @param parentKey 外面的 key,提供给 JSON.stringify 使用 * @param excludedKeys 需要额外排除的 keys */ toPlainJSON(parentKey?: string, excludedKeys?: Array): any; /** * 查找引用 */ findUsage(): Promise; /** * 销毁 * 从 Map 中删除点和子节点 */ destroy(): void; /** * 通过 Ref 去查找点 * @param ref */ static getVertexByRef(ref: string): Vertex; } export default Vertex;