import { TokenType, Token, Item, GroupInProgress } from './tokens.js'; import { Pos } from './position.js'; export declare abstract class Scanner implements IterableIterator { readonly pos: Pos; readonly synthetic: boolean | undefined; charBuffer: string | null; tokenBuffer: Token | null; delimiters: string; constructor(pos: Pos, synthetic?: boolean); [Symbol.iterator](): IterableIterator; abstract _peekChar(): string | null; abstract _dropChar(): void; peekChar(): string | null; dropChar(): void; shiftChar(): string | null; makeToken(start: Pos, type: TokenType, text: string): Token; makeGroupInProgress(open: Token, items?: Array): GroupInProgress; mark(): Pos; _while(pred: (ch: string | null) => boolean, f: (ch: string | null) => void): void; _collectSpace(buf?: string, start?: Pos): Token; _punct(type: TokenType): Token; _str(q: string, buf: string, isTemplate: boolean): Token; templateConstantFragment(): Token | null; isSpace(ch: string): boolean; isDelimiter(ch: string): boolean; addDelimiters(newDelimiters: string): void; _atom(start?: Pos, buf?: string): Token; _maybeComment(): Token; _peek(): Token | null; peek(): Token | null; drop(): void; shift(): Token | null; next(): IteratorResult; } export declare class StringScanner extends Scanner { readonly input: string; index: number; constructor(pos: Pos, input: string, synthetic?: boolean); _peekChar(): string | null; _dropChar(): void; }