import { type Coverage } from '../analyzers/tools/coverage';
import type { LanguageSupport } from './types';
/**
 * Build a per-package-name index mapping each installed npm package to
 * the set of root manifest entries (top-level deps) it rolls up under.
 *
 * Strategy: BFS the lockfile starting from each root `dependencies` /
 * `devDependencies` name, following each visited package's own
 * `dependencies` map. Each lockfile entry for a given name contributes
 * its direct-child names — duplicated copies (nested `node_modules/`)
 * are all consulted so attribution matches npm's resolution at any
 * ancestor path. Attribution is coarse at the package-name level
 * (ignores which exact version serves which parent) — matches Snyk's
 * own grouping in their UI and is what bom + HTML renders group on.
 *
 * Exported for unit tests; pure function over parsed lockfile JSON so
 * fixtures don't need filesystem setup.
 */
export declare function buildTsTopLevelDepIndex(lock: unknown): Map<string, string[]>;
/**
 * Capture raw TS/JS module specifiers from source text. The imports
 * capability batch-calls this while walking the pack's source extensions;
 * unit tests exercise it directly for parse-correctness cases.
 */
export declare function extractTsImportsRaw(content: string): string[];
/**
 * Resolve a TS/JS module specifier to an in-project relative file path,
 * or null for external packages and unresolvable specifiers. Exported so
 * unit tests can exercise resolution directly; the imports capability
 * calls it while building per-file edges.
 */
export declare function resolveTsImportRaw(fromFile: string, spec: string, cwd: string): string | null;
/** Istanbul coverage-summary.json: `{ "total": {...}, "/abs/path": {...} }`. */
export declare function parseIstanbulSummary(raw: string, sourceFile: string, cwd: string): Coverage;
/** Istanbul coverage-final.json: `{ "/abs/path": { s: { "0": 1, "1": 0, ... }, statementMap: {...} } }`. */
export declare function parseIstanbulFinal(raw: string, sourceFile: string, cwd: string): Coverage;
export declare const typescript: LanguageSupport;
//# sourceMappingURL=typescript.d.ts.map