export type Blueprint = {
    name: string;
    version?: string;
};
/**
 * @private
 * Splits and normalizes a comma separated list of blueprint names with optional versions.
 * @param {string|any[]} [blueprints] - comma separated list of blueprint names, e.g kotlin,vuewjs@1.0.1. If an array then
 * no processing is performed and it is returned as is.
 * @returns {Array} an array that contains the info for each blueprint
 */
export declare function parseBlueprints(blueprints?: string | Blueprint[]): Blueprint[];
/**
 * @private
 * Merges blueprint arrays, keeping order and version priority.
 * @param {...Blueprint[]} [blueprintsToMerge] - Blueprint arrays to be merged.
 * @returns {Blueprint[]} an array that contains the info for each blueprint
 */
export declare function mergeBlueprints(...blueprintsToMerge: Blueprint[][]): Blueprint[];
/**
 * @private
 * Remove duplicate blueprints, keeping order and version priority.
 * @param {Blueprint[]} blueprints - Blueprint arrays to be merged.
 * @returns {Blueprint[]} an array that contains the info for each blueprint
 */
export declare function removeBlueprintDuplicates(blueprints: Blueprint[]): Blueprint[];
/**
 * @private
 * Normalize blueprint name if needed and also extracts version if defined. If no version is defined then `latest`
 * is used by default.
 * @param {string} blueprint - name of the blueprint and optionally a version, e.g kotlin[@0.8.1]
 * @returns {object} containing the name and version of the blueprint
 */
export declare function parseBlueprintInfo(blueprint: string): Blueprint;
/**
 * @private
 * Normalize blueprint name: prepend 'generator-jhipster-' if needed
 * @param {string} blueprint - name of the blueprint
 * @returns {string} the normalized blueprint name
 */
export declare function normalizeBlueprintName(blueprint: string): string;
