import SfpCommand from './SfpCommand';
import { Artifact } from './core/artifacts/ArtifactFetcher';
import SfpPackage from './core/package/SfpPackage';
import SFPOrg from './core/org/SFPOrg';
/**
 * Base class providing common functionality for package installation
 *
 * @extends SfpCommand
 */
export default abstract class InstallPackageCommand extends SfpCommand {
    protected sfpPackage: SfpPackage;
    protected sfpOrg: SFPOrg;
    /**
     * Flags that are common/required on all package installation commands
     */
    static flags: {
        package: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        targetorg: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        artifactdir: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
    };
    protected artifact: Artifact;
    /**
     * Procedures unique to the type of package installation
     */
    abstract install(): Promise<any>;
    /**
     * Entry point for package installation commands
     *
     */
    execute(): Promise<any>;
    /**
     * Procedures common to all install commands, and to be run BEFORE
     * the primary install
     */
    private preInstall;
    /**
     * Procedures common to all install commands, and to be run AFTER
     * the primary install
     */
    private postInstall;
}
