export type CmdStatus = "cancelled" | "created" | "done" | "executed" | "flushed"; export interface Command { flush(): void; execute(): Promise | boolean; canExecute(): boolean; hadEffect(): boolean; done(): void; isDone(): boolean; cancel(): void; getStatus(): CmdStatus; }