import { Stream } from "@effect/core/stream/Stream/definition";
import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Schedule } from "@effect/core/io/Schedule/definition";
import { Channel } from "@effect/core/stream/Channel/definition/base";
import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
import { Effect } from "@effect/core/io/Effect/definition";
/**
 * Repeats each element of the stream using the provided schedule. When the
 * schedule is finished, then the output of the schedule will be emitted into
 * the stream. Repetitions are done in addition to the first execution, which
 * means using `Schedule.recurs(1)` actually results in the original effect,
 * plus an additional recurrence, for a total of two repetitions of each value
 * in the stream.
 *
 * This function accepts two conversion functions, which allow the output of
 * this stream and the output of the provided schedule to be unified into a
 * single type. For example, `Either` or similar data type.
 * @tsplus fluent ets/Stream repeatElementsWith
 * @tsplus location "@effect/core/stream/Stream/operations/repeatElementsWith"
 */
export declare function repeatElementsWith_<R, E, A, S, R2, B, C1, C2>(self: Stream<R, E, A>, schedule: LazyArg<Schedule<S, R2, unknown, B>>, f: (a: A) => C1, g: (b: B) => C2, __tsplusTrace?: string): Stream<R | R2, E, C1 | C2>;
/**
 * Repeats each element of the stream using the provided schedule. When the
 * schedule is finished, then the output of the schedule will be emitted into
 * the stream. Repetitions are done in addition to the first execution, which
 * means using `Schedule.recurs(1)` actually results in the original effect,
 * plus an additional recurrence, for a total of two repetitions of each value
 * in the stream.
 *
 * This function accepts two conversion functions, which allow the output of
 * this stream and the output of the provided schedule to be unified into a
 * single type. For example, `Either` or similar data type.
 * @tsplus static ets/Stream/Aspects repeatElementsWith
 * @tsplus pipeable ets/Stream repeatElementsWith
 * @tsplus location "@effect/core/stream/Stream/operations/repeatElementsWith"
 */
export declare const repeatElementsWith: <A, S, R2, B, C1, C2>(schedule: import("@tsplus/stdlib/data/Function").LazyArg<import("../../../io/Schedule").Schedule<S, R2, unknown, B>>, f: (a: A) => C1, g: (b: B) => C2, __tsplusTrace?: string) => <R, E>(self: import("../definition").Stream<R, E, A>) => import("../definition").Stream<R | R2, E, C1 | C2>;
//# sourceMappingURL=repeatElementsWith.d.ts.map