import type { BiMultiMapBase, ContextTypesImpl } from '@rimbu/bimultimap/custom'; import { EmptyBase, NonEmptyBase, type WithKeyValue } from '@rimbu/collection-types/map-custom'; import type { RelatedTo, ToJSON, TraverseState } from '@rimbu/common'; import { Stream, type StreamSource } from '@rimbu/stream'; export declare class BiMultiMapEmpty extends EmptyBase implements BiMultiMapBase { readonly context: WithKeyValue['context']; _NonEmptyType: WithKeyValue['nonEmpty']; constructor(context: WithKeyValue['context']); get keyValueMultiMap(): WithKeyValue['keyValueMultiMap']; get valueKeyMultiMap(): WithKeyValue['valueKeyMultiMap']; get keySize(): 0; streamKeys(): Stream; streamValues(): Stream; hasKey(): false; hasValue(): false; hasEntry(): false; add(key: K, value: V): WithKeyValue['nonEmpty']; addEntries(entries: StreamSource): WithKeyValue['nonEmpty']; setValues(key: K, values: StreamSource): WithKeyValue['nonEmpty']; setKeys(value: V, keys: StreamSource): WithKeyValue['nonEmpty']; getValues(): WithKeyValue['keyMultiMapValues']; getKeys(): WithKeyValue['valueMultiMapValues']; removeKey(): WithKeyValue['normal']; removeKeys(): WithKeyValue['normal']; removeEntry(): WithKeyValue['normal']; removeEntries(): WithKeyValue['normal']; removeValue(): WithKeyValue['normal']; removeValues(): WithKeyValue['normal']; toString(): string; toJSON(): ToJSON; toBuilder(): WithKeyValue['builder']; } export declare class BiMultiMapNonEmpty = WithKeyValue> extends NonEmptyBase<[K, V]> implements BiMultiMapBase.NonEmpty { readonly context: WithKeyValue['context']; readonly keyValueMultiMap: TpG['keyValueMultiMapNonEmpty']; readonly valueKeyMultiMap: TpG['valueKeyMultiMapNonEmpty']; _NonEmptyType: TpG['nonEmpty']; constructor(context: WithKeyValue['context'], keyValueMultiMap: TpG['keyValueMultiMapNonEmpty'], valueKeyMultiMap: TpG['valueKeyMultiMapNonEmpty']); assumeNonEmpty(): any; asNormal(): any; get keySize(): number; get size(): number; stream(): Stream.NonEmpty<[K, V]>; streamKeys(): Stream.NonEmpty; streamValues(): Stream.NonEmpty; hasKey(key: RelatedTo): boolean; hasValue(key: RelatedTo): boolean; hasEntry(key: RelatedTo, value: RelatedTo): boolean; add(key: K, value: V): WithKeyValue['nonEmpty']; addEntries(entries: StreamSource): WithKeyValue['nonEmpty']; setValues(key: K, values: StreamSource): WithKeyValue['nonEmpty']; setKeys(value: V, keys: StreamSource): WithKeyValue['nonEmpty']; getValues(key: RelatedTo): WithKeyValue['keyMultiMapValues']; getKeys(value: RelatedTo): WithKeyValue['valueMultiMapValues']; removeKey(key: RelatedTo): WithKeyValue['normal']; removeKeys(keys: StreamSource>): WithKeyValue['normal']; removeValue(value: RelatedTo): WithKeyValue['normal']; removeValues(values: StreamSource>): WithKeyValue['normal']; removeEntry(key: RelatedTo, value: V): WithKeyValue['normal']; removeEntries(entries: StreamSource<[RelatedTo, V]>): WithKeyValue['normal']; forEach(f: (entry: [K, V], index: number, halt: () => void) => void, options?: { state?: TraverseState; }): void; filter(pred: (entry: [K, V], index: number, halt: () => void) => boolean, options?: { negate?: boolean; }): WithKeyValue['normal']; toArray(): [K, V][]; toString(): string; toJSON(): ToJSON<[K, V[]][], this['context']['typeTag']>; toBuilder(): WithKeyValue['builder']; }