export = StackedMap; /** * @template K * @template V */ declare class StackedMap { /** * @param {Map>[]=} parentStack an optional parent */ constructor(parentStack?: Map>[] | undefined); /** @type {Map>} */ map: Map>; /** @type {Map>[]} */ stack: Map>[]; /** * @param {K} item the key of the element to add * @param {V} value the value of the element to add * @returns {void} */ set(item: K, value: V): void; /** * @param {K} item the item to delete * @returns {void} */ delete(item: K): void; /** * @param {K} item the item to test * @returns {boolean} true if the item exists in this set */ has(item: K): boolean; /** * @param {K} item the key of the element to return * @returns {Cell} the value of the element */ get(item: K): Cell; _compress(): void; asArray(): K[]; asSet(): Set; asPairArray(): [K, V][]; asMap(): Map; get size(): number; createChild(): import('./StackedMap'); } declare namespace StackedMap { export { Cell, InternalCell }; } /** * */ type InternalCell = T | typeof TOMBSTONE | typeof UNDEFINED_MARKER; /** * */ type Cell = T | undefined; declare const TOMBSTONE: unique symbol; declare const UNDEFINED_MARKER: unique symbol;