import type { PipelineContext } from '../types.js'; export declare function buildFunctionIndex(ctx: PipelineContext): { byFilePath: Map>; nameCounts: Map; }; /** A callable node with a known line range, used to attribute a call to its caller. */ export interface EnclosingSymbol { id: string; startLine: number; endLine: number; } /** * Line ranges of every callable, grouped by file, innermost-first. * * Call edges are attributed to the enclosing function rather than the file. * Attributing them to the file makes a function appear "used" by its own file * purely because it is declared there, which silently disabled dead-export * detection: `detectDeadCodeNodes` rejects any candidate with an inbound CALLS * edge, and that self-edge always existed. */ export declare function buildEnclosingIndex(ctx: PipelineContext): Map; /** Line-start offsets, for turning a match offset into a 1-based line number. */ export declare function buildLineOffsets(source: string): number[]; export declare function lineAtOffset(lineOffsets: number[], offset: number): number; /** * The innermost callable containing `offset`, or null when the call sits at * module top level — which is genuinely file-scoped, so the file node stays * the correct source for those. */ export declare function findEnclosingSymbolId(enclosing: EnclosingSymbol[] | undefined, lineOffsets: number[], offset: number | undefined): string | null; //# sourceMappingURL=scope-resolution-function-index.d.ts.map