import { Pattern, RecursiveDescentParser, Span, Token } from "./recursive-descent-parser"; export interface AcceptFn { (parser: RecursiveDescentParser): T | undefined; } export declare function many(parser: RecursiveDescentParser, acceptFn: AcceptFn): T[]; export declare function flipFlop(parser: RecursiveDescentParser, flipFn: AcceptFn, flopFn: AcceptFn, skipWsFn?: AcceptFn): (T | U)[]; export declare function choice(acceptFns: AcceptFn[]): AcceptFn; export declare function mergeSpans(spans: (undefined | Span | (undefined | Span)[])[]): Span; export declare function acceptSpecialToken(parser: RecursiveDescentParser, type: TType, pattern?: Pattern): (Token & { type: TType; }) | undefined; export declare function expectSpecialToken(parser: RecursiveDescentParser, type: TType, pattern?: Pattern): Token & { type: TType; }; export declare function acceptPatternAndThen(pattern: Pattern, then: (token: Token) => T): AcceptFn;