import { ParserLike, ParserValue } from "./combinators"; declare type DeepFlattened = T extends ReadonlyArray ? DeepFlattened : T; declare type Tail = T extends readonly [any, ...infer U] ? U : []; declare type Flatten = { 0: []; 1: T[0] extends unknown[] ? [...T[0], ...Flatten>] : [T[0], ...Flatten>]; }[T extends [] ? 0 : 1]; declare module "./parser" { interface Parser { map: (mapFn: (v: T) => U) => Parser; tap: (tapFn: (v: T) => any) => Parser; desc: (expected: string) => this; join: (sep?: string) => T extends string[] ? Parser : never; concat(unit: U): ParserValue extends unknown[] ? T extends unknown[] ? Parser<[...T, ...ParserValue]> : Parser<[T, ...ParserValue]> : T extends unknown[] ? Parser<[...T, ParserValue]> : Parser<[T, ParserValue]>; plus(unit: U): ParserValue extends unknown[] ? T extends unknown[] ? Parser<[...T, ...ParserValue]> : Parser<[T, ...ParserValue]> : T extends unknown[] ? Parser<[...T, ParserValue]> : Parser<[T, ParserValue]>; flatDeep(): T extends [...unknown[]] ? Parser[]> : Parser; flat(): T extends readonly any[] ? Parser> : Parser; pick1: (key: I) => T extends object | any[] ? Parser : never; sepBy: (sepLike: ParserLike) => Parser; sepBy1: (sepLike: ParserLike) => Parser; many: () => Parser; chain: (chainFn: (v: T) => Parser) => Parser; assert: (checkFn: (v: T) => boolean) => this; not: (notParser: ParserLike) => Parser; fallback: (fallbackResult: U) => Parser; wrap: (leftLike: ParserLike, rightLike?: ParserLike) => Parser; trim(): Parser; trim(quoteLike: ParserLike): Parser; trim(leftLike: ParserLike, rightLike: ParserLike): Parser; trimL: (leftLike?: ParserLike) => Parser; trimR: (rightLike?: ParserLike) => Parser; or: (altLike: U) => Parser>; times(min: number, max: number): Parser; times(count: number): Parser; atLeast: (count: number) => Parser; atMost: (count: number) => Parser; premap: (fn: (input: string) => string) => Parser; skip: (skip: ParserLike) => Parser; then: (parser: U) => Parser>; mark: () => Parser>; of: (value: U) => Parser; node: (nodeName: NAME) => Parser>; notFollowedBy: (notParser: ParserLike) => Parser; followedBy: (followParser: ParserLike) => Parser; withRawText: () => Parser<{ value: T; rawText: string; }>; label: (name: U) => readonly [U, Parser]; pipe(a: (t: this) => A): A; pipe(a: (t: this) => A, ab: (a: A) => B): B; pipe(a: (t: this) => A, ab: (a: A) => B, bc: (b: B) => C): C; pipe(a: (t: this) => A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D): D; pipe(a: (t: this) => A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E): E; } } export {}; //# sourceMappingURL=parser-method.d.ts.map