/** * funder-network — bipartite funder↔paper analytics (#1500). * * Port of profiles/funder_network.py: per-funder paper/A-grade/mean-grade rollup, * mean CD-index + novelty-bias (reusing the #1501 CD-index), and co-funding * clusters. Funder linkage comes from the #1497 parser (`funders[]` on each REF). * FUNDER_ALIASES are NOT ported — the optional acknowledgement scan reads a * corpus-local `documentation/profiles/funder-aliases.yaml` (absent → no aliasing). * * @source historical: profiles/funder_network.py * Reference: Wang et al. 2017 (novelty bias); Funk & Owen-Smith 2017 (novelty). */ export interface FunderRow { funderId: string; paperCount: number; aGradeCount: number; meanGrade: number | null; meanCdIndex: number | null; noveltyBias: 'below-baseline' | 'baseline' | 'above-baseline' | null; topTopics: string[]; yearRange: [number, number] | null; papers: string[]; } export interface CofundingCluster { paper: string; funders: string[]; count: number; } /** Load corpus-local funder aliases (raw lowercase name → PROF-F/PROF-O id) + novelty baseline. */ export declare function loadFunderAliases(corpusRoot: string): { aliases: Map; baseline: number; }; /** Per-funder analytics, ranked by paper count. */ export declare function funderRows(corpusRoot: string, opts?: { scanAcks?: boolean; }): FunderRow[]; /** Papers with ≥2 funders (co-funding), ranked by funder count. */ export declare function cofundingClusters(corpusRoot: string): CofundingCluster[]; /** Render the funder-network markdown index. */ export declare function renderFunderNetwork(rows: FunderRow[], clusters: CofundingCluster[]): string; //# sourceMappingURL=funder-network.d.ts.map