import { Color, TreeNode } from "./Node"; export interface NodeFactory { create(value: T, color: Color): TreeNode; } export declare class RedBlackTree { private readonly insertHandler; private readonly deleteHandler; private root; private readonly comparator; constructor(nodeFactory: NodeFactory, comparator: (o1: T, o2: T) => number); delete(node: TreeNode): void; insert(value: T): TreeNode; findNode(value: T): TreeNode; getRoot(): TreeNode; hasRoot(): boolean; isRoot(node: TreeNode): boolean; setRoot(node: TreeNode): void; }