/**
 * Base Command - Abstract Command Class
 * All CLI commands extend this class
 */
import { Command } from 'commander';
export interface CommandOptions {
    verbose?: boolean;
    args?: string[];
    [key: string]: unknown;
}
export interface IBaseCommand {
    [x: string]: unknown;
    name: string;
    description: string;
    verbose?: boolean;
    getCommand(): Command;
    addOptions?: (command: Command) => void;
    execute(options: CommandOptions): void | Promise<void>;
    info(message: string): void;
    success(message: string): void;
    warn(message: string): void;
    debug(message: unknown): void;
}
/**
 * Command Factory Helper
 * Sealed namespace for immutability
 */
export declare const BaseCommand: Readonly<{
    /**
     * Create a command instance with common logic
     */
    create<T extends IBaseCommand = IBaseCommand>(config: {
        name: string;
        description: string;
        /** Optional alias or aliases for the command (e.g. 'make:mail') */
        aliases?: string | string[];
        addOptions?: (command: Command) => void;
        execute: (options: CommandOptions) => void | Promise<void>;
    }): T;
}>;
//# sourceMappingURL=BaseCommand.d.ts.map