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