import { Class } from 'type-fest'; import { Container } from "../container"; import { SubscriberMetadata } from "../metadata"; import { CommandHandler } from "./CommandHandler"; export interface CommandRunnerConfig { container?: Container; } /** * Runs commands */ export declare class CommandRunner { protected container: Container; protected handlers: Map, CommandHandler>; protected subscribers: Map, SubscriberMetadata>; constructor({ container }?: CommandRunnerConfig); /** * Executes commands. */ run: >(Handler: Class, event: Parameters["0"]) => Promise>; /** * Serially executes `@BeforeCommand(Handler)` or `@AfterCommand(Handler)` decorated methods for the given `Handler`. */ emit: >(type: "middleware" | "before" | "after", HandlerClass: Class, result: ReturnType) => Promise; }