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;
}
