import { BinarySearchTree } from './binarySearchTree'; import { AvlTreeNode } from './avlTreeNode'; export class AvlTree extends BinarySearchTree { constructor(compare?: (a: T, b: T) => number, options?: { key: string }); insert(value: T): AvlTree; insertIterative(value: T): AvlTree; remove(value: T): boolean; removeIterative(value: T): boolean; find(value: T): AvlTreeNode | null; findIterative(value: T): AvlTreeNode | null; findKey(key: number|string): AvlTreeNode | null; max(node?: AvlTreeNode): AvlTreeNode | null; maxIterative(node?: AvlTreeNode): AvlTreeNode | null; min(node?: AvlTreeNode): AvlTreeNode | null; minIterative(node?: AvlTreeNode): AvlTreeNode | null; lowerBound(value: T, includeEqual?: boolean): AvlTreeNode | null; lowerBoundIterative(value: T, includeEqual?: boolean): AvlTreeNode | null; lowerBoundKey(key: number|string, includeEqual?: boolean): AvlTreeNode | null; floor(value: T, includeEqual?: boolean): AvlTreeNode | null; floorKey(key: number|string, includeEqual?: boolean): AvlTreeNode | null; upperBound(value: T, includeEqual?: boolean): AvlTreeNode | null; upperBoundIterative(value: T, includeEqual?: boolean): AvlTreeNode | null; upperBoundKey(key: number|string, includeEqual?: boolean): AvlTreeNode | null; ceil(value: T, includeEqual?: boolean): AvlTreeNode | null; ceilKey(key: number|string, includeEqual?: boolean): AvlTreeNode | null; root(): AvlTreeNode | null; traverseInOrder(cb: (node: AvlTreeNode) => void, abortCb?: () => boolean): void; traverseInOrderIterative(cb: (node: AvlTreeNode) => void, abortCb?: () => boolean): void; traversePreOrder(cb: (node: AvlTreeNode) => void, abortCb?: () => boolean): void; traversePreOrderIterative(cb: (node: AvlTreeNode) => void, abortCb?: () => boolean): void; traversePostOrder(cb: (node: AvlTreeNode) => void, abortCb?: () => boolean): void; traversePostOrderIterative(cb: (node: AvlTreeNode) => void, abortCb?: () => boolean): void; removeNode(node: AvlTreeNode): boolean; }