import { Result, StringUtils } from "../common"; import { Comment, Token } from "../language"; import { Lexer } from ".."; import { LexError } from "."; export type TriedLexerSnapshot = Result; export declare class LexerSnapshot { readonly text: string; readonly tokens: ReadonlyArray; readonly comments: ReadonlyArray; readonly lineTerminators: ReadonlyArray; private readonly precedingDirectivesByLineNumber; private readonly lineGraphemeCache; constructor(text: string, tokens: ReadonlyArray, comments: ReadonlyArray, lineTerminators: ReadonlyArray, precedingDirectivesByLineNumber: ReadonlyMap>); static graphemePositionStartFrom(text: string, lineTerminators: ReadonlyArray, flatLineToken: Token.Token | FlatLineToken): StringUtils.GraphemePosition; graphemePositionStartFrom(token: Token.Token): StringUtils.GraphemePosition; columnNumberStartFrom(token: Token.Token): number; getPrecedingDirectives(lineNumber: number): ReadonlyArray | undefined; } export declare function trySnapshot(state: Lexer.State): TriedLexerSnapshot; interface LineTerminator { readonly codeUnit: number; readonly text: string; } interface FlatLineToken extends Token.IToken { readonly flatIndex: number; } export {};