import { ITransactionItem } from './ITransactionItem.js';
import { ChangeGroup } from "./ChangeGroup.js";
import { IUndoService } from './IUndoService.js';
import { IDesignerCanvas } from '../../widgets/designerView/IDesignerCanvas.js';
import { TypedEvent } from '@node-projects/base-custom-webcomponent';
import { IUndoChangeEvent, UndoChangeSource } from './IUndoChangeEvent.js';
export declare class UndoService implements IUndoService {
    private _undoStack;
    private _redoStack;
    private _transactionStack;
    private _designerCanvas;
    private _storeRedoBranches;
    constructor(designerCanvas: IDesignerCanvas, storeRedoBranches?: boolean);
    openGroup(title: string, source?: UndoChangeSource): ChangeGroup;
    private commitTransactionItem;
    private abortTransactionItem;
    execute(item: ITransactionItem, source?: UndoChangeSource): void;
    clear(): void;
    clearTransactionstackIfNotEmpty(): void;
    undo(source?: UndoChangeSource): void;
    redo(source?: UndoChangeSource): void;
    redoTo(transactionItems: ITransactionItem[]): void;
    canUndo(): boolean;
    canRedo(): boolean;
    get undoCount(): number;
    get redoCount(): number;
    getUndoEntryNames(count?: number): Generator<string, void, unknown>;
    getUndoEntries(count?: number): Generator<ITransactionItem, void, unknown>;
    getRedoEntryNames(count?: number): Generator<string, void, unknown>;
    getRedoEntries(count?: number): Generator<ITransactionItem, void, unknown>;
    readonly onTransaction: TypedEvent<IUndoChangeEvent>;
    private emitTransaction;
}
