export declare class Tree { symbolTree: any; constructor(); /** * * @param objectArg */ initialize(objectArg: T): T; hasChildren(objectArg: T): boolean; firstChild(objectArg: T): T; lastChild(objectArg: T): T; previousSibling(objectArg: T): T; nextSibling(objectArg: T): T; parent(objectArg: T): T; lastInclusiveDescendant(objectArg: T): T; preceding(objectArg: T, optionsArg?: any): T; following(object: T, optionsArg: any): any; childrenToArray(parentArg: T, optionsArg: any): T[]; ancestorsToArray(objectArg: T, optionsArg: any): T[]; treeToArray(rootArg: T, optionsArg: any): T[]; childrenIterator(parentArg: T, optionsArg: any): T; previousSiblingsIterator(objectArg: T): T; nextSiblingsIterator(objectArg: T): any; ancestorsIterator(objectArg: T): Iterable; treeIterator(rootArg: T, optionsArg?: any): Iterable; index(childArg: T): number; childrenCount(parentArg: T): number; compareTreePosition(leftArg: T, rightArg: T): number; remove(removeObjectArg: T): T; insertBefore(referenceObjectArg: T, newObjectArg: T): T; insertAfter(referenceObject: T, newObjectArg: T): any; prependChild(referenceObjectArg: T, newObjectArg: T): T; appendChild(referenceObjectArg: T, newObjectArg: T): any; /** * returns a branch of the tree as a recursive JSON structure */ toJsonWithHierachy(rootElement: T): ITreeNode; /** * builds a tree from a recursive JSON structure * @param jsonRoot the root node in ITreeNode format * @param reviver optional function to reconstruct T from serialized data */ fromJsonWithHierachy(jsonRoot: ITreeNode, reviver?: (data: any) => T): T; } export interface ITreeNode { data: T; children: ITreeNode[]; }