/** * Like `return map[key] ??= fallback(key)` but for {@link Map}. * @param map the target map * @param key element key * @param fallback default element value * @returns existing value or fallback */ export declare function getOrSetMap(map: Map, key: K, fallback: (key: K) => V): V; /** * Like `key => map[key] || fallback()` but for {@link Map}. * @param map the target map * @param fallback value if missing in the map * @returns a getter into the map */ export declare function getMapWithDefault(map: Map, fallback: () => V): (key: K) => V; export type Dict = Partial>; /** * Create a new {@link Dict} * @returns an empty dict */ export declare function newDict(): Partial>; /** * Iterate over {@link Dict} entries * @param d target dict * @returns array of key value pairs */ export declare function iterDict(d: Dict): readonly [K, V][]; /** * Like `d[k] = v` but delete the key if {@link v} is undefined. * @param d target dict * @param k key to set * @param v value to set * @returns the value */ export declare function setOrDelete(d: Dict, k: K, v: V): V;