import { Sink } from "@effect/core/stream/Sink/definition/base";
import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Effect } from "@effect/core/io/Effect/definition";
import { Tuple } from "@tsplus/stdlib/data/Tuple/definition";
/**
 * Summarize a sink by running an effect when the sink starts and again when
 * it completes
 * @tsplus fluent ets/Sink summarized
 * @tsplus location "@effect/core/stream/Sink/operations/summarized"
 */
export declare function summarized_<R, E, R1, E1, In, L, Z, B, C>(self: Sink<R, E, In, L, Z>, summary: LazyArg<Effect<R1, E1, B>>, f: (x: B, y: B) => C, __tsplusTrace?: string): Sink<R | R1, E | E1, In, L, Tuple<[Z, C]>>;
/**
 * Summarize a sink by running an effect when the sink starts and again when
 * it completes.
 * @tsplus static ets/Sink/Aspects summarized
 * @tsplus pipeable ets/Sink summarized
 * @tsplus location "@effect/core/stream/Sink/operations/summarized"
 */
export declare const summarized: <R1, E1, B, C>(summary: import("@tsplus/stdlib/data/Function").LazyArg<import("../../../io/Effect").Effect<R1, E1, B>>, f: (x: B, y: B) => C, __tsplusTrace?: string) => <R, E, In, L, Z>(self: import("../definition").Sink<R, E, In, L, Z>) => import("../definition").Sink<R | R1, E | E1, In, L, import("@tsplus/stdlib/data/Tuple").Tuple<[Z, C]>>;
//# sourceMappingURL=summarized.d.ts.map