import { ChangeTree } from "../changes/ChangeTree";
import { SchemaDecoderCallbacks } from "../Schema";
declare type K = string;
export declare function getMapProxy(value: MapSchema): MapSchema<any>;
export declare class MapSchema<V = any> implements Map<string, V>, SchemaDecoderCallbacks {
    protected $changes: ChangeTree;
    protected $items: Map<string, V>;
    protected $indexes: Map<number, string>;
    protected $refId: number;
    onAdd?: (item: V, key: string) => void;
    onRemove?: (item: V, key: string) => void;
    onChange?: (item: V, key: string) => void;
    static is(type: any): boolean;
    constructor(initialValues?: Map<string, V> | any);
    /** Iterator */
    [Symbol.iterator](): IterableIterator<[K, V]>;
    get [Symbol.toStringTag](): string;
    set(key: K, value: V): this;
    get(key: K): V | undefined;
    delete(key: K): boolean;
    clear(isDecoding?: boolean): void;
    has(key: K): boolean;
    forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void): void;
    entries(): IterableIterator<[string, V]>;
    keys(): IterableIterator<string>;
    values(): IterableIterator<V>;
    get size(): number;
    protected setIndex(index: number, key: string): void;
    protected getIndex(index: number): string;
    protected getByIndex(index: number): V;
    protected deleteByIndex(index: number): void;
    toJSON(): any;
    clone(isDecoding?: boolean): MapSchema<V>;
    triggerAll(): void;
}
export {};
