/**
 * ConflictCandidate — runtime-backed intermediate conflict record before trace assembly.
 *
 * @module domain/services/strand/ConflictCandidate
 */
import ConflictTarget from '../../types/conflict/ConflictTarget.ts';
import ConflictResolution from '../../types/conflict/ConflictResolution.ts';
import OpRecord from './OpRecord.ts';
type ConflictKind = 'supersession' | 'eventual_override' | 'redundancy';
type ConflictCandidateFields = {
    kind: ConflictKind;
    target: ConflictTarget;
    winner: OpRecord;
    loser: OpRecord;
    resolution: ConflictResolution;
    noteCodes: string[];
};
/**
 * A runtime-backed intermediate conflict record classified during candidate collection.
 *
 * Instances are frozen on construction.
 */
export default class ConflictCandidate {
    readonly kind: 'supersession' | 'redundancy' | 'eventual_override';
    readonly target: ConflictTarget;
    readonly winner: OpRecord;
    readonly loser: OpRecord;
    readonly resolution: ConflictResolution;
    readonly noteCodes: readonly string[];
    constructor({ kind, target, winner, loser, resolution, noteCodes }: ConflictCandidateFields);
}
export {};
