import { Logger } from '@flxbl-io/sfp-logger';
import SfpPackage, { SfpPackageParams } from '../SfpPackage';
import { PackageCreationParams } from '../SfpPackageBuilder';
export declare abstract class CreatePackage {
    protected projectDirectory: string;
    protected sfpPackage: SfpPackage;
    protected packageCreationParams?: PackageCreationParams;
    protected logger?: Logger;
    protected params?: SfpPackageParams;
    private startTime;
    constructor(projectDirectory: string, sfpPackage: SfpPackage, packageCreationParams?: PackageCreationParams, logger?: Logger, params?: SfpPackageParams);
    exec(): Promise<SfpPackage>;
    abstract getTypeOfPackage(): any;
    abstract preCreatePackage(sfpPackage: SfpPackage): any;
    abstract createPackage(sfpPackage: SfpPackage): any;
    abstract postCreatePackage(sfpPackage: SfpPackage): any;
    private sendMetricsWhenSuccessfullyCreated;
    private writeDeploymentStepsToArtifact;
    private checkWhetherProvidedPackageIsEmpty;
    abstract isEmptyPackage(projectDirectory: string, packageDirectory: string): any;
    protected printEmptyArtifactWarning(): void;
    private printHeader;
    abstract printAdditionalPackageSpecificHeaders(): any;
}
