import { Serializer, IChange, IDisposer, IListener, IMosxPatchParams, IMosxSnapshotParams, IMosxTracker, IMosxTrackerParams, ITagsChange, ITreeNode, MosxPatchListener } from "./internal";
export declare class MosxTracker<T = any> implements IMosxTracker<T> {
    private _adding;
    private lastId;
    private patchedObjects;
    listeners: Set<IListener<T>>;
    nodes: WeakMap<any, ITreeNode>;
    root: T;
    serializer?: Serializer;
    reversible: boolean;
    privateMapValuePatch: boolean;
    constructor(object: T, params?: IMosxTrackerParams);
    onPatch(handler: MosxPatchListener<T>, params?: IMosxPatchParams): IDisposer;
    dispose(): void;
    tagChanged(): void;
    snapshot(params: IMosxSnapshotParams): any;
    tagExist(entryTags?: Set<string>, tags?: string[]): boolean;
    getParentValue(entry: ITreeNode): void;
    tagChange(object: any, change: ITagsChange): void;
    computedChange(object: any, change: IChange): void;
    private isHidden;
    private processAddChange;
    private processUpdateChange;
    private processDeleteChange;
    private processSpliceChange;
    private processChange;
    private isRecursivelyObservable;
    private buildPath;
    private observeRecursively;
    private createEntry;
    private unobserveRecursively;
}
