/** * v2.15.0 follow-up — G10: complexity estimator. * * 12 Gaps memory: the G2 complexity tier drives user-attended vs overnight * scheduling. This service estimates the complexity of a set of files * based on LOC + a few cheap heuristics. * * Tier thresholds (G2 12 Gaps memory): * - trivial : ≤ 50 lines, no async, no IO * - simple : ≤ 200 lines, ≤ 3 exports * - complex : > 200 lines, OR many exports, OR has async/await * * Pure function. CLI: `peaks complexity estimate --files `. */ export type ComplexityTier = 'trivial' | 'simple' | 'complex'; export interface FileComplexity { readonly file: string; readonly lines: number; readonly exports: number; readonly hasAsync: boolean; readonly tier: ComplexityTier; } export interface ComplexityEstimate { readonly files: readonly FileComplexity[]; readonly overall: ComplexityTier; readonly summary: { trivial: number; simple: number; complex: number; }; } export declare function estimateFileComplexity(file: string): FileComplexity | null; export declare function aggregateTier(tiers: readonly ComplexityTier[]): ComplexityTier; export declare function estimateComplexity(projectRoot: string, files: readonly string[]): ComplexityEstimate;