UNPKG

@rimbu/bimap

Version:

A bidirectional immutable Map of keys and values for TypeScript

34 lines (33 loc) 1.72 kB
import type { BiMapContext, BiMapNonEmptyImpl } from '@rimbu/bimap/custom'; import type { BiMap } from '@rimbu/bimap'; import type { RMap } from '@rimbu/collection-types/map'; import { OptLazy, type RelatedTo, TraverseState } from '@rimbu/common'; import { type StreamSource } from '@rimbu/stream'; export declare class BiMapBuilder<K, V> implements BiMap.Builder<K, V> { readonly context: BiMapContext<K, V>; source?: BiMapNonEmptyImpl<K, V> | undefined; constructor(context: BiMapContext<K, V>, source?: BiMapNonEmptyImpl<K, V> | undefined); _keyValueMap?: RMap.Builder<K, V>; _valueKeyMap?: RMap.Builder<V, K>; _lock: number; checkLock(): void; get keyValueMap(): RMap.Builder<K, V>; get valueKeyMap(): RMap.Builder<V, K>; get size(): number; get isEmpty(): boolean; getValue: <UK, O>(key: RelatedTo<K, UK>, otherwise?: OptLazy<O>) => V | O; hasKey: <UK>(key: RelatedTo<K, UK>) => boolean; getKey: <UV, O>(value: RelatedTo<V, UV>, otherwise?: OptLazy<O>) => K | O; hasValue: <UV>(value: RelatedTo<V, UV>) => boolean; set: (key: K, value: V) => boolean; addEntry: (entry: readonly [K, V]) => boolean; addEntries: (source: StreamSource<readonly [K, V]>) => boolean; removeKey: <UK, O>(key: RelatedTo<K, UK>, otherwise?: OptLazy<O>) => V | O; removeKeys: <UK>(keys: StreamSource<RelatedTo<K, UK>>) => boolean; removeValue: <UV, O>(value: RelatedTo<V, UV>, otherwise?: OptLazy<O>) => K | O; removeValues: <UV>(values: StreamSource<RelatedTo<V, UV>>) => boolean; forEach: (f: (entry: readonly [K, V], index: number, halt: () => void) => void, options?: { state?: TraverseState; }) => void; build: () => BiMap<K, V>; }