import { DashboardOriginatorService } from './dashboard-originator.service';
import { DashboardCaretakerService } from './dashboard-caretaker.service';
import { DashboardChildrenState } from '../context-dashboard.model';
import * as i0 from "@angular/core";
/**
 * Facade for implementation of Memento design pattern (caretaker, originator). Responsible for undo/redo feature
 * during edit mode of dashboard.
 */
export declare class DashboardEditModeService {
    private originator;
    private caretaker;
    get undoButtonDisabled(): boolean;
    /**
     * Current dashboard change name for undo button title.
     */
    get changeToUndoName(): string;
    /**
     * Redo stack latest item for defining redo button disable state and its title.
     */
    get redoStackLastItem(): DashboardChildrenState;
    constructor(originator: DashboardOriginatorService, caretaker: DashboardCaretakerService);
    /**
     * Initializes dashboard children state on edit mode start.
     * @param state Dashboard children initial state.
     */
    init(state: DashboardChildrenState): void;
    /**
     * Saves current state for further undo actions and sets new dashboard children state.
     * @param state Dashboard children updated state.
     */
    newState(state: DashboardChildrenState): void;
    /**
     * Returns copy of current state.
     */
    getCurrentState(): DashboardChildrenState;
    /**
     * Reverts last dashboard children change.
     * @returns Current state of dashboard children after reverting last change.
     */
    undo(): DashboardChildrenState;
    /**
     * Applies previously undone change.
     * @returns Current state of dashboard children after applying previously undone change.
     */
    redo(): DashboardChildrenState;
    /**
     * Resets dashboard children state to initial one and returns initial state.
     * @returns Initial state of dashboard children.
     */
    reset(): DashboardChildrenState;
    static ɵfac: i0.ɵɵFactoryDeclaration<DashboardEditModeService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DashboardEditModeService>;
}
//# sourceMappingURL=dashboard-edit-mode.service.d.ts.map