import type { FunctionRecord, CallGraphEntry } from "../types/index.js"; import type { WorkspaceServices, Config } from "../types/interfaces.js"; /** Log-scale body size: 1 line→0.0, 10→0.50, 30→0.74, 100+→1.0 */ export declare function normalizeBodySize(record: FunctionRecord): number; /** Binary: someone thought this function worth documenting */ export declare function normalizeDocstring(record: FunctionRecord): number; /** Structured metadata depth: tags + deps + sideEffects */ export declare function normalizeDocstringRichness(record: FunctionRecord): number; /** * Parameter count from paramTypes (preferred) or signature parsing (fallback). * Handles all languages: TS sets paramTypes, Java/Go only have signature. */ export declare function normalizeParamCount(record: FunctionRecord): number; export declare function countParamsFromSignature(signature: string): number; /** Call graph in-degree: functions called by many others are architecturally central */ export declare function normalizeCentrality(entry: CallGraphEntry | undefined): number; /** Public API surfaces are more navigational than private helpers */ export declare function normalizeVisibility(record: FunctionRecord): number; /** Classes are dense information aggregates; interfaces define contracts */ export declare function normalizeKind(record: FunctionRecord): number; type DensityWeights = Config["search"]["density"]["weights"]; export declare function computeDensityScore(record: FunctionRecord, callGraphEntry: CallGraphEntry | undefined, weights: DensityWeights): number; /** * Detect getter/setter methods using parser hints + structural fallback: * 1. Parser-confirmed: propertyAccess hint + small body (≤3 lines) * 2. Heuristic fallback: body ≤ 4 lines, 0-1 params, 0 meaningful calls * * Optional isCallNoise predicate filters defensive wrappers (Objects.requireNonNull, * Optional.ofNullable, unwrap, etc.) so they don't disqualify accessors. */ export declare function isAccessor(record: FunctionRecord, callEntry: CallGraphEntry | undefined, constructorNames?: ReadonlySet, isCallNoise?: (target: string) => boolean): boolean; export declare function applyDensityAdjustment(results: Array<{ score: number; record: FunctionRecord | null; [key: string]: unknown; }>, ws: WorkspaceServices, config: Config, options?: { skipTestPenalty?: boolean; constructorNames?: ReadonlySet; isCallNoise?: (target: string) => boolean; }): void; export {}; //# sourceMappingURL=density-scorer.d.ts.map