import { ISnapshotHandler } from "./ISnapshotHandler";
export declare class History {
    private readonly _snapshotHandler;
    private _snapshots;
    private _current;
    private _enabled;
    private _locked;
    private _pauseCount;
    private _addSnapshotOnResume;
    private _maxUndoStepCount;
    private _overflowMaxUndoStepCount;
    private _changed;
    private _undoPerformed;
    private _redoPerformed;
    constructor(handler: ISnapshotHandler, historySize?: number);
    set historySize(historySize: number);
    get canRedo(): boolean;
    get canUndo(): boolean;
    get overflowMaxUndoStepCount(): boolean;
    enable(): void;
    disable(): void;
    isPaused(): boolean;
    pause(): void;
    resume(addSnapshot?: boolean, forceAddSnapshot?: boolean, replaceLastSnapshot?: boolean): void;
    raiseChanged(): void;
    private _clearRedo;
    private _clearUndo;
    clear(suppressOnChanged?: boolean): void;
    addSnapshot(suppressOnChanged?: boolean, replaceLastSnapshot?: boolean): void;
    redo(): void;
    undo(): void;
    addChanged(listener: any): void;
    removeChanged(listener: any): void;
    addUndoPerformed(listener: () => void): void;
    removeUndoPerformed(listener: () => void): void;
    addRedoPerformed(listener: () => void): void;
    removeRedoPerformed(listener: () => void): void;
}
