/** * Story 3.4 — ecosystem map pure model (cluster + link rendering metadata). */ import type { LinkResult, LinkedEdge, SutraGraph } from "../types.js"; export interface EcosystemCluster { name: string; path: string; commit?: string; totalNodes: number; endpointIds: string[]; } export interface EcosystemLinkView { edge: LinkedEdge; sourceCluster: string; destCluster: string; reconStatus: string; reconConfirmed: boolean | null; renderClass: string; label: string; } export declare function buildClusters(link: LinkResult, graphsByRepo: Map): EcosystemCluster[]; export declare function linkViewModel(link: LinkResult, graphsByRepo: Map, showUnresolved: boolean): EcosystemLinkView[]; /** Regression guard: broken/unresolved never share confirmed class. */ export declare function honestyClassesDistinct(views: EcosystemLinkView[]): boolean;