/**
 * Per-file focus scoring for query- and path-focused repo maps.
 *
 * `computeFocusScores` produces an additive relevance score per file — keyed by
 * ABSOLUTE path so it shares the key space of `ParsedFile.path` and
 * `RankedFile.path` — from three signals:
 *   - a free-text `query` matched against paths, symbol names, signatures,
 *     jsdoc, and (capped) excerpt/content,
 *   - explicit focus `paths` (exact file or directory prefix), and
 *   - graph neighbors of the path seeds, walked over the import/call/inherit
 *     graph up to `graphDepth`.
 *
 * It makes no ranking or budgeting decisions of its own — `buildRepoMap` blends
 * the score with the global structural rank to decide admission order. Kept
 * dependency-free (types + `normalizePath` + `node:path`) so it stays trivially
 * testable and within the `code` module boundary.
 */
import type { CodebaseIndex } from './types.js';
/** Opt-in focus selector. Structurally compatible with `RepoMapFocus` in `map.ts`. */
export interface FocusInput {
    query?: string;
    paths?: string[];
    /** Graph-neighbor radius for path seeds. Default 1; 0 disables neighbor expansion. */
    graphDepth?: number;
}
export interface FileFocus {
    score: number;
    reasons: string[];
}
/** Compute per-file focus relevance, keyed by absolute file path. */
export declare function computeFocusScores(index: CodebaseIndex, focus: FocusInput): Map<string, FileFocus>;
