export declare enum Color { RED = 0, BLACK = 1 } export declare class TreeNode { private readonly value; private leftChild; private rightChild; private parent; private color; constructor(value: T, color: Color); getLeftChild(): TreeNode; setLeftChild(value: TreeNode): void; getValue(): T; setRightChild(value: TreeNode): void; getRightChild(): TreeNode; getParent(): TreeNode; setParent(parent: TreeNode): void; hasChildren(): boolean; hasTwoChildren(): boolean; isLeftChild(node: TreeNode): boolean; isRightChild(node: TreeNode): boolean; deleteChild(node: TreeNode): void; substituteNode(node: TreeNode, substitute: TreeNode): void; getChildrenRecursive(): TreeNode[]; getColor(): Color; setColor(color: Color): void; invertColor(): void; uncle(): TreeNode; grandParent(): TreeNode; sibling(): TreeNode; }