/**
 * 生成 PascalCase 匹配正则（前后必须是非单词字符）
 * @param {string} value - kebab-case 名称
 * @returns {RegExp}
 * @example
 * ```ts
 * const reg = getComponentPascalReg('press-icon');
 * 'use <PressIcon/>'.match(reg); // ['PressIcon']
 * ```
 */
export declare function getComponentPascalReg(value: string): RegExp;
/**
 * 生成三阶段重命名配置（plus -> temp, key -> plus, temp -> key）
 * @param {string[]} rawList - 组件名列表，如 ['dialog', 'icon']
 * @param {string[]} [extraList=[]] - 额外需要重命名的组件名列表
 * @returns {{ renameConfig: Object, renameConfig2: Object, renameConfig3: Object }}
 * @example
 * ```ts
 * const { renameConfig, renameConfig2, renameConfig3 } = getThreeStageRenameConfig(['dialog', 'icon']);
 * // renameConfig:  { 'press-dialog-plus': '<random>', 'press-icon-plus': '<random>' }
 * // renameConfig2: { 'press-dialog': 'press-dialog-plus', 'press-icon': 'press-icon-plus' }
 * // renameConfig3: { '<random>': 'press-dialog', '<random>': 'press-icon' }
 * ```
 */
export declare function getThreeStageRenameConfig(rawList: string[], extraList?: string[]): {
    renameConfig: Record<string, string>;
    renameConfig2: Record<string, string>;
    renameConfig3: Record<string, string>;
};
/**
 * 生成 meta config（如 component-config.json）的 PascalCase 替换规则
 * @param {string[]} rawList - 组件名列表
 * @param {string[]} dirList - 目标文件 glob 列表
 * @returns {Array<{ list: Array, dirList: string[] }>}
 * @example
 * ```ts
 * const rules = getMetaConfigPascalReplaceRules(
 *   ['dialog', 'icon'],
 *   ['src/component-config.json'],
 * );
 * // rules 为三阶段替换规则数组，供 batchReplaceFileContent 使用
 * ```
 */
export declare function getMetaConfigPascalReplaceRules(rawList: string[], dirList: string[]): {
    list: [string, string][];
    dirList: string[];
}[];
/**
 * 生成文件内容的三阶段替换规则（kebab-case + PascalCase + 类名）
 * @param {string[]} rawList - 组件名列表
 * @param {string[]} dirList - 目标文件 glob 列表
 * @param {Object} [options={}] - 可选配置
 * @param {string[]} [options.needClassReplaceList=[]] - 需要额外替换类名的组件列表
 * @returns {Array<{ list: Array, dirList: string[] }>}
 * @example
 * ```ts
 * const rules = getComponentContentReplaceRules(
 *   ['dialog', 'icon'],
 *   ['src/**\/*.{ts,vue,less}'],
 *   { needClassReplaceList: ['icon'] },
 * );
 * batchReplaceFileContent(rules);
 * ```
 */
export declare function getComponentContentReplaceRules(rawList: string[], dirList: string[], options?: {
    needClassReplaceList?: string[];
}): {
    list: [string | RegExp, string][];
    dirList: string[];
}[];
/**
 * 批量替换文件内容（性能优化版）
 * 将同 dirList 的规则合并，每个文件只读写一次
 * @param {Array<{ list: Array, dirList: string|string[] }>} replaceList - 替换规则列表
 * @example
 * ```ts
 * batchReplaceFileContent([
 *   {
 *     list: [
 *       ['<PressIconPlus', '<PressIcon'],
 *       [/press-icon-plus/g, 'press-icon'],
 *     ],
 *     dirList: ['src/**\/*.vue'],
 *   },
 * ]);
 * // 同 dirList 的规则会被合并，避免重复读写
 * ```
 */
export declare function batchReplaceFileContent(replaceList: Array<{
    list: Array<[string | RegExp, string]>;
    dirList: string | string[];
}>): void;
/**
 * 批量重命名文件和文件夹（同步版本）
 * @param {string} dirPath - 要处理的目录路径
 * @param {Object} renameConfig - 重命名配置对象 { 旧名称: 新名称 }
 * @param {boolean} [recursive=true] - 是否递归处理子目录
 * @example
 * ```ts
 * batchRenameDirEntries('src/components', {
 *   'press-icon-plus': 'press-icon',
 *   'press-dialog-plus': 'press-dialog',
 * });
 * // 递归将 src/components 下名为 press-icon-plus、press-dialog-plus 的文件/文件夹重命名
 *
 * // 只重命名当前层、不递归
 * batchRenameDirEntries('src/components', { 'a': 'b' }, false);
 * ```
 */
export declare function batchRenameDirEntries(dirPath: string, renameConfig: Record<string, string>, recursive?: boolean): void;
