import 'source-map-support/register';
import { Command, Interfaces, Config } from '@oclif/core';
import ora from 'ora';
import { CommandConfig } from './types';
export type Flags<T extends typeof Command> = Interfaces.InferredFlags<(typeof BaseCommand)['baseFlags'] & T['flags']>;
export type Args<T extends typeof Command> = Interfaces.InferredArgs<T['args']>;
declare abstract class BaseCommand<T extends typeof Command> extends Command {
    protected flags: Flags<T>;
    protected args: Args<T>;
    protected surgioConfig: CommandConfig;
    ora: ora.Ora;
    projectDir: string;
    constructor(argv: string[], config: Config);
    init(): Promise<void>;
    protected catch(err: Error & {
        exitCode?: number;
    }): Promise<any>;
    protected cleanup(): Promise<void>;
}
export default BaseCommand;
