/**
 * Implementation of a bidirectional map
 *
 * All map-related functions are based on the normal Key -&gt; Value map
 */
export declare class BiMap<K, V extends object> implements Map<K, V> {
    readonly [Symbol.toStringTag]: string;
    size: number;
    private readonly k2v;
    private v2k;
    constructor(base?: Iterable<[K, V]>);
    [Symbol.iterator](): MapIterator<[K, V]>;
    clear(): void;
    delete(key: K): boolean;
    entries(): MapIterator<[K, V]>;
    forEach(callbackFunction: (value: V, key: K, map: Map<K, V>) => void): void;
    get(key: K): V | undefined;
    getKey(value: V): K | undefined;
    has(key: K): boolean;
    hasValue(value: V): boolean;
    keys(): MapIterator<K>;
    set(key: K, value: V): this;
    values(): MapIterator<V>;
}
