@yookue/ts-multi-map
Version:
Multiple key/value map & range map for typescript
37 lines (36 loc) • 2.29 kB
TypeScript
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;
}