import { BinaryTree, BinaryTreeNode } from '../data-structures'; import { BinaryTreeDeleteResult, BinaryTreeNested, BinaryTreeNodeNested, BinaryTreeOptions, BTNCallback, KeyOrNodeOrEntry } from '../types'; export interface IBinaryTree< K = number, V = any, N extends BinaryTreeNode = BinaryTreeNodeNested, TREE extends BinaryTree = BinaryTreeNested > { createNode(key: K, value?: N['value']): N; createTree(options?: Partial>): TREE; add(keyOrNodeOrEntry: KeyOrNodeOrEntry, value?: V, count?: number): boolean; addMany(nodes: Iterable>, values?: Iterable): boolean[]; delete>(identifier: ReturnType | null, callback: C): BinaryTreeDeleteResult[]; }