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