import { NamedMatch, NamedRegExp } from "./characters"; import { Mapper } from "./collections"; export declare class NamedRegexParser implements Parser { protected regex: NamedRegExp; constructor(regex: NamedRegExp); parse(value: string): NamedMatch[]; parseAll(value: string): NamedMatch[][]; } export declare function namedRegexParser(regex: NamedRegExp): NamedRegexParser; export declare class PreProcessor implements Parser { private delegate; private mapper; constructor(delegate: Parser, mapper: Mapper); parse(value: string): T; parseAll(value: string): T[]; } export declare function preProcess(delegate: Parser, mapper: Mapper): PreProcessor; export declare class MappingParser implements Parser { private parser; private mapper; constructor(parser: Parser, mapper: Mapper); parse(value: string): B; parseAll(value: string): B[]; } export declare function mappingParser(parser: Parser, mapper: Mapper): MappingParser; export interface Parser { parse(value: string): T; parseAll(value: string): T[]; } export declare class IdentityParser implements Parser { parse(value: string): string; parseAll(value: string): string[]; } export declare class FailParser implements Parser { parse(value: string): any; parseAll(value: string): any[]; } export declare class OrParser implements Parser { private readonly parsers; constructor(parsers: Parser[]); parse(value: string): T; parseAll(value: string): T[]; } export declare function or(...parsers: Parser[]): Parser; export declare function parsers(...parsers: Parser[]): Parser; export declare class AllParser implements Parser { private readonly parsers; constructor(parsers: Parser[]); parse(value: string): T; parseAll(value: string): T[]; } export declare function all(...parsers: Parser[]): Parser; export declare class CachingParser implements Parser { private parser; constructor(parser: Parser); parse(value: string): T; parseAll(value: string): T[]; } export declare const extraDelimiters = " -/";