import { IDisposable } from 'notificar';
import { TreeStateManager } from './TreeStateManager';
import { ISerializableState, TreeStateWatcherChangeType as TreeStateChangeType } from './types';
export declare class TreeStateWatcher implements IDisposable {
    private readonly treeState;
    private readonly atSurfaceExpandedDirsOnly;
    private events;
    private _disposed;
    private disposables;
    private currentState;
    constructor(treeState: TreeStateManager, atSurfaceExpandedDirsOnly?: boolean);
    dispose(): void;
    onChange(callback: (changeType: TreeStateChangeType) => void): IDisposable;
    snapshot(): ISerializableState;
    toString(): string;
}
