/**
 * ConflictCandidateCollector — mutable accumulator for conflict candidates.
 *
 * Owns the per-frame analysis pipeline: raw op → canonical op → target identity →
 * effect digest → OpRecord → immediate/eventual candidate classification.
 *
 * @module domain/services/strand/ConflictCandidateCollector
 */
import type ConflictDiagnostic from '../../types/conflict/ConflictDiagnostic.ts';
import type ConflictCandidate from './ConflictCandidate.ts';
import type OpRecord from './OpRecord.ts';
import type ConflictPipelineContext from './ConflictPipelineContext.ts';
import { type PatchFrame } from './conflictCandidateAnalysis.ts';
export { inferCausalRelation } from './conflictCandidateAnalysis.ts';
/**
 * Mutable accumulator for conflict candidates during frame analysis.
 *
 * Use the static `collect` factory to build a fully populated instance.
 */
export declare class ConflictCandidateCollector {
    propertyWinnerByTarget: Map<string, OpRecord>;
    propertyAppliedHistory: Map<string, OpRecord[]>;
    equivalentWinnerByTargetEffect: Map<string, OpRecord>;
    candidates: ConflictCandidate[];
    /**
     * Creates an empty collector. Use `ConflictCandidateCollector.collect()` to populate.
     */
    constructor();
    /**
     * Walks all patch frames, builds op records, and classifies conflict candidates.
     */
    static collect(context: ConflictPipelineContext, { patchFrames, scannedPatchShas, diagnostics, }: {
        patchFrames: PatchFrame[];
        scannedPatchShas: Set<string>;
        diagnostics: ConflictDiagnostic[];
    }): Promise<ConflictCandidateCollector>;
}
