export declare class Tree { _root: TreeNode; constructor(root: TreeNode); readonly root: T; parent(t: T): T | null; children(t: T): T[]; firstChild(t: T): T | null; siblings(t: T): T[]; pathFromRoot(t: T): T[]; contains(tree: Tree): boolean; } export declare function rootNode(tree: Tree): TreeNode; export declare class TreeNode { value: T; children: TreeNode[]; constructor(value: T, children: TreeNode[]); }