/**
 * Pure metric computations extracted from complexity.js.
 *
 * Contains Halstead derived metrics, LOC metrics, and Maintainability Index —
 * all stateless math that can be reused by visitor-based and standalone paths.
 */
import type { HalsteadDerivedMetrics, LOCMetrics, TreeSitterNode } from '../types.js';
/**
 * Compute Halstead derived metrics from raw operator/operand counts.
 *
 * @param {Map<string, number>} operators - operator type/text → count
 * @param {Map<string, number>} operands  - operand text → count
 * @returns {{ n1: number, n2: number, bigN1: number, bigN2: number, vocabulary: number, length: number, volume: number, difficulty: number, effort: number, bugs: number }}
 */
export declare function computeHalsteadDerived(operators: Map<string, number>, operands: Map<string, number>): HalsteadDerivedMetrics;
/**
 * Compute LOC metrics from a function node's source text.
 *
 * @param {object} functionNode - tree-sitter node
 * @param {string} [language] - Language ID (falls back to C-style prefixes)
 * @returns {{ loc: number, sloc: number, commentLines: number }}
 */
export declare function computeLOCMetrics(functionNode: TreeSitterNode, language?: string): LOCMetrics;
/**
 * Compute normalized Maintainability Index (0-100 scale).
 *
 * @param {number} volume - Halstead volume
 * @param {number} cyclomatic - Cyclomatic complexity
 * @param {number} sloc - Source lines of code
 * @param {number} [commentRatio] - Comment ratio (0-1), optional
 * @returns {number} Normalized MI (0-100)
 */
export declare function computeMaintainabilityIndex(volume: number, cyclomatic: number, sloc: number, commentRatio?: number): number;
//# sourceMappingURL=metrics.d.ts.map