import { BaseCommand } from "./BaseCommand";
import { History } from "../History";
export declare abstract class ModelUpdateCommand<TArgs, TResult> extends BaseCommand<TArgs, TResult> {
    protected _historyArgs: IHistoryArgs;
    private _historyUpdateMode;
    constructor(args: TArgs, _historyArgs: IHistoryArgs);
    execute(): Promise<TResult>;
    protected _executeCommandBody(): Promise<TResult>;
    redo(): Promise<void>;
    undo(): Promise<void>;
}
export interface IHistoryArgs {
    historyUpdateMode?: HistoryUpdateMode;
    history?: History;
}
export declare enum HistoryUpdateMode {
    NotUpdate = 0,
    Update = 1,
    ForceUpdate = 2
}
