86 lines
2.4 KiB
TypeScript
86 lines
2.4 KiB
TypeScript
/**
|
|
* @since 2.0.0
|
|
*/
|
|
import type * as Effect from "./Effect.js";
|
|
import type * as Exit from "./Exit.js";
|
|
import type * as Types from "./Types.js";
|
|
/**
|
|
* @since 2.0.0
|
|
* @category symbols
|
|
*/
|
|
export declare const MergeDecisionTypeId: unique symbol;
|
|
/**
|
|
* @since 2.0.0
|
|
* @category symbols
|
|
*/
|
|
export type MergeDecisionTypeId = typeof MergeDecisionTypeId;
|
|
/**
|
|
* @since 2.0.0
|
|
* @category models
|
|
*/
|
|
export interface MergeDecision<out R, in E0, in Z0, out E, out Z> extends MergeDecision.Variance<R, E0, Z0, E, Z> {
|
|
}
|
|
/**
|
|
* @since 2.0.0
|
|
*/
|
|
export declare namespace MergeDecision {
|
|
/**
|
|
* @since 2.0.0
|
|
* @category models
|
|
*/
|
|
interface Variance<out R, in E0, in Z0, out E, out Z> {
|
|
readonly [MergeDecisionTypeId]: {
|
|
_R: Types.Covariant<R>;
|
|
_E0: Types.Contravariant<E0>;
|
|
_Z0: Types.Contravariant<Z0>;
|
|
_E: Types.Covariant<E>;
|
|
_Z: Types.Covariant<Z>;
|
|
};
|
|
}
|
|
}
|
|
/**
|
|
* @since 2.0.0
|
|
* @category constructors
|
|
*/
|
|
export declare const Done: <Z, E, R>(effect: Effect.Effect<Z, E, R>) => MergeDecision<R, unknown, unknown, E, Z>;
|
|
/**
|
|
* @since 2.0.0
|
|
* @category constructors
|
|
*/
|
|
export declare const Await: <R, E0, Z0, E, Z>(f: (exit: Exit.Exit<Z0, E0>) => Effect.Effect<Z, E, R>) => MergeDecision<R, E0, Z0, E, Z>;
|
|
/**
|
|
* @since 2.0.0
|
|
* @category constructors
|
|
*/
|
|
export declare const AwaitConst: <Z, E, R>(effect: Effect.Effect<Z, E, R>) => MergeDecision<R, unknown, unknown, E, Z>;
|
|
/**
|
|
* Returns `true` if the specified value is a `MergeDecision`, `false`
|
|
* otherwise.
|
|
*
|
|
* @since 2.0.0
|
|
* @category refinements
|
|
*/
|
|
export declare const isMergeDecision: (u: unknown) => u is MergeDecision<unknown, unknown, unknown, unknown, unknown>;
|
|
/**
|
|
* @since 2.0.0
|
|
* @category folding
|
|
*/
|
|
export declare const match: {
|
|
/**
|
|
* @since 2.0.0
|
|
* @category folding
|
|
*/
|
|
<R, E0, Z0, E, Z, Z2>(options: {
|
|
readonly onDone: (effect: Effect.Effect<Z, E, R>) => Z2;
|
|
readonly onAwait: (f: (exit: Exit.Exit<Z0, E0>) => Effect.Effect<Z, E, R>) => Z2;
|
|
}): (self: MergeDecision<R, E0, Z0, E, Z>) => Z2;
|
|
/**
|
|
* @since 2.0.0
|
|
* @category folding
|
|
*/
|
|
<R, E0, Z0, E, Z, Z2>(self: MergeDecision<R, E0, Z0, E, Z>, options: {
|
|
readonly onDone: (effect: Effect.Effect<Z, E, R>) => Z2;
|
|
readonly onAwait: (f: (exit: Exit.Exit<Z0, E0>) => Effect.Effect<Z, E, R>) => Z2;
|
|
}): Z2;
|
|
};
|
|
//# sourceMappingURL=MergeDecision.d.ts.map
|