import { DashboardChildrenState } from '../context-dashboard.model';
import { DashboardOriginatorService } from './dashboard-originator.service';
import * as i0 from "@angular/core";
/**
 * Caretaker is responsible for undo and redo functionalities.
 */
export declare class DashboardCaretakerService {
    private originator;
    /**
     * Current undo stack length for defining undo button disable state.
     */
    get undoStackLength(): number;
    /**
     * Redo stack latest item for defining redo button disable state and its' title.
     */
    get redoStackLastItem(): DashboardChildrenState;
    /**
     * List of dashboard children changes.
     * @private
     */
    private undoStack;
    /**
     * List of dashboard children changes that were undone and can be redone back.
     * @private
     */
    private redoStack;
    constructor(originator: DashboardOriginatorService);
    /**
     * Adds current dashboard children state to undo stack and clears redo stack.
     */
    backup(): void;
    /**
     * Reverts last dashboard children change and puts it in redo stack.
     * @returns Current state of dashboard children after reverting last change.
     */
    undo(): DashboardChildrenState | undefined;
    /**
     * Applies previously undone change.
     * @returns Current state of dashboard children after applying previously undone change.
     */
    redo(): DashboardChildrenState | undefined;
    /**
     * Clears both undo and redo stack, sets current state as initial state and returns initial state.
     * @returns Initial state of dashboard children.
     */
    reset(): DashboardChildrenState;
    static ɵfac: i0.ɵɵFactoryDeclaration<DashboardCaretakerService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DashboardCaretakerService>;
}
//# sourceMappingURL=dashboard-caretaker.service.d.ts.map