import type { Logger } from '../logger';
import type { CommandArgv, CommandDefinition } from '../typings';
export declare abstract class BaseCommand<C extends CommandDefinition> {
    protected readonly logger: Logger;
    protected readonly argv: CommandArgv<C>;
    constructor(logger: Logger, argv: CommandArgv<C>);
    protected abstract run(): Promise<void>;
    protected bootstrap?(): Promise<void>;
    protected teardown?(): Promise<void>;
    private get _cmdName();
    handler(): Promise<{
        exitCode: number;
    }>;
}
