import type { SourceLocation } from "../types/base.js"; export type SourceMapLocation = { line: number; col: number; }; export type SourceMap = Record>; export declare class SourceMapBuilder { private currentKey; /** How many leading ids of the builder's step path belong to the scopes * above the current one. A block helper (a fork body, a block argument) * runs under a runner of its own, whose step paths start at 0, so its * records drop the path of the statement that holds the block: the * first statement of a fork body at builder path `[2, 0]` is step `0` * at run time. */ private base; private enclosing; private map; /** Enter a function or node scope, whose step paths start at the root. */ enterScope(moduleId: string, scopeName: string): void; /** Enter a block scope inside the current one. `base` is the length of * the builder's step path at the block, the part its records drop. */ enterBlockScope(moduleId: string, scopeName: string, base: number): void; /** Return to the scope that holds the block. */ exitBlockScope(): void; record(subStepPath: number[], loc: SourceLocation | undefined): void; build(): SourceMap; }