import { GcImageViewer } from "../GcImageViewer";
import { IUndoStorage } from "../Models/IImageViewer";
import { ViewerOptions } from "../ViewerOptions";
import { UndoCommandSupport } from "./Commands";
export declare class UndoStorage implements IUndoStorage {
    viewer: GcImageViewer;
    skipCommandsHash: {
        [name: string]: boolean;
    };
    private _index;
    private _eventBus?;
    private _commandsList;
    private _undoInProgress;
    private _disabled;
    private _maxLevels;
    constructor(viewer: GcImageViewer);
    applyOptions(options: ViewerOptions): void;
    dispose(): void;
    clear(): void;
    isCommandSupported(command: UndoCommandSupport): boolean;
    execute(command: UndoCommandSupport): Promise<void>;
    onCommandExecuted(command: UndoCommandSupport): void;
    undo(): Promise<void>;
    redo(): Promise<void>;
    get hasUndo(): boolean;
    get hasRedo(): boolean;
    get undoIndex(): number;
    get undoCount(): number;
    get undoInProgress(): boolean;
    get commands(): UndoCommandSupport[];
    applyOptionsInternal(options: ViewerOptions, isInit?: boolean): void;
    private _init;
    private _onZoomChanged;
    private _onBeforeOpen;
    private _onBeforeClose;
    private _onFrameIndexChanged;
    private _onAnimationStarted;
    private _onAnimationStopped;
    private _reset;
}
