/**
 * ConflictTraceAssembler — groups candidates into traces, filters, and hashes.
 *
 * @module domain/services/strand/ConflictTraceAssembler
 */
import ConflictTrace from '../../types/conflict/ConflictTrace.ts';
import type ConflictCandidate from './ConflictCandidate.ts';
import type OpRecord from './OpRecord.ts';
import type ConflictTarget from '../../types/conflict/ConflictTarget.ts';
import type ConflictResolution from '../../types/conflict/ConflictResolution.ts';
import type ConflictDiagnostic from '../../types/conflict/ConflictDiagnostic.ts';
import type ConflictResolvedCoordinate from '../../types/conflict/ConflictResolvedCoordinate.ts';
import type ConflictAnalysisRequest from './ConflictAnalysisRequest.ts';
import type ConflictPipelineContext from './ConflictPipelineContext.ts';
type ConflictKind = 'supersession' | 'redundancy' | 'eventual_override';
type GroupedConflict = {
    target: ConflictTarget;
    kind: ConflictKind;
    winner: OpRecord;
    losers: OpRecord[];
    resolution: ConflictResolution;
    noteCodes: Set<string>;
};
/**
 * Groups conflict candidates by their deterministic group key.
 */
export declare function groupCandidates(candidates: ConflictCandidate[]): Map<string, GroupedConflict>;
/**
 * Transforms grouped conflicts into sorted, finalized ConflictTrace records.
 */
export declare function buildConflictTraces(context: ConflictPipelineContext, { grouped, evidence, resolvedCoordinate, }: {
    grouped: Iterable<GroupedConflict>;
    evidence: 'summary' | 'standard' | 'full';
    resolvedCoordinate: ConflictResolvedCoordinate;
}): Promise<ConflictTrace[]>;
/**
 * Filters an array of conflict traces against analysis options.
 */
export declare function filterTraces(traces: ConflictTrace[], request: ConflictAnalysisRequest): ConflictTrace[];
/**
 * Computes a snapshot hash over the entire analysis result.
 */
export declare function buildAnalysisSnapshotHash(context: ConflictPipelineContext, { resolvedCoordinate, request, truncated, diagnostics, traces, }: {
    resolvedCoordinate: ConflictResolvedCoordinate;
    request: ConflictAnalysisRequest;
    truncated: boolean;
    diagnostics: ConflictDiagnostic[];
    traces: ConflictTrace[];
}): Promise<string>;
/**
 * Computes a snapshot hash for an analysis that found zero conflicts.
 */
export declare function buildEmptySnapshotHash(context: ConflictPipelineContext, { resolvedCoordinate, request, }: {
    resolvedCoordinate: ConflictResolvedCoordinate;
    request: ConflictAnalysisRequest;
}): Promise<string>;
export {};
