import { Command as commanderCommand, HelpConfiguration } from 'commander';
import { Client } from '../client';
declare class Command {
    private readonly command;
    private readonly cmdName;
    private aliasName;
    private cmdArguments;
    private cmdDescription;
    private cmdOptions;
    private cmdAction;
    private beforeRunners;
    private optIgnores;
    private helpText;
    private allowUnknownOptions;
    client: Client | null;
    private subCommand;
    private isSubCommand;
    private _helpConfig?;
    private cmdUsage?;
    private isCICommand;
    constructor(cmd: string);
    private static globalOpts;
    description(description: string): Command;
    alias(alias: string): Command;
    argument(name: string, description: string, defaultValue?: string): Command;
    allowUnknownOpts(): Command;
    option(...args: Array<string>): Command;
    needs(fn: 'auth' | 'config' | 'rc', args?: unknown): Command;
    help(text: string): Command;
    addSubCommand(...commands: Array<Command>): Command;
    ci(value: boolean): Command;
    helpConfig(config: HelpConfiguration): Command;
    usage(cmdUsage: string): Command;
    action(fn: (...args: Array<any>) => Promise<unknown> | void): Command;
    ignore(opts: Array<string>): Command;
    register(client: Client, cli?: commanderCommand): commanderCommand;
    private _prepare;
    private runner;
}
export default Command;
