import { IMutation, IMutationCallback, IMutationTree, IProxifier, IProxyStateTree } from './types';
export declare class MutationTree<T extends object> implements IMutationTree<T> {
    private mutationCallbacks;
    root: IProxyStateTree<T>;
    state: T;
    proxifier: IProxifier<T>;
    mutations: IMutation[];
    objectChanges: Set<string>;
    isTracking: boolean;
    isBlocking: boolean;
    trackPathListeners: Array<(path: string) => void>;
    constructor(root: IProxyStateTree<T>, proxifier?: IProxifier<T>);
    trackPaths(): () => Set<string>;
    getMutations(): IMutation[];
    getObjectChanges(): Set<string>;
    addMutation(mutation: IMutation, objectChangePath?: string): void;
    flush(isAsync?: boolean): {
        mutations: IMutation[];
        flushId: number;
    };
    onMutation(callback: IMutationCallback): void;
    canMutate(): boolean;
    canTrack(): boolean;
    blockMutations(): void;
    enableMutations(): void;
    dispose(): this;
}
