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<string, Record<string, Record<string, Record<string, string>>>>): 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;
}[];
