import { Comparable } from './comparable'; import { Normalized } from './normalizer'; import { Options } from './options'; /** * A Map implementation that supports deep equality for object keys. */ export declare class DeepMap extends Map implements Comparable> { private options; private readonly normalizer; private readonly map; /** * @param entries optional list of key-value pairs to initialize the map * @param options configuration options */ constructor(entries?: readonly (readonly [K, V])[] | null, options?: Options); /** * Getter for number of kev-value pairs in the map. * @inheritdoc */ get size(): number; /** * Returns true if the given key is present in the map. * @inheritdoc */ has(key: K): boolean; /** * @inheritdoc */ set(key: K, val: V): this; /** * @inheritdoc */ get(key: K): V | undefined; /** * @inheritdoc */ delete(key: K): boolean; /** * Clear all key-value pairs from the map. * @inheritdoc */ clear(): void; /** * @inheritdoc */ forEach(callbackfn: (val: V, key: K, map: Map) => void): void; /** * @yields the next key-value pair in the map * @inheritdoc */ [Symbol.iterator](): IterableIterator<[K, V]>; /** * @yields the next key-value pair in the map * @inheritdoc */ entries(): IterableIterator<[K, V]>; /** * @inheritdoc */ keys(): IterableIterator; /** * @inheritdoc */ values(): IterableIterator; /** * @param other the map to compare against * @returns true if the entries of `other` are the same as this map */ equals(other: this): boolean; /** * @param other the map to compare against * @returns true if the entries of `other` are all contained in this map */ contains(other: this): boolean; /** * @param other the map to compare against * @returns a new map whose keys are the union of keys between `this` and `other` maps. * * NOTE: If both maps prescribe the same key, the key-value pair from `this` will be retained. */ union(other: this): DeepMap; /** * @param other the map to compare against * @returns a new map containing all key-value pairs in `this` that are also present in `other`. */ intersection(other: this): DeepMap; /** * @param other the map to compare against * @returns a new map containing all key-value pairs in `this` that are not present in `other`. */ difference(other: this): DeepMap; protected normalizeKey(input: K): Normalized; protected normalizeValue(input: V): Normalized; private validateUsingSameOptionsAs; /** * @returns true if the key is present in the provided map w/ the specified value */ private keyValuePairIsPresentIn; }