export declare function getOrSet(map: Map, key: K, value: V): V; export declare function mapToString(map: Map): string; export declare function setToString(set: Set): string; export declare const enum Touch { None = 0, AsOld = 1, AsNew = 2 } export declare class CounterSet { private map; add(value: T): CounterSet; delete(value: T): boolean; has(value: T): boolean; } /** * A map that allows access both by keys and values. * **NOTE**: values need to be unique. */ export declare class BidirectionalMap { private readonly _m1; private readonly _m2; constructor(entries?: readonly (readonly [K, V])[]); clear(): void; set(key: K, value: V): void; get(key: K): V | undefined; getKey(value: V): K | undefined; delete(key: K): boolean; forEach(callbackfn: (value: V, key: K, map: BidirectionalMap) => void, thisArg?: any): void; keys(): IterableIterator; values(): IterableIterator; } export declare class SetMap { private map; add(key: K, value: V): void; delete(key: K, value: V): void; forEach(key: K, fn: (value: V) => void): void; get(key: K): ReadonlySet; } export declare function mapsStrictEqualIgnoreOrder(a: Map, b: Map): boolean; //# sourceMappingURL=map.d.ts.map