UNPKG

@yookue/ts-multi-map

Version:

Multiple key/value map & range map for typescript

37 lines (36 loc) 2.29 kB
import { type RangeMapKey } from ".."; export declare class RangeMap<V> implements Omit<Map<RangeMapKey, V>, 'delete' | 'forEach' | 'get' | 'has' | 'set' | 'entries' | 'keys' | 'values' | 'push'> { private readonly keyMap; private readonly valueMap; static of<V>(entries?: [RangeMapKey | [number, number] | [number, number, boolean, boolean], V][], validation?: boolean): RangeMap<V>; constructor(entries?: [RangeMapKey | [number, number] | [number, number, boolean, boolean], V][], validation?: boolean); get(key: RangeMapKey | [number, number] | [number, number, boolean, boolean], defaults?: V): V | undefined; getByDigit(digit: number, defaults?: V): V | undefined; set(key: RangeMapKey | [number, number] | [number, number, boolean, boolean], value: V, validation?: boolean): void; clear(): void; keys(): RangeMapKey[]; values(): V[]; entries(): [RangeMapKey, V][]; deleteByKey(key: RangeMapKey | [number, number] | [number, number, boolean, boolean]): boolean; deleteByKeys(keys: Array<RangeMapKey | [number, number] | [number, number, boolean, boolean]>): boolean; deleteByValue(value: V): boolean; deleteByValues(values: V[]): boolean; forEach(callback: (value?: V, key?: RangeMapKey) => void, thisArg?: any): void; forEachIndexing(callback: (value?: V, key?: RangeMapKey, index?: number) => void, thisArg?: any): void; forEachBreakable(callback: (value?: V, key?: RangeMapKey) => boolean, thisArg?: any): void; hasKey(key: RangeMapKey | [number, number] | [number, number, boolean, boolean]): boolean; hasKeyValue(key: RangeMapKey | [number, number] | [number, number, boolean, boolean], value: V): boolean; hasAnyKeys(keys: Array<RangeMapKey | [number, number] | [number, number, boolean, boolean]>): boolean; hasAllKeys(keys: Array<RangeMapKey | [number, number] | [number, number, boolean, boolean]>): boolean; hasValue(value: V): boolean; hasAnyValues(values: V[]): boolean; hasAllValues(values: V[]): boolean; isEmpty(): boolean; isNotEmpty(): boolean; [Symbol.iterator](): IterableIterator<[RangeMapKey, V]>; get size(): number; get [Symbol.toStringTag](): string; toString(): string; private toInternalKey; private checkRangeConflict; }