import type * as T from "../../../../Effect/index.js"; import type * as E from "../../../../Either/index.js"; import type * as Ex from "../../../../Exit/index.js"; import type * as F from "../../../../Fiber/index.js"; export declare const BothRunningTypeId: unique symbol; export declare class BothRunning<_Env, Err, Err1, _Err2, Elem, Done, Done1, _Done2> { readonly left: F.Fiber>; readonly right: F.Fiber>; readonly _typeId: typeof BothRunningTypeId; constructor(left: F.Fiber>, right: F.Fiber>); } export declare const LeftDoneTypeId: unique symbol; export declare class LeftDone { readonly f: (ex: Ex.Exit) => T.Effect; readonly _typeId: typeof LeftDoneTypeId; constructor(f: (ex: Ex.Exit) => T.Effect); } export declare const RightDoneTypeId: unique symbol; export declare class RightDone { readonly f: (ex: Ex.Exit) => T.Effect; readonly _typeId: typeof RightDoneTypeId; constructor(f: (ex: Ex.Exit) => T.Effect); } export declare type MergeState = BothRunning | LeftDone | RightDone; export declare const _R: "_R"; export declare const _E0: "_E0"; export declare const _Z0: "_Z0"; export declare const _E: "_E"; export declare const _Z: "_Z"; export declare const MergeDecisionTypeId: unique symbol; export declare abstract class MergeDecision { readonly _mergeDecisionTypeId: typeof MergeDecisionTypeId; readonly [_R]: (_: R) => void; readonly [_E0]: (_: E0) => void; readonly [_Z0]: (_: Z0) => void; readonly [_E]: () => E; readonly [_Z]: () => Z; } export declare function concrete(decision: MergeDecision): asserts decision is Done | Await; export declare const DoneTypeId: unique symbol; export declare class Done extends MergeDecision { readonly io: T.Effect; readonly _typeId: typeof DoneTypeId; constructor(io: T.Effect); } export declare const AwaitTypeId: unique symbol; export declare class Await extends MergeDecision { readonly f: (ex: Ex.Exit) => T.Effect; readonly _typeId: typeof AwaitTypeId; constructor(f: (ex: Ex.Exit) => T.Effect); } export declare function done(io: T.Effect): MergeDecision; export declare function await_(f: (ex: Ex.Exit) => T.Effect): MergeDecision; export declare function awaitConst(io: T.Effect): MergeDecision; //# sourceMappingURL=mergeHelpers.d.ts.map