import * as O from "../../../../Option"
import type * as Tp from "../../Tuple"
import type { Chunk } from "../core"
/**
 * Constructs a `Chunk` by repeatedly applying the function `f` as long as it
 * returns `Some`.
 */
export declare function unfold_<A, S>(
  s: S,
  f: (s: S) => O.Option<Tp.Tuple<[A, S]>>
): Chunk<A>
/**
 * Constructs a `Chunk` by repeatedly applying the function `f` as long as it
 * returns `Some`.
 *
 * @dataFirst unfold_
 */
export declare function unfold<A, S>(
  f: (s: S) => O.Option<Tp.Tuple<[A, S]>>
): (s: S) => Chunk<A>
//# sourceMappingURL=unfold.d.ts.map
