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[];
}
