import { Arguments } from "@utils/templateArgs"; export type Arg = { name: string; type: "number" | "string"; }; export type RunnableArgs = { arguments: Arguments; __dirname: string; }; export type FileConfig = { name?: string | { argName: string; case: "camel" | "kebab" | "snake" | "pascal"; plural?: boolean; suffix?: string; }; extension?: string; subDir?: boolean; }; export default abstract class BaseCommand { abstract commandName: string; abstract description: string; abstract templatePath?: string; abstract destinationPath?: string; abstract file?: FileConfig; abstract run(args: RunnableArgs): void; abstract args(): Arg[]; }