import { type SutraNode, type SutraIssue, type SutraFeature, type SutraEdge, type SutraContract, type FeatureHealth, type HealthBand } from "./types.js"; /** Band thresholds — documented constants. */ export declare const GREEN_MIN = 80; export declare const AMBER_MIN = 50; export interface BuildFeaturesOptions { contracts?: SutraContract[]; } export interface ComputeHealthContext { featureIssues: SutraIssue[]; nodeCount: number; hasConfidenceData: boolean; hasContractData: boolean; hasTestCoverageData: boolean; tested?: boolean; } /** Derive health band from score using documented thresholds. */ export declare function bandForScore(score: number): HealthBand; /** * Compute composite structural health for one feature. * Deterministic — stable signal order, no random/time inputs. */ export declare function computeFeatureHealth(ctx: ComputeHealthContext): FeatureHealth; /** * Group nodes by heuristic feature id, count issues, compute health. * Returns SutraFeature[] sorted by id (ascending). */ export declare function buildFeatures(nodes: SutraNode[], issues: SutraIssue[], edges?: SutraEdge[], opts?: BuildFeaturesOptions): SutraFeature[];