/** * Shared impact-analysis trust contract. * * The contract is intentionally pure and tool-neutral: graph computes impact, * fitness consumes it for conservative changed-targeting, and suite/review * surfaces can project the same verdict without learning graph internals. */ export type ImpactTrustCoverage = 'full' | 'partial' | 'unknown'; export type ImpactTrustFallback = 'targeted' | 'full-run'; export type ImpactTrustSource = 'git' | 'files' | 'catalog' | 'impact' | 'suite'; export type ImpactUncertaintyCode = 'git-shallow' | 'git-merge-base-unavailable' | 'changed-file-deleted' | 'changed-file-renamed' | 'changed-file-unmatched' | 'graph-catalog-unavailable' | 'graph-catalog-incomplete' | 'graph-catalog-approximate' | 'impact-uncertainty-truncated' | 'impact-truncated' | 'impact-malformed-row-omitted' | 'suite-step-unverified'; export interface ImpactUncertainty { readonly code: ImpactUncertaintyCode; readonly source: ImpactTrustSource; readonly message: string; readonly filePath?: string; } export interface ImpactTrust { readonly coverage: ImpactTrustCoverage; readonly fallback: ImpactTrustFallback; readonly fullyVerified: boolean; readonly uncertainties: readonly ImpactUncertainty[]; } export interface BuildImpactTrustInput { readonly uncertainties?: readonly ImpactUncertainty[]; readonly fallback?: ImpactTrustFallback; } export interface ImpactTrustChangedEntryInput { readonly path: string; readonly status?: string; readonly previousPath?: string; } export interface ImpactTrustGitWarningInput { readonly code: string; readonly message: string; } export declare const MAX_IMPACT_UNCERTAINTIES = 50; export declare function buildImpactTrust(input?: BuildImpactTrustInput): ImpactTrust; export declare function mergeImpactUncertainties(...groups: readonly (readonly ImpactUncertainty[] | undefined)[]): readonly ImpactUncertainty[]; export declare function gitWarningsToImpactUncertainties(warnings: readonly ImpactTrustGitWarningInput[] | undefined): readonly ImpactUncertainty[]; export declare function changedEntriesToImpactUncertainties(entries: readonly ImpactTrustChangedEntryInput[]): readonly ImpactUncertainty[]; export declare const FULL_IMPACT_TRUST: ImpactTrust; //# sourceMappingURL=impact-trust.d.ts.map