import { MapLikeConstructor, MapLike } from 'advanced-map-types';
/**
 * Abstract base class for every Map-like class within `advanced-map` package
 */
declare abstract class Base<Key, Value, Data extends MapLike<Key, Value> = Map<Key, Value>> implements MapLike<Key, Value> {
    protected readonly data: Data;
    abstract has(key: Key): boolean;
    abstract get(key: Key): Value | undefined;
    abstract set(key: Key, value: Value): this;
    abstract delete(key: Key): boolean;
    /**
     * @param Map A constructor (a.k.a class) that creates a Map-like instance
     */
    constructor(Map: MapLikeConstructor<Data>);
}
export = Base;
