export default class CommandRunner { runFn: () => Promise; shouldRecord: boolean; constructor(command: string, args: any[], targets: { [targetName: string]: ICommandableTarget; }); } export interface ICommandableTarget { isAllowedCommand(method: string): boolean; shouldWaitForCommandLock?(commandName: string): boolean; }