import { Comparator } from "./collections"; export interface Result { tree: AVLTree; key?: K; value?: V; } export declare abstract class AVLTree { comparator: Comparator; protected constructor(comparator: Comparator); static empty(comparator?: Comparator): AVLTree; static create(key: K, value: V, comparator?: Comparator): AVLTree; static of(entries: [K, V][], comparator?: Comparator): AVLTree; private static preSorted; abstract readonly isEmpty: boolean; abstract insert(key: K, value: V): AVLTree; abstract contains(key: K): boolean; abstract lookup(key: K): V | undefined; abstract delete(key: K): Result; abstract first(): V | undefined; abstract last(): V | undefined; abstract removeFirst(): Result; abstract removeLast(): Result; abstract toString(): string; abstract readonly height: number; abstract readonly balance: number; abstract keys(): Iterable; abstract values(): Iterable; abstract entries(): Iterable<[K, V]>; }