import { Token as AntlrToken, type Lexer } from "antlr4ng"; import type { Dialect } from "../dialect.js"; import type { ConsumedAs } from "./consumed-as.js"; import type { Token } from "./token.js"; /** * Map a list of antlr tokens to neutral `Token`s for the given dialect. * Order is preserved, trivia is kept, and the EOF sentinel is skipped. Spans * (start/stop/line/column) are copied verbatim so positions round-trip exactly. * * `consumedAs` is the tokenIndex -> verdict map `deriveConsumedAs` (consumed-as.ts) built from * this same parse's CST. Omitted entirely by `tokenize()` (lexer-only, no parse ran, no CST to * derive from): every `Token.consumedAs` field stays absent in that case. When present, only * KEYWORD-role tokens ever get the field set; every other role is untouched, matching * `Token.consumedAs`'s doc. */ export declare function mapTokens(lexer: Lexer, antlrTokens: AntlrToken[], dialect: Dialect, consumedAs?: Map): Token[];