import type { Comparator, HeadlessNode, ITreeNode, SonicNodePublicReference } from '../types'; export declare const createMap: (Node: new (k: K, v: V) => ITreeNode, insert: >(root: N | undefined, node: N, comparator: Comparator) => N, insertLeft: >(root: N_1, node: N_1, parent: N_1) => N_1, insertRight: >(root: N_2, node: N_2, parent: N_2) => N_2, remove: >(root: N_3 | undefined, n: N_3) => N_3 | undefined, print: (node: HeadlessNode | ITreeNode | undefined, tab?: string) => string) => { new (comparator?: Comparator | undefined): { min: ITreeNode | undefined; root: ITreeNode | undefined; max: ITreeNode | undefined; readonly comparator: Comparator; set(k: K_6, v: V_2): SonicNodePublicReference>; find(k: K_6): SonicNodePublicReference> | undefined; get(k: K_6): V_2 | undefined; del(k: K_6): boolean; clear(): void; has(k: K_6): boolean; _size: number; size(): number; isEmpty(): boolean; getOrNextLower(k: K_6): ITreeNode | undefined; forEach(fn: (node: ITreeNode) => void): void; first(): ITreeNode | undefined; last(): ITreeNode | undefined; readonly next: (curr: N_4) => N_4 | undefined; iterator0(): () => ITreeNode | undefined; iterator(): Iterator, any, undefined>; entries(): IterableIterator>; toString(tab: string): string; }; };