/** ProfileMeta 排序器——按 source 分组、同 source 内按 name 字典序。 * listProfilesWithTagline 内部使用;listProfiles 因不暴露 source 字段走自己的 lite 版(共享 SOURCE_ORDER)。 */ export declare function sortProfileMetasBySource(a: ProfileMeta, b: ProfileMeta): number; /** 读项目 settings.json 的指定 dotted key。文件不存在/解析失败 → undefined */ export declare function readProjectSetting(cwd: string, dottedKey: string): Promise; /** 列出可选 Profile 名:项目 + 内建合并,同名时项目覆盖内建。 * 必须与 mdAdapter.load 的合并语义一致——否则选择器/补全看不到内建 profile * (如 builtin `pt`),但 transpile 又能加载,造成“选不到却能手敲”的不一致 * (issue: 内建 pt 无法通过 pt-profile 选择)。 * v15.x PR3+(issue pt-profile-selector-no-pack-grouping):按 source 分组排—— * project 在前 / builtin 在后,同 source 内按 name 字典序。 */ export declare function listProfiles(cwd: string): Promise; export interface ProfileMeta { name: string; tagline?: string; source: "project" | "settings" | "builtin"; /** v15.x PR3(§7.2):pack 身份(reserved 短名 prj/pt 或 manifest.name)。 */ pack: string; /** v15.x §4.4.4(缺口 4):reserved pack 的位置别名(prj/pt),非 reserved 为 undefined。 * UI 显示层用——reserved 显位置别名,settings 显 pack 名。 */ reservedAlias?: "prj" | "pt"; } export declare function listProfilesWithTagline(cwd: string): Promise; /** 把 ProfileMeta 列表转成选择器展示标签(`[@pack] name — tagline`,§7.3)。 * v15.x §4.4.4(缺口 4):reserved pack 显 reservedAlias(位置别名),settings pack 显 pack 名。 * tagline 缺省 → 纯名。空 tagline 也走纯名。 */ export declare function formatProfileLabels(profiles: ProfileMeta[]): string[]; /** 自动探测:只看项目级 Profile,不把内建 guide 计入用户项目选择。 */ export declare function detectSingleProfile(cwd: string): Promise; /** 默认兜底:项目无单 Profile 时,读 settings `pt.default-profile`。 * - 未设 → 返回内建 "guide"(装包即用,真默认) * - "none" → 返回 null(用户明确不要自动加载) * - 具体名 → 返回该名(用户自定义默认 Profile) * 与 detectSingleProfile 分离:auto 是项目探测(pickedFrom="auto"), * default 是兜底机制(pickedFrom="default"),来源可观测。 */ export declare function detectDefaultProfile(cwd: string): Promise;