26 lines
817 B
TypeScript
26 lines
817 B
TypeScript
export interface Node<K, V> {
|
|
key: K;
|
|
value: V;
|
|
used?: number;
|
|
previous?: Node<K, V>;
|
|
next?: Node<K, V>;
|
|
}
|
|
export declare abstract class SizedMap<K, V> implements Map<K, V> {
|
|
readonly limit: number;
|
|
protected readonly map: Map<K, Node<K, V>>;
|
|
constructor(limit: number);
|
|
abstract has(key: K): boolean;
|
|
abstract get(key: K, _default?: V): V | undefined;
|
|
abstract set(key: K, value: V): this;
|
|
delete(key: K): boolean;
|
|
keys(): IterableIterator<K>;
|
|
values(): IterableIterator<V>;
|
|
entries(): IterableIterator<[K, V]>;
|
|
isFull(): boolean;
|
|
clear(): void;
|
|
readonly [Symbol.toStringTag]: string;
|
|
[Symbol.iterator](): IterableIterator<[K, V]>;
|
|
forEach(cb: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;
|
|
get size(): number;
|
|
}
|