import { RecordType } from './claim-evidence-types.js'; import type { ContestabilityReceipt } from './accountability/types/contestability.js'; /** * A contestation taints downstream receipts iff the controller has * upheld or remedied it. Filed/under_review contestations record a * dispute but do not yet justify cascade. Rejected/expired/abandoned * contestations never taint. */ export declare function isContestationTainting(c: ContestabilityReceipt): boolean; export interface TaintedRecord { receiptId: string; recordType: RecordType; taintReason: string; /** 1 = direct reference to the contested action_id. 2+ = transitive. */ taintDepth: number; } export interface TaintedSet { rootActionId: string; rootContestationId: string; tainted: TaintedRecord[]; } export interface TaintCandidate { receiptId: string; recordType: RecordType; /** Receipt_ids this candidate depends on. The caller decides which * of its own fields qualify as references. */ references: string[]; } export declare function computeDownstreamTaint(contestation: ContestabilityReceipt, candidates: TaintCandidate[]): TaintedSet | null; //# sourceMappingURL=downstream-taint.d.ts.map