import { Destroyable, Event, ObservableArray } from 'xbsj-renderer/dist-node/xr-base-utils'; import { MoveToPositionMode } from './move'; import { Tree } from './Tree'; import { UiTreeObject } from './UiTreeObject'; export type TreeItemInsertFlag = 'InnerOrBefore' | 'InnerOrAfter' | 'Inner' | 'Before' | 'After'; export declare class TreeItem extends Destroyable { private _tree; private _hasChildren; private _children?; private _childrenResetedEvent?; private _childrenToChangeEvent?; private _childrenChangedEvent?; private _parent; private _level; private _id; static wm: Map; static getFromId(id: string): TreeItem | undefined; private _uiTreeObject; get uiTreeObject(): UiTreeObject; static allTreeItems: Map; constructor(_tree: Tree, _hasChildren?: boolean, id?: string); get id(): string; private _updateLevel; get parent(): TreeItem | undefined; get parentChanged(): import("xbsj-renderer/dist-node/xr-base-utils").Listener<[TreeItem | undefined, TreeItem | undefined]>; get children(): ObservableArray | undefined; get childrenResetedEvent(): Event<[boolean]>; get childrenToChangeEvent(): Event<[changeInfos: import("xbsj-renderer/dist-node/xr-base-utils").ObservableArrayChangeInfo[], target: ObservableArray]>; get childrenChangedEvent(): Event<[target: ObservableArray]>; resetChildren(recreate?: boolean): void; getDescendants(traverseFunc?: (treeItem: TreeItem) => boolean): Generator; getAncestors(traverseFunc?: (treeItem: TreeItem) => boolean): Generator; isDescendantOf(treeItem: TreeItem): boolean; isAncestorOf(treeItem: TreeItem): boolean; get level(): number; get levelChanged(): import("xbsj-renderer/dist-node/xr-base-utils").Listener<[number, number]>; get tree(): Tree; canMoveTo(targetItem: TreeItem, mode: MoveToPositionMode): boolean; moveTo(targetItem: TreeItem, mode: MoveToPositionMode): void; detachFromParent(): void; /** * 在当前节点上右键新建节点,如果当前节点是组节点(有children),则加入子节点数组中;否则插入当前节点之前(作为兄弟节点) * 新节点成功挂接,返回true,否则false * @param flag 'InnerOrBefor' | 'InnerOrAfter' | 'Inner' | 'Before' | 'After' * @param newTreeItem 需要新加入的节点,如果为undefined,表示测试是否能在当前节点加入新节点 * @returns */ insertNewTreeItem(flag: TreeItemInsertFlag, newTreeItem?: TreeItem): boolean; }