/** * @since 1.0.0 */ import type * as Either from "@effect/data/Either"; import type * as Effect from "@effect/io/Effect"; import type * as Exit from "@effect/io/Exit"; import type * as Fiber from "@effect/io/Fiber"; /** * @since 1.0.0 * @category symbols */ export declare const MergeStateTypeId: unique symbol; /** * @since 1.0.0 * @category symbols */ export type MergeStateTypeId = typeof MergeStateTypeId; /** * @since 1.0.0 * @category models */ export type MergeState = BothRunning | LeftDone | RightDone; /** * @since 1.0.0 */ export declare namespace MergeState { /** * @since 1.0.0 * @category models */ interface Proto { readonly [MergeStateTypeId]: MergeStateTypeId; } } /** * @since 1.0.0 * @category models */ export interface BothRunning<_Env, Err, Err1, _Err2, Elem, Done, Done1, _Done2> extends MergeState.Proto { readonly _tag: "BothRunning"; readonly left: Fiber.Fiber>; readonly right: Fiber.Fiber>; } /** * @since 1.0.0 * @category models */ export interface LeftDone extends MergeState.Proto { readonly _tag: "LeftDone"; readonly f: (exit: Exit.Exit) => Effect.Effect; } /** * @since 1.0.0 * @category models */ export interface RightDone extends MergeState.Proto { readonly _tag: "RightDone"; readonly f: (exit: Exit.Exit) => Effect.Effect; } /** * @since 1.0.0 * @category constructors */ export declare const BothRunning: (left: Fiber.Fiber>, right: Fiber.Fiber>) => MergeState; /** * @since 1.0.0 * @category constructors */ export declare const LeftDone: (f: (exit: Exit.Exit) => Effect.Effect) => MergeState; /** * @since 1.0.0 * @category constructors */ export declare const RightDone: (f: (exit: Exit.Exit) => Effect.Effect) => MergeState; /** * Returns `true` if the specified value is a `MergeState`, `false` otherwise. * * @since 1.0.0 * @category refinements */ export declare const isMergeState: (u: unknown) => u is MergeState; /** * Returns `true` if the specified `MergeState` is a `BothRunning`, `false` * otherwise. * * @since 1.0.0 * @category refinements */ export declare const isBothRunning: (self: MergeState) => self is BothRunning; /** * Returns `true` if the specified `MergeState` is a `LeftDone`, `false` * otherwise. * * @since 1.0.0 * @category refinements */ export declare const isLeftDone: (self: MergeState) => self is LeftDone; /** * Returns `true` if the specified `MergeState` is a `RightDone`, `false` * otherwise. * * @since 1.0.0 * @category refinements */ export declare const isRightDone: (self: MergeState) => self is RightDone; /** * @since 1.0.0 * @category folding */ export declare const match: { (options: { readonly onBothRunning: (left: Fiber.Fiber>, right: Fiber.Fiber>) => Z; readonly onLeftDone: (f: (exit: Exit.Exit) => Effect.Effect) => Z; readonly onRightDone: (f: (exit: Exit.Exit) => Effect.Effect) => Z; }): (self: MergeState) => Z; (self: MergeState, options: { readonly onBothRunning: (left: Fiber.Fiber>, right: Fiber.Fiber>) => Z; readonly onLeftDone: (f: (exit: Exit.Exit) => Effect.Effect) => Z; readonly onRightDone: (f: (exit: Exit.Exit) => Effect.Effect) => Z; }): Z; }; //# sourceMappingURL=MergeState.d.ts.map