/** * Profile→REF edges as first-class graph data (#1501, reassigned from #1502). * * TS-native port of section9 `scripts/profiles/build_profile_edges.py`. Builds * the entity-profile → reference edge graph from `loadProfiles` (PROF-{P,O,G,F,S} * `corpus-refs`), reconciled against the citation graph so only edges to REFs * that actually exist in the corpus are kept (the source script emitted synthetic * `documentation/profiles/edges/` files; per the issue these are first-class * graph adjacency objects instead, reconcilable with the #727 graph backends). * * @source historical: profiles/build_profile_edges.py * @tests @test/unit/artifacts/profile-edges.test.ts */ export interface ProfileEdge { profId: string; profileType: string; ref: string; } export interface ProfileEdgeGraph { edges: ProfileEdge[]; /** profId → { name, type, refs[] } */ byProfile: Map; /** ref → profIds that link to it (profile in-degree) */ byRef: Map; /** refs cited by a profile's corpus-refs that have no corresponding ref doc. */ danglingRefs: Array<{ profId: string; ref: string; }>; stats: { profiles: number; edges: number; refsCovered: number; }; } /** Build the profile→REF edge graph, keeping only edges to REFs present in the corpus. */ export declare function buildProfileEdges(corpusRoot: string): ProfileEdgeGraph; export declare function renderProfileEdges(g: ProfileEdgeGraph): string; //# sourceMappingURL=profile-edges.d.ts.map