import type { MetricValue } from '../../../types/index.js';
import type { MetricPass, MetricContext } from '../metric-pass.js';
/**
 * Cohesion Metrics Pass (CK Suite)
 *
 * Emits per-type LCOM values, plus LCOM_avg aggregate.
 *
 * LCOM (Lack of Cohesion in Methods) — Henderson-Sellers variant:
 *   For each pair of methods (Mi, Mj) in the class:
 *     P++  if they share NO instance fields (less cohesion)
 *     Q++  if they share AT LEAST ONE instance field (more cohesion)
 *   LCOM = max(P - Q, 0)
 *
 * Field access is inferred from DFG defs and uses within each method's
 * line range that refer to a name matching an instance field of the class.
 * Types with fewer than 2 methods get LCOM = 0.
 */
export declare class CohesionMetricsPass implements MetricPass {
    readonly name = "cohesion-metrics";
    run(ctx: MetricContext): MetricValue[];
}
//# sourceMappingURL=cohesion-metrics-pass.d.ts.map