import type { ImplicitParjser, ParjsCombinator } from "../../index"; import type { UserState } from "../state"; /** * Tries to apply the source parser repeatedly until `till` succeeds. Yields the results of the * source parser in an array. * * @param till The parser that indicates iteration should stop. * @param pProject A projection to apply on the captured results. */ export declare function manyTill(till: ImplicitParjser, pProject: (source: TSource[], till: TTill, user: UserState) => TResult): ParjsCombinator; export declare function manyTill(till: ImplicitParjser): ParjsCombinator; /** * Applies `start` and then repeatedly applies the source parser until `pTill` succeeds. Similar to * a mix of `between` and `manyTill`. Yields the results of the source parser in an array. * * @param start The initial parser to apply. * @param pTill Optionally, the terminator. Defaults to `start`. * @param projection Optionally, a projection to apply on the captured results. */ export declare function manyBetween(start: ImplicitParjser, pTill?: ImplicitParjser, projection?: (sources: TSource[], till: TTill | TStart, state: UserState) => TResult): ParjsCombinator; //# sourceMappingURL=many-till.d.ts.map