/**
 * Configuration Precedence Contract — Resolution
 *
 * 配置字段解析、上位约束执行、过期检测、字段分类、证据来源映射。
 */
import type { FieldClass } from "./field_class.js";
import type { ConfigSource, ConfigLifetime, ConfigValueEvidence, ConfigResolutionReport, UpperBoundGuard, ConfigFieldResolution, FieldCandidates, LegacyFieldSources, GuardCheckResult } from "./types.js";
/** 列出所有配置优先级规则 — 导入自 constants，通过 index 重导出 */
/** 获取配置来源的优先级排名（数值越小优先级越高）
 * @param source - 配置来源
 * @returns 优先级排名索引
 */
export declare function getPrecedenceRank(source: ConfigSource): number;
/** 获取配置来源的生命周期
 * @param source - 配置来源
 * @returns 生命周期类型
 */
export declare function getSourceLifetime(source: ConfigSource): ConfigLifetime;
/** 判断来源 a 的优先级是否高于来源 b
 * @param a - 配置来源 a
 * @param b - 配置来源 b
 * @returns a 是否优先级更高
 */
export declare function isHigherPriority(a: ConfigSource, b: ConfigSource): boolean;
/** 解析单个配置字段 — 按优先级排序候选值并检测冲突
 * @param fieldPath - 字段路径
 * @param candidates - 候选值列表
 * @returns 配置解析报告
 */
export declare function resolveConfigField(fieldPath: string, candidates: ConfigValueEvidence[]): ConfigResolutionReport;
/** 解析所有配置字段
 * @param fieldCandidates - 字段路径到候选值列表的映射
 * @returns 所有字段的解析报告数组
 */
export declare function resolveAllFields(fieldCandidates: Record<string, ConfigValueEvidence[]>): ConfigResolutionReport[];
/** 检查上位约束是否阻止该配置
 * @param report - 配置解析报告
 * @param guardId - 上位约束 ID
 * @returns 约束检查结果
 */
export declare function checkGuardOverride(report: ConfigResolutionReport, guardId: UpperBoundGuard): GuardCheckResult;
/** 检测配置是否过期 — 比较确认值与指纹值是否一致
 * @param confirmedValue - 已确认的配置值
 * @param fingerprintValue - 当前指纹值
 * @returns 是否过期及警告信息
 */
export declare function detectStaleConfig(confirmedValue: ConfigValueEvidence, fingerprintValue: ConfigValueEvidence): {
    isStale: boolean;
    warning: string;
};
/** 判断字段是否为 C 类字段
 * @param fieldPath - 字段路径
 * @returns 是否为 C 类字段
 */
export declare function isCClassField(fieldPath: string): boolean;
/** 获取配置字段的分类（C 类或 B 类）
 * @param fieldPath - 字段路径
 * @param explicitClass - 显式指定的分类（可选）
 * @returns 字段分类
 */
export declare function getConfigFieldClass(fieldPath: string, explicitClass?: FieldClass): FieldClass;
/** 判断字段是否允许自动写入
 * @param fieldPath - 字段路径
 * @param fieldClass - 字段分类
 * @param source - 配置来源
 * @returns 是否允许及原因
 */
export declare function canAutoWriteField(fieldPath: string, fieldClass: FieldClass, source: ConfigSource | string): {
    allowed: boolean;
    reason: string;
};
/** 将证据元数据来源映射为规范配置来源
 * @param source - 原始来源标识
 * @returns 规范配置来源
 */
export declare function mapEvidenceSource(source: string): ConfigSource;
/** 从候选来源解析所有配置字段，支持新旧两种格式和冲突检测
 * @param fields - 字段候选值映射（FieldCandidates 新格式或 LegacyFieldSources 旧格式）
 * @returns 解析结果、解析报告和警告信息
 */
export declare function resolveConfigFromSources(fields: FieldCandidates | Record<string, LegacyFieldSources>): {
    resolutions: ConfigFieldResolution[];
    reports: ConfigResolutionReport[];
    warnings: string[];
};
export declare function sourceLabel(source: ConfigSource): string;
export declare function lifetimeLabel(lifetime: ConfigLifetime): string;
/** 生成配置冲突的中文报告
 * @param report - 配置解析报告
 * @returns 格式化的冲突报告文本
 */
export declare function buildConflictReport(report: ConfigResolutionReport): string;
//# sourceMappingURL=resolution.d.ts.map