import { BaseType, Pair } from "../Base/Base";
export declare type MapType<T, K> = {
    front: () => Pair<T, K> | undefined;
    back: () => Pair<T, K> | undefined;
    forEach: (callback: (element: Pair<T, K>, index: number) => void) => void;
    find: (element: T) => boolean;
    lowerBound: (key: T) => Pair<T, K> | undefined;
    upperBound: (key: T) => Pair<T, K> | undefined;
    reverseLowerBound: (key: T) => Pair<T, K> | undefined;
    reverseUpperBound: (key: T) => Pair<T, K> | undefined;
    getElementByPos: (pos: number) => Pair<T, K>;
    getElementByKey: (key: T) => K | undefined;
    setElement: (key: T, value: K) => void;
    eraseElementByPos: (pos: number) => void;
    eraseElementByKey: (key: T) => void;
    union: (other: MapType<T, K>) => void;
    getHeight: () => number;
    [Symbol.iterator]: () => Generator<Pair<T, K>, void, undefined>;
} & BaseType;
declare const _default: new <T, K>(container?: {
    forEach: (callback: (element: Pair<T, K>) => void) => void;
}, cmp?: (x: T, y: T) => number) => MapType<T, K>;
export default _default;