/** * Canonical copies for the two persisted task-affinity artifacts. * * `stableStringify` sorts object keys but deliberately preserves array order, * while `writeJsonFile` preserves both object insertion order and array order. * These artifacts therefore need one semantic canonicalization boundary shared * by construction, persistence, and metadata hashing. */ export declare function compareCodeUnits(left: string, right: string): number; export interface CanonicalAuditTaskShape { task_id: string; file_paths: string[]; file_line_counts?: Record; line_ranges?: Array<{ path: string; start: number; end: number; }>; inputs?: Record; tags?: string[]; } export declare function canonicalizeAuditTasks(tasks: ReadonlyArray): T[]; export interface CanonicalAffinityNodeShape { task_id: string; file_paths: string[]; } export interface CanonicalAffinityEdgeShape { from: string; to: string; kind: string; weight: number; reason?: string; } export interface CanonicalAffinityGraphShape { schema_version: string; nodes: CanonicalAffinityNodeShape[]; edges: CanonicalAffinityEdgeShape[]; } export declare function canonicalizeTaskAffinityGraph(graph: T): T; /** Apply the affinity canonicalizer only at the two artifact-name seams. */ export declare function canonicalizeAffinityArtifactValue(artifactName: string, value: unknown): unknown; //# sourceMappingURL=affinityArtifacts.d.ts.map