/** * @since 2.0.0 */ import type * as Effect from "./Effect.js"; import type * as Either from "./Either.js"; import type * as Exit from "./Exit.js"; import type * as Fiber from "./Fiber.js"; /** * @since 2.0.0 * @category symbols */ export declare const MergeStateTypeId: unique symbol; /** * @since 2.0.0 * @category symbols */ export type MergeStateTypeId = typeof MergeStateTypeId; /** * @since 2.0.0 * @category models */ export type MergeState = BothRunning | LeftDone | RightDone; /** * @since 2.0.0 */ export declare namespace MergeState { /** * @since 2.0.0 * @category models */ interface Proto { readonly [MergeStateTypeId]: MergeStateTypeId; } } /** * @since 2.0.0 * @category models */ export interface BothRunning<_Env, out Err, out Err1, _Err2, out Elem, out Done, out Done1, _Done2> extends MergeState.Proto { readonly _tag: "BothRunning"; readonly left: Fiber.Fiber, Err>; readonly right: Fiber.Fiber, Err1>; } /** * @since 2.0.0 * @category models */ export interface LeftDone extends MergeState.Proto { readonly _tag: "LeftDone"; f(exit: Exit.Exit): Effect.Effect; } /** * @since 2.0.0 * @category models */ export interface RightDone extends MergeState.Proto { readonly _tag: "RightDone"; f(exit: Exit.Exit): Effect.Effect; } /** * @since 2.0.0 * @category constructors */ export declare const BothRunning: (left: Fiber.Fiber, Err>, right: Fiber.Fiber, Err1>) => MergeState; /** * @since 2.0.0 * @category constructors */ export declare const LeftDone: (f: (exit: Exit.Exit) => Effect.Effect) => MergeState; /** * @since 2.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 2.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 2.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 2.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 2.0.0 * @category refinements */ export declare const isRightDone: (self: MergeState) => self is RightDone; /** * @since 2.0.0 * @category folding */ export declare const match: { /** * @since 2.0.0 * @category folding */ (options: { readonly onBothRunning: (left: Fiber.Fiber, Err>, right: Fiber.Fiber, Err1>) => Z; readonly onLeftDone: (f: (exit: Exit.Exit) => Effect.Effect) => Z; readonly onRightDone: (f: (exit: Exit.Exit) => Effect.Effect) => Z; }): (self: MergeState) => Z; /** * @since 2.0.0 * @category folding */ (self: MergeState, options: { readonly onBothRunning: (left: Fiber.Fiber, Err>, right: Fiber.Fiber, Err1>) => 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