import { Command, flags } from '@oclif/command'; import { StepManager } from './steps/step-manager'; export default abstract class BaseCommand extends Command { static flags: flags.Input; static args: { name: string; description: string; }[]; protected requireExistingExtension: boolean; run(): Promise; protected welcomeMessage(): string; protected goodbyeMessage(): string; protected additionalPreRunChecks(_extRoot: string): Promise; protected abstract steps(stepManager: StepManager): StepManager; protected getFlarumExtensionRoot(currDir: string): Promise; protected confirmExtDir(extRoot: string): Promise; protected ensureComposerInstallRan(extRoot: string): Promise; /** * If false, files do not exist so no need to override. * If true, files should be overriden. * If user says no, will exit and not return anything. */ protected confirmOverrideFiles(dir: string, pattern: string, confirmationMessage: string): Promise; protected deleteFiles(dir: string, pattern: string): Promise; }