import { type ModularityAnalysisCapability } from "./source-files.js"; import type { ModularityWaiverConfig } from "./types.js"; export declare const DEFAULT_MODULARITY_LINE_LIMIT = 300; export interface ModularityCheckOptions { touched?: boolean; base?: string; files?: string[]; limit?: number; } export interface ModularityFileReport { relativePath: string; lines: number; metrics: ModularityMetrics; risks: string[]; regressions: string[]; overLimit: boolean; regressed: boolean; baseline?: { lines: number; metrics: ModularityMetrics; risks: string[]; }; waived?: ModularityWaiver; } export interface ModularityMetricLocation { symbol: string; line: number; } export interface ModularityMetrics { analysis: ModularityAnalysisCapability; maxFunctionStatements: number | null; maxFunctionStatementsLocation?: ModularityMetricLocation; maxBranchComplexity: number | null; maxBranchComplexityLocation?: ModularityMetricLocation; exports: number | null; stateTransitions: number | null; responsibilities: string[] | null; } export interface ModularityCheckReport { limit: number; files: ModularityFileReport[]; warnings: string[]; waivedWarnings: string[]; errors: string[]; } export interface ModularityWaiver { relativePath: string; category: string; owner: string; introducedAt: string; reason: string; trackingIssue: string; expiryCondition: string; } export declare function isLifecycleCompleteModularityWaiverConfig(value: unknown): value is ModularityWaiverConfig; export declare function runModularityCheck(projectRoot: string, options: ModularityCheckOptions): Promise; export declare function analyzeModularity(content: string, relativePath?: string): ModularityMetrics; export declare function hasLegacyHeuristicOnlyWaiverRisk(content: string, relativePath: string, lineLimit: number): boolean; export declare function countPhysicalLines(content: string): number; export declare function isLikelyGeneratedSourceContent(content: string): boolean;