import { Command } from '@oclif/core';
import { FlagOutput } from '@oclif/core/lib/interfaces/parser';
import { Org } from '@salesforce/core';
/**
 * A base class that provides common funtionality for sfp commands
 *
 * @extends SfdxCommand
 */
export default abstract class SfpCommand extends Command {
    protected static requiresProject: boolean;
    protected hubOrg: Org;
    protected org: Org;
    flags: FlagOutput & {
        json: boolean;
    };
    private isSfpowerkitFound;
    private sfpConfig;
    private isSfdmuFound;
    protected static requiresUsername: boolean;
    protected static requiresDevhubUsername: boolean;
    /**
     * Command run code goes here
     */
    abstract execute(): Promise<any>;
    /**
     * Entry point of all commands
     */
    run(): Promise<any>;
    /**
     * Optional method for programmatically validating flags.
     * Useful for complex flag behaviours that cannot be adequately defined using flag props
     * e.g. making a flag required only if another flag that it depends on is passed
     */
    protected validateFlags(): void;
    private initializeStatsD;
    private setLogLevel;
    protected get statics(): typeof SfpCommand;
}
