import { TokenPosition } from './util'; declare type TokenContent = { type: 'value'; value: unknown; } | { type: 'operator'; value: string; } | { type: 'identifier'; value: string; } | { type: 'keyword'; value: string; }; export declare type Token = TokenContent & TokenPosition; declare class LexerState { readonly strings: readonly string[]; readonly interps: unknown[]; index: number; outerIndex: number; private tokens; constructor(strings: readonly string[], interps: unknown[]); getTokens(): Token[]; push(token: Token | undefined): void; getInterpolation(): ({ type: "value"; value: unknown; } & TokenPosition & { type: 'value'; }) | undefined; hasStrings(): boolean; nextChar(): string | undefined; matchPattern(pattern: RegExp): RegExpExecArray | null; } export declare const identifierPattern: RegExp; export declare const identifierOrOperator: RegExp; export declare class Lexer { private readonly keywords; lexerState: LexerState; mainPattern: RegExp; constructor(keywords: Set, operators: Set); run(strs: readonly string[], interps: unknown[]): Token[]; private mainState; private quote; private comment; } export {};