import type { QualityIntelligence } from "@oscharko-dev/keiko-contracts";
/**
 * Compute the canonical equivalence signature for a candidate. Exported so
 * callers (validators, audit-summary builders) can inspect what makes two
 * candidates collide without re-implementing the rule.
 *
 * @returns Lower-case hex sha256 of the canonical projection.
 */
export declare const computeCandidateEquivalenceSignature: (candidate: QualityIntelligence.QualityIntelligenceTestCaseCandidate) => string;
/**
 * Returns the deduplicated subset of `candidates`. Order is the original
 * input order with duplicates removed (the lexicographically-smallest `id`
 * within each equivalence class is the survivor). Empty input returns the
 * empty array.
 */
export declare const deduplicateCandidates: (candidates: readonly QualityIntelligence.QualityIntelligenceTestCaseCandidate[]) => readonly QualityIntelligence.QualityIntelligenceTestCaseCandidate[];
//# sourceMappingURL=deduplication.d.ts.map