import { type DataSource, type ResolvedData, type BatchResolution } from '../types/source-resolution.js';
/**
 * Resolve a conflict among multiple data sources by selecting the
 * highest-priority non-null value.
 *
 * @param sources - Array of data sources, each with a priority and value.
 * @param fieldName - Human-readable name of the field being resolved (for the explanation).
 * @returns The resolved data with full explanation of the decision.
 *
 * @example
 * ```ts
 * const result = resolveConflict([
 *   { priority: 'spec-baseline', value: 'draft', label: 'spec.md' },
 *   { priority: 'progress', value: 'implementing', label: 'progress.md' },
 * ], 'status');
 * // result.value === 'implementing' (progress > spec-baseline)
 * ```
 */
export declare function resolveConflict<T>(sources: DataSource<T>[], fieldName: string): ResolvedData<T> | null;
/**
 * Resolve multiple fields at once, returning a batch result.
 *
 * @param fieldSources - Map of field name to its data sources.
 * @returns Batch resolution with all fields resolved and a summary.
 */
export declare function resolveConflictBatch(fieldSources: Record<string, DataSource[]>): BatchResolution;
/**
 * Convenience: resolve a status conflict from common spec sources.
 * This is the most common use case — status appearing in multiple files.
 */
export declare function resolveStatusConflict(statusSources: {
    specMd?: string | null;
    progressMd?: string | null;
    wipTracker?: string | null;
    gitDerived?: string | null;
    explicit?: string | null;
}): ResolvedData<string> | null;
//# sourceMappingURL=source-resolver.d.ts.map