import { type FacadeMap } from './facade-map.js';
import { type Facade } from '../facade/facade.js';
import { type FacadeObjectConstructor } from '../facade/facade-object-constructor.js';
import { type ClassConstructor } from '../../utils/class-constructor.type.js';
export declare class MutableFacadeMap<K, V extends Facade<BV>, BV> implements FacadeMap<K, V, BV> {
    private readonly facadeObjectConstructor;
    private readonly encapsulatedObjectConstructor;
    private readonly encapsulatedMap;
    private readonly facadeMap;
    constructor(facadeObjectConstructor: FacadeObjectConstructor<V, BV>, encapsulatedObjectConstructor: ClassConstructor<BV>, encapsulatedMap: Map<K, BV>);
    addNew(key: K): V;
    get(key: K): V | undefined;
    set(key: K, value: V): void;
    has(key: K): boolean;
    forEach(callback: (value: V, key: K, map: Map<K, V>) => void): void;
    entries(): IterableIterator<[K, V]>;
    keys(): IterableIterator<K>;
    values(): IterableIterator<V>;
    delete(key: K): boolean;
    clear(): void;
    get size(): number;
    [Symbol.iterator](): MapIterator<[K, V]>;
    [Symbol.toStringTag](): string;
}
