import type { Parser } from '../../libs/standard-parser'; import type { Combinator } from './combinator.types'; /** * Given a `Parser`, repeatedly runs that parser until it fails. * * @param parser - Any `Parser` * @return A `Combinator` that succeeds as long as the parser succeeds * a single time. */ export declare const repeat: (parser: Parser) => Parser<[T, ...T[]], unknown>; /** * Given a `Parser` (`terminator`), returns a `Combinator` that repeatedly runs a * `Parser` until it either fails or the `terminator` succeeds. Note: The `Parser` * passed to the constructed function must succeed at least once before the * `terminator` will be attempted. * * @param terminator - Any `Parser`. * @return A `Combinator`. */ export declare const repeatUntilTerminator: (terminator: Parser) => Combinator], T[]>;