import { ValueNode, BaseTree } from "./Tree"; export declare class BTreeNode extends ValueNode { left?: BTreeNode | undefined; right?: BTreeNode | undefined; get isLeaf(): boolean; get children(): BTreeNode[]; constructor(value: T, left?: BTreeNode | undefined, right?: BTreeNode | undefined); } export declare enum SearchBTreeTraverse { Root = 0, Left = 1, Right = 2 } export declare class BTree extends BaseTree { root: BTreeNode; protected __size: number; get size(): number; constructor(root: BTreeNode, comparer?: (a: T, b: T) => number); find(value: T): BTreeNode | undefined; inOrderEnumerator(node?: BTreeNode): Generator, number, unknown>; postOrderEnumerator(node?: BTreeNode): Generator, number, unknown>; newNode(value: T): BTreeNode; min(node: BTreeNode): BTreeNode; max(node: BTreeNode): BTreeNode; protected findKey(value: T): { node: BTreeNode; parent: BTreeNode; prevComp: number; comp: number; }; insert(value: T): boolean; delete(value: T): boolean; insertRange(values: T[]): boolean[]; deleteRange(values: T[]): boolean[]; }