import { Map as YMap } from "yjs";
import { EventEmitter, TListener } from "cellx";
import { ObservableList, ObservableMap, TObservableMapValueEquals } from "cellx-collections";
export declare class ObservableYMap<TValue> extends EventEmitter implements ObservableMap<string, TValue> {
    private yMap;
    constructor(yMap: YMap<TValue>);
    _entries: Map<string, TValue>;
    get size(): number;
    _valueEquals: TObservableMapValueEquals<TValue>;
    get valueEquals(): TObservableMapValueEquals<TValue>;
    onChange(listener: TListener<EventEmitter>, context?: any): this;
    offChange(listener: TListener<EventEmitter>, context?: any): this;
    clear(): this;
    equals(that: any): boolean;
    clone(deep?: boolean): ObservableMap<string, TValue>;
    absorbFrom(that: any): boolean;
    toData<I = any>(): Record<string, I>;
    private emitChange;
    has(key: string): boolean;
    get(key: string): TValue;
    delete(key: string): boolean;
    set(key: string, value: TValue): this;
    forEach(cb: (value: TValue, key: string, map: this) => void, context?: any): void;
    keys(): IterableIterator<string>;
    values(): IterableIterator<any>;
    entries(): IterableIterator<any>;
    [Symbol.iterator]: () => IterableIterator<any>;
    toList(id: (x: TValue) => string): ObservableList<TValue>;
    subscribe(): void;
}
