import { BaseToken, LiteralToken, Token } from './lexer/token'; import Validator from './lexer/validator'; import { ErrorCode } from './types/errors'; import { LexerShape } from './types/lexer'; import { Range } from './types/range'; export interface LexerOptions { validator?: Validator; unsafe?: boolean; tabWidth?: number; } export default class Lexer implements LexerShape { content: string; length: number; index: number; tokenStart: number | null; line: number; lineStart: number; offset: number; tabWidth: number; validator: Validator; errors: Error[]; constructor(content: string, options?: LexerOptions); scan(code: number, afterSpace: boolean): BaseToken | null; isAtWhitespace(): boolean; codeAt(offset?: number): number; createEOL(afterSpace: boolean): Token; createIdentifier(value: string, afterSpace: boolean): Token; createEOF(afterSpace: boolean): Token; createBoolean(value: string, afterSpace: boolean): LiteralToken; createNull(afterSpace: boolean): LiteralToken; createSlice(afterSpace: boolean): Token; createPunctuator(value: string, afterSpace: boolean): Token; createNumericLiteral(value: number, raw: string, afterSpace: boolean): LiteralToken; scanStringLiteral(afterSpace: boolean): LiteralToken | Token; scanComment(afterSpace: boolean): Token; scanNumericLiteral(afterSpace: boolean): Token; scanPunctuator(value: string, afterSpace: boolean): Token; skipWhiteSpace(): void; scanKeyword(keyword: string, afterSpace: boolean): Token; scanIdentifierOrKeyword(afterSpace: boolean): BaseToken; next(): BaseToken; raise(message: string, range: Range, code?: ErrorCode, hint?: string): Token; } export declare const UnsafeLexer: { new (...args: any[]): { _savedIndex: number; _savedLine: number; _savedLineStart: number; _savedOffset: number; recordSnapshot(): void; recoverFromSnapshot(): void; raise(message: string, range: Range, code?: ErrorCode, hint?: string): Token; index: number; line: number; lineStart: number; offset: number; tokenStart: number | null; errors: Error[]; }; } & typeof Lexer; export type UnsafeLexer = InstanceType;