import { Command } from "./Command"; import { SubCommand } from "./SubCommand"; /** * Macro command provides the functionality of sequential execution of a sub-command batch. */ export declare abstract class MacroCommand extends Command { private readonly __injector; private readonly __event; protected readonly commands: ReadonlyArray>; private halted; protected constructor(...commands: Array); /** * Execute macro command. */ execute(): Promise; protected executeSubCommand({ type, guards }: SubCommand): T | Promise; /** * Stop macro command execution chain. */ protected readonly haltExecution: () => boolean; /** * Check if sub command execution was halted due to haltExecution() call or all sub commands were executed properly. */ protected get executionIsHalted(): boolean; /** * Find if command execution is allowed by guards. * @returns {boolean} True if guards aren't set or none of them has reason to stop execution. */ private executionAllowedByGuards; }