import { ITransactionItem } from './ITransactionItem.js';
import { IDesignItem } from '../../item/IDesignItem.js';
import { UndoChangeSource } from './IUndoChangeEvent.js';
import { IContentChanged } from '../InstanceServiceContainer.js';
export declare class ChangeGroup implements ITransactionItem {
    redoBranches?: ITransactionItem[][];
    source: UndoChangeSource;
    private _contentChanges;
    title: string;
    get affectedItems(): IDesignItem[];
    private commitHandler;
    private abortHandler;
    constructor(title: string, commitHandler: (transactionItem: ChangeGroup) => void, abortHandler: (transactionItem: ChangeGroup) => void, source?: UndoChangeSource);
    get contentChanges(): IContentChanged[] | null;
    do(): IContentChanged[] | null;
    undo(): IContentChanged[] | null;
    commit(): void;
    abort(): void;
    mergeWith(other: ITransactionItem): boolean;
    addCommitedSubchangeGroup(changeGroup: ChangeGroup): void;
    undoStack: ITransactionItem[];
    redoStack: ITransactionItem[];
    execute(item: ITransactionItem): IContentChanged[] | null;
    private _recordContentChanges;
}
