import { ConvertResult } from '@salesforce/source-deploy-retrieve';
import { MDFolderForArtifactOptions, PackageDescriptorJson, PackageVersionCreateOptions, PackageVersionCreateRequestResult, PackageXml, PackagingSObjects } from '../interfaces';
export declare class PackageVersionCreate {
    private options;
    private apiVersionFromPackageXml;
    private readonly project;
    private readonly connection;
    private packageObject;
    private packageId;
    private pkg?;
    private readonly logger;
    private metadataResolver;
    constructor(options: PackageVersionCreateOptions);
    createPackageVersion(): Promise<PackageVersionCreateRequestResult>;
    /**
     * A dependency in the project config file may be specified using either a subscriber package version id (04t)
     * or a package Id (0Ho) + a version number.  Additionally, a build number may be the actual build number, or a
     * keyword: LATEST or RELEASED (meaning the latest or released build number for a given major.minor.patch).
     *
     * This method resolves a package Id + version number to a subscriber package version id (04t)
     * and adds it as a SubscriberPackageVersionId parameter in the dependency object.
     */
    retrieveSubscriberPackageVersionId(dependency: PackageDescriptorJson): Promise<string>;
    /** side effect: removes properties from the passed in dependency! */
    private resolveSubscriberPackageVersionId;
    private validateDependencyValues;
    private resolveBuildNumber;
    private createRequestObject;
    /**
     * Convert the list of command line options to a JSON object that can be used to create an Package2VersionCreateRequest entity.
     *
     * @returns {{Package2Id: (*|p|boolean), Package2VersionMetadata: *, Tag: *, Branch: number}}
     * @private
     */
    private createPackageVersionCreateRequestFromOptions;
    private verifyHasSource;
    private cleanGeneratedPackage;
    /** side effect: modifies the passed in parameter! */
    private resolveBuildUserPermissions;
    private packageVersionCreate;
    private getPackageDirFromId;
    private getPackageType;
    private validateOptionsForPackageType;
    private validatePatchVersion;
    private getAncestorId;
    private getAncestorIdHighestRelease;
}
export declare class MetadataResolver {
    resolveMetadata(metadataRelativePath: string | undefined, metadataOutputPath: string, errorMessageLabel: string, sourceApiVersion?: string): Promise<boolean>;
    generateMDFolderForArtifact(options: MDFolderForArtifactOptions): Promise<ConvertResult>;
    /**
     * Extracted into a method for UT purposes
     *
     * @param componentSet CS to convert
     * @param outputDirectory where to place the converted MD
     * @param packageName the packagename related to the CS
     * @private
     */
    private convertMetadata;
}
export declare const packageXmlStringToPackageXmlJson: (rawXml: string) => PackageXml;
/**
 * Converts PackageXmlJson to a string representing the Xml
 * */
export declare const packageXmlJsonToXmlString: (packageXmlJson: PackageXml) => string;
export declare const validateAncestorId: (ancestorId: string, highestReleasedVersion: PackagingSObjects.Package2Version | null | undefined, explicitUseNoAncestor: boolean, isPatch: boolean, skipAncestorCheck: boolean, origSpecifiedAncestor: string) => string;
export declare const validateVersionNumber: (versionNumberString: string, supportedBuildNumberToken: string, supportedBuildNumberToken2?: string) => string;
