import { EventEmitter } from "../runtime/async/event-emitter"; export interface RecursiveDescentParser = any> extends EventEmitter { readonly input: string; loc: number; offsetToColRow: (offset: number) => ColRow; colRowToOffset: (colRow: ColRow) => number; getAroundText: (loc: number, length?: number, window?: number) => string; try(pattern: Pattern): Token | undefined; accept(pattern: Pattern): Token | undefined; expect(acceptPattern: Pattern, expectedPatterns?: Pattern[], mistakePatterns?: Pattern[]): Token; } export interface RecursiveDescentParserConfig { debug: boolean; } export interface Span { start: number; end: number; } export interface ColRow { col: number; row: number; } export interface Token extends Span { text: string; } export type Pattern = string | RegExp | typeof eof; export declare const eof: unique symbol; export declare function createRecursiveDescentParser = any>(input: string, config?: Partial): RecursiveDescentParser; export declare class SyntaxError extends Error { parser: RecursiveDescentParser; expectedPatterns: Pattern[]; mistakePatterns: Pattern[]; constructor(parser: RecursiveDescentParser, expectedPatterns: Pattern[], mistakePatterns?: Pattern[]); get got(): string | typeof eof; get colRow(): ColRow; }