export declare class AVLTree { comparator: (a: T, b: T) => number; dataToTreeNodeMapper: (data: T) => string; root?: AVLTreeNode; dataRefToTreeNode: Record | undefined>; size: number; constructor(comparator: (a: T, b: T) => number, dataToTreeNodeMapper: (data: T) => string); height(node: AVLTreeNode): number; rightRotate(node: AVLTreeNode): AVLTreeNode | undefined; leftRotate(node: AVLTreeNode): AVLTreeNode | undefined; getBalance(node: AVLTreeNode): number; add(data: T): AVLTreeNode | undefined; private _insert; remove(data: T): boolean; private _delete; minValue(node: AVLTreeNode): AVLTreeNode; forEach(action: (item: T) => void): void; private _inorder; private _reverseInorder; } export declare class AVLTreeNode { data: T[]; height: number; left?: AVLTreeNode; right?: AVLTreeNode; constructor(data: T[]); }