/** * A map variant that maps keys to values and, in contrast to regular maps, also * vice versa. Mostly this is an abstraction over two individual maps with all * the bookkeeping taken care of. The API should be fairly self-explanatory - it * is essentially equal to that of a regular map, just with every operation * duplicated to support both key- and value-oriented approaches. Use this * module by importing from `@sirpepe/shed/BiMap`. */ export declare class BiMap { private byKey; private byVal; constructor(values?: Iterable<[K, V]>); set(key: K, val: V): void; hasKey(key: K): boolean; hasVal(val: V): boolean; getByKey(key: K): V | undefined; getByVal(val: V): K | undefined; deleteByKey(key: K): void; deleteByVal(val: V): void; clear(): void; keys(): Iterable; values(): Iterable; entries(): Iterable<[K, V]>; get size(): number; get [Symbol.iterator](): () => IterableIterator<[K, V]>; }