import type { IGlobalGrayPublishConfig } from './types'; /** * 获取镜像名称 * 根据项目名、子项目名和分支生成镜像名称 * @param projectName - 项目名称 * @param subProjectName - 子项目名称 * @param branch - 分支名称 * @returns 镜像名称 * @example * ```ts * const imageName = getImageName({ * projectName: 'my-project', * subProjectName: 'sub-project', * branch: 'release' * }); * // 'my-project.sub-project' * ``` */ export declare function getImageName({ projectName, subProjectName, branch, }: { projectName: string; subProjectName: string; branch: string; }): string; /** * 解析灰度发布配置 * 将嵌套的配置对象转换为平面的映射表 * @param config - 原始配置对象 * @returns 解析后的全局灰度发布配置 * @example * ```ts * const config = { * 'project1': { * 'sub1': { * 'release': { grayVersion: '1.0.0', grayPercent: '50', cookieId: 'xxx' } * } * } * }; * const parsed = parseGrayPublishConfig(config); * // { 'project1.sub1': { grayVersion: '1.0.0', ... } } * ``` */ export declare function parseGrayPublishConfig(config?: Record>>>): IGlobalGrayPublishConfig; /** * 获取当前项目使用的灰度配置 * 根据子项目名称查找匹配的灰度发布配置 * @param fullSubProjectName - 完整的子项目名称 * @param globalGrayPublishConfig - 全局灰度发布配置 * @returns 匹配的灰度配置列表 * @example * ```ts * const grayList = getCurrentProjectUseGray( * 'my-project.sub-project', * globalGrayPublishConfig * ); * // [ * // { * // fullSubProjectName: 'my-project.sub-project', * // packageName: 'my-project.sub-project.dev', * // parsedBranch: '.dev', * // cookieId: 'xxx' * // } * // ] * ``` */ export declare function getCurrentProjectUseGray(fullSubProjectName: string, globalGrayPublishConfig: IGlobalGrayPublishConfig): { fullSubProjectName: string; packageName: string; parsedBranch: string; cookieId: string; }[];