import * as commander from 'commander';
import { CreateOps } from './interfaces';
export interface CommandOption {
    flags: string;
    description: string;
    default?: string;
}
export interface CommandItem {
    command: commander.Command;
    actions: Function[];
}
export declare function getProjectName(namespace?: string): string;
export declare abstract class AbstractCLI {
    private name;
    private version;
    private program;
    private commands;
    constructor(name: string, version: string);
    parse(): void;
    protected consoleLog(message: string, silent?: boolean): void;
    addCommand(name: string, description: string, options: CommandOption[], action: Function): void;
    private setDescriptionToCommand;
    addOptionToCommand(name: string | string[], options: CommandOption[]): void;
    addActionToCommand(name: string | string[], action: Function): void;
    addFirstActionToCommand(name: string | string[], action: Function): void;
    private spawnCommand;
    protected copyAndPrint(folder: string, subfolder: string | undefined, options: CreateOps): void;
}
