UNPKG

@rimbu/sorted

Version:

Immutable SortedMap and SortedSet implementations for TypeScript

39 lines (38 loc) 2.25 kB
import { Token } from '@rimbu/base'; import { OptLazy, OptLazyOr, type RelatedTo, Update } from '@rimbu/common'; import { type StreamSource } from '@rimbu/stream'; import type { SortedMap } from '@rimbu/sorted/map'; import type { SortedMapContext } from '@rimbu/sorted/map-custom'; import { SortedBuilder } from '@rimbu/sorted/common'; export declare class SortedMapBuilder<K, V> extends SortedBuilder<readonly [K, V]> implements SortedMap.Builder<K, V> { readonly context: SortedMapContext<K>; source?: undefined | SortedMap<K, V>; _entries?: undefined | (readonly [K, V])[]; _children?: undefined | SortedMapBuilder<K, V>[]; size: number; constructor(context: SortedMapContext<K>, source?: undefined | SortedMap<K, V>, _entries?: undefined | (readonly [K, V])[], _children?: undefined | SortedMapBuilder<K, V>[], size?: number); createNew(source?: undefined | SortedMap<K, V>, _entries?: undefined | (readonly [K, V])[], _children?: undefined | SortedMapBuilder<K, V>[], size?: undefined | number): SortedMapBuilder<K, V>; prepareMutate(): void; get children(): SortedMapBuilder<K, V>[]; set children(value: SortedMapBuilder<K, V>[]); get: <UK, O>(key: RelatedTo<K, UK>, otherwise?: OptLazy<O>) => V | O; hasKey: <UK>(key: RelatedTo<K, UK>) => boolean; addEntry: (entry: readonly [K, V]) => boolean; addEntries: (source: StreamSource<readonly [K, V]>) => boolean; set: (key: K, value: V) => boolean; removeKey: <UK, O>(key: RelatedTo<K, UK>, otherwise?: OptLazy<O>) => V | O; removeKeys: <UK>(keys: StreamSource<RelatedTo<K, UK>>) => boolean; modifyAt: (key: K, options: { ifNew?: OptLazyOr<V, Token>; ifExists?: ((currentValue: V, remove: Token) => V | Token) | V; }) => boolean; updateAt: <O>(key: K, update: Update<V>, otherwise?: OptLazy<O>) => V | O; build: () => SortedMap<K, V>; buildMapValues: <V2>(f: (value: V, key: K) => V2) => SortedMap<K, V2>; addEntryInternal(entry: readonly [K, V]): boolean; removeInternal<O>(key: K, otherwise?: OptLazy<O>): V | O; modifyAtInternal(key: K, options: { ifNew?: OptLazyOr<V, Token>; ifExists?: ((currentValue: V, remove: Token) => V | Token) | V; }): boolean; }