pure-effect 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -11,27 +11,20 @@ export type FailureState<E = unknown> = {
11
11
  };
12
12
 
13
13
  /**
14
- * Metadata attached to a Command. A string `name` is read by the interpreter as the Command's
15
- * identity for traces, replay matching, and telemetry spans; every other key is carried through
16
- * untouched for `onBeforeCommand`.
14
+ * Metadata for a Command. `name` is its name in traces, replays and spans; other keys reach `onBeforeCommand` as they
15
+ * are.
17
16
  */
18
17
  export type CommandMeta = { name?: string } & Record<string, unknown>;
19
18
 
20
19
  export type CommandState<R, T, E = unknown, Ctx = unknown> = {
21
20
  type: 'Command';
22
21
  /**
23
- * Performs the side effect. Inside a `Parallel` branch it receives an `AbortSignal` that fires when a
24
- * sibling branch fails; forward it to `fetch`, a driver, or an `AbortController`-aware client to have
25
- * the work cancelled in flight. Ignoring it is fine and is what every thunk written before this did:
26
- * the interpreter still refuses to start any *later* Command in a cancelled branch. Outside a
27
- * `Parallel` no argument is passed at all.
22
+ * Makes the call. Inside a `Parallel` it gets an `AbortSignal` that fires when a sibling branch fails; pass it on
23
+ * to cancel the work.
28
24
  */
29
25
  cmd: (signal?: AbortSignal) => Promise<R> | R;
30
- /**
31
- * Method syntax, not a function-typed property, on every state's `next`: `strictFunctionTypes`
32
- * checks a property's parameter contravariantly, which made a `CommandState<never, ...>` (a `cmd`
33
- * that only throws) unassignable to `Effect`. Method parameters are bivariant, so it is accepted.
34
- */
26
+ // A method rather than a function property, so a `cmd` that only throws still fits `Effect`.
27
+ /** Receives `cmd`'s result and returns the next step. */
35
28
  next(result: R): Effect<T, E, Ctx>;
36
29
  meta?: CommandMeta;
37
30
  initialInput?: unknown;
@@ -44,34 +37,31 @@ export type AskState<T, E = unknown, Ctx = unknown> = {
44
37
  };
45
38
 
46
39
  export type RetryOptions = {
40
+ /** Tries after the first, so `2` makes at most 3 calls. A positive integer, 3 by default. */
47
41
  attempts?: number;
42
+ /** Milliseconds before the first retry, 100 by default. */
48
43
  delay?: number;
44
+ /** Multiplies the wait before each later retry, so `2` doubles it. 1 by default, the same wait each time. */
49
45
  backoff?: number;
50
46
  };
51
47
 
52
48
  /**
53
- * `E` is the error the node contributes to its pipeline. A Retry contributes two kinds: an abort the
54
- * wrapped tree returned, which is not retried and leaves unwrapped, and the exhaustion failure that
55
- * follows an I/O fault the retry loop could not get past.
49
+ * `E` is what the Retry can fail with: an abort from the steps it wraps, or the exhaustion after its last attempt. `R`
50
+ * is what the retried steps succeed with, which `next` receives; it differs from `T` once a pipeline continues past it.
56
51
  */
57
- export type RetryState<T, E = unknown, Ctx = unknown> = {
52
+ export type RetryState<T, E = unknown, Ctx = unknown, R = T> = {
58
53
  type: 'Retry';
59
- effect: Effect<T, any, Ctx>;
60
- options: RetryOptions & { onExhausted?: (error: RetryExhaustedError) => Effect<T, any, Ctx> };
61
- next(value: T): Effect<T, E, Ctx>;
54
+ effect: Effect<R, any, Ctx>;
55
+ options: RetryOptions & { onExhausted?: (error: RetryExhaustedError) => Effect<R, any, Ctx> };
56
+ next(value: R): Effect<T, E, Ctx>;
62
57
  initialInput?: unknown;
63
58
  };
64
59
 
65
- /**
66
- * The error a `Retry` fails with once every attempt has hit an I/O fault. `lastError` is what the last
67
- * attempt threw: a Command's function throwing, or a nested `Retry` running out. It is never a `Failure`
68
- * a step returned, since that is an abort and is not retried, so the wrapped tree's error type cannot
69
- * reach it. Nothing declares what a function throws, so `Retry` leaves `Thrown` as `unknown`; pass it
70
- * only to annotate a value whose thrown type you already know.
71
- */
60
+ /** The error a `Retry` fails with once every attempt has thrown. `lastError` is what the last attempt threw. */
72
61
  export type RetryExhaustedError<Thrown = unknown> = {
73
62
  retryExhausted: true;
74
63
  lastError: Thrown;
64
+ /** The `attempts` option: tries after the first, so the retried steps ran one more time than this. */
75
65
  attempts: number;
76
66
  };
77
67
 
@@ -82,24 +72,17 @@ export type ParallelOptions = {
82
72
  settled?: boolean;
83
73
  };
84
74
 
85
- /** What a settled `Parallel` hands to `next`: one outcome per branch, in array order. */
86
- export type ParallelOutcomes<T extends readonly unknown[], E> = {
87
- [K in keyof T]: SuccessState<T[K]> | FailureState<E>;
88
- };
89
-
90
- /**
91
- * `V` is what `next` receives, which is the branch values normally and the branch outcomes under
92
- * `settled`. It defaults to `T`, so every non-settled use reads as it always did.
93
- */
75
+ /** `V` is what `next` receives: the branch values, or their outcomes under `settled`. `BranchError` types `effects`. */
94
76
  export type ParallelState<
95
77
  T extends readonly unknown[],
96
78
  R,
97
79
  E = unknown,
98
80
  Ctx = unknown,
99
- V extends readonly unknown[] = T
81
+ V extends readonly unknown[] = T,
82
+ BranchError = E
100
83
  > = {
101
84
  type: 'Parallel';
102
- effects: { [K in keyof T]: Effect<T[K], E, Ctx> };
85
+ effects: { [K in keyof T]: Effect<T[K], BranchError, Ctx> };
103
86
  next(values: [...V]): Effect<R, E, Ctx>;
104
87
  options?: ParallelOptions;
105
88
  initialInput?: unknown;
@@ -110,1100 +93,1160 @@ export type Effect<T, E = unknown, Ctx = unknown> =
110
93
  | FailureState<E>
111
94
  | CommandState<any, T, E, Ctx>
112
95
  | AskState<T, E, Ctx>
113
- | RetryState<T, E, Ctx>
114
- | ParallelState<any, T, E, Ctx>;
96
+ | RetryState<T, E, Ctx, any>
97
+ | ParallelState<any, T, E, Ctx, any, any>;
98
+
99
+ // No type parameters, so as the constraint on a callback's return it gives a call written inline there nothing to infer.
100
+ /** Any Effect: a `Success`, `Failure`, `Command`, `Ask`, `Retry` or `Parallel`. */
101
+ export type AnyEffect = { readonly type: 'Success' | 'Failure' | 'Command' | 'Ask' | 'Retry' | 'Parallel' };
102
+
103
+ /** The value an Effect succeeds with. */
104
+ export type EffectValue<X> =
105
+ X extends SuccessState<infer T>
106
+ ? T
107
+ : X extends CommandState<any, infer T, any, any>
108
+ ? T
109
+ : X extends AskState<infer T, any, any>
110
+ ? T
111
+ : X extends RetryState<infer T, any, any, any>
112
+ ? T
113
+ : X extends ParallelState<any, infer T, any, any, any, any>
114
+ ? T
115
+ : never;
116
+
117
+ /** The error an Effect can fail with: what it returns as a `Failure`, not what a Command's function throws. */
118
+ export type EffectError<X> =
119
+ X extends FailureState<infer E>
120
+ ? E
121
+ : X extends CommandState<any, any, infer E, any>
122
+ ? E
123
+ : X extends AskState<any, infer E, any>
124
+ ? E
125
+ : X extends RetryState<any, infer E, any, any>
126
+ ? E
127
+ : X extends ParallelState<any, any, infer E, any, any, any>
128
+ ? E
129
+ : never;
130
+
131
+ /** The context an Effect reads, which is `unknown` for a `Success` or `Failure`, since they read none. */
132
+ export type EffectContext<X> = [X] extends [SuccessState<any> | FailureState<any>]
133
+ ? unknown
134
+ : X extends CommandState<any, any, any, infer C>
135
+ ? C
136
+ : X extends AskState<any, any, infer C>
137
+ ? C
138
+ : X extends RetryState<any, any, infer C, any>
139
+ ? C
140
+ : X extends ParallelState<any, any, any, infer C, any, any>
141
+ ? C
142
+ : never;
143
+
144
+ // Checked by a conditional, not a constraint: a constraint types an inline Ask's or Retry's error as any.
145
+ /** The branches `Parallel` accepts: each one an Effect. */
146
+ export type ParallelBranches<B> = B &
147
+ (B extends readonly Effect<any, any, any>[] ? unknown : readonly Effect<any, any, any>[]);
148
+
149
+ /** The value of each branch, in array order: what `next` receives. */
150
+ export type ParallelValues<B extends readonly unknown[]> = { -readonly [K in keyof B]: EffectValue<B[K]> };
151
+
152
+ /** What a settled `Parallel` hands to `next`: one outcome per branch, in array order, with that branch's error. */
153
+ export type ParallelOutcomes<B extends readonly unknown[]> = {
154
+ -readonly [K in keyof B]: SuccessState<EffectValue<B[K]>> | FailureState<EffectError<B[K]>>;
155
+ };
115
156
 
157
+ /** Every branch's context together, which is what `runEffect` needs for a `Parallel`. */
158
+ export type ParallelContext<B extends readonly unknown[]> = {
159
+ [K in keyof B]: (context: EffectContext<B[K]>) => void;
160
+ }[number] extends (context: infer Ctx) => void
161
+ ? Ctx
162
+ : unknown;
163
+
164
+ /** Wraps a value for the next step. */
116
165
  export declare function Success<T>(value: T): SuccessState<T>;
117
166
 
118
- export declare function Failure<E = unknown>(error: E, initialInput?: unknown): FailureState<E>;
167
+ /** Stops the pipeline with `error`. A literal keeps its exact type, and an object or array error is readonly. */
168
+ export declare function Failure<const E = unknown>(error: E, initialInput?: unknown): FailureState<E>;
119
169
 
120
170
  /**
121
- * `next` is optional and defaults to `(result) => Success(result)`, which is what most Commands want.
122
- *
123
- * A `meta.name` becomes this Command's identity, which keeps it independent of how `cmd` was declared
124
- * and immune to minification. Without one the identity falls back to `cmd.name`, then to 'anonymous'.
125
- *
126
- * The first overload is the default `next`, where the value is the function's result. Without it, a
127
- * `Command(fn)` inside a step with an annotated return type had its value type inferred from the
128
- * annotation, as `unknown`, rather than from `fn`, and `Retry(Command(fn))` failed to compile there.
171
+ * Defers a side effect: `cmd` makes the call and `next` decides what follows; without `next` the result passes through.
172
+ * `meta.name` names it, else `cmd.name`.
129
173
  */
130
- export declare function Command<R, E = unknown, Ctx = unknown>(
174
+ export declare function Command<R>(
131
175
  cmd: (signal?: AbortSignal) => Promise<R> | R,
132
176
  next?: undefined,
133
177
  meta?: CommandMeta
134
- ): CommandState<R, R, E, Ctx>;
178
+ ): CommandState<R, R, never>;
135
179
 
180
+ // `N` is what `next` returns, whole, so Failures of different shapes join; given explicitly, `T`, `E` and `Ctx` build it.
181
+ export declare function Command<R, T = never, E = never, Ctx = unknown, N extends AnyEffect = Effect<T, E, Ctx>>(
182
+ cmd: (signal?: AbortSignal) => Promise<R> | R,
183
+ next?: (result: R) => N,
184
+ meta?: CommandMeta
185
+ ): CommandState<R, EffectValue<N>, EffectError<N>, EffectContext<N>>;
186
+
187
+ /** For `Command<User | null>(fetchJson, next)`: given some type arguments, TypeScript infers none of the rest. */
136
188
  export declare function Command<R, T = R, E = unknown, Ctx = unknown>(
137
189
  cmd: (signal?: AbortSignal) => Promise<R> | R,
138
190
  next?: (result: R) => Effect<T, E, Ctx>,
139
191
  meta?: CommandMeta
140
192
  ): CommandState<R, T, E, Ctx>;
141
193
 
142
- export declare function Ask<T, E = unknown, Ctx = unknown>(
143
- next: (context: Ctx) => Effect<T, E, Ctx>
144
- ): AskState<T, E, Ctx>;
194
+ /** The name a Command is known by in traces, replays and spans: `meta.name`, else `cmd.name`, else `'anonymous'`. */
195
+ export declare function commandName(command: CommandState<any, any, any, any>): string;
196
+
197
+ /** Reads the context passed to `runEffect`. Give the value, error and context types, or none. */
198
+ export declare function Ask<T = never, E = never, Ctx = unknown, N extends AnyEffect = Effect<T, E, Ctx>>(
199
+ next: (context: Ctx) => N
200
+ ): AskState<EffectValue<N>, EffectError<N>, Ctx & EffectContext<N>>;
145
201
 
146
202
  /**
147
- * With `onExhausted`, the exhaustion failure never escapes: the fallback Effect runs instead, its
148
- * success feeds `next`, and its failure propagates unwrapped, so the node's declared error is the
149
- * fallback's own error type alongside `E`, since an abort the wrapped tree returned reaches neither
150
- * the retry loop nor the fallback and leaves as itself. `onExhausted` is a per-use option, and so is every other retry
151
- * option: there are no configured defaults for one to be carried by.
203
+ * Runs `effect` again when a Command in it throws, then runs `onExhausted` once the attempts run out. Give every type
204
+ * argument or none.
152
205
  */
153
- export declare function Retry<T, E = unknown, E2 = unknown, Ctx = unknown>(
206
+ export declare function Retry<T, E = never, E2 = never, Ctx = unknown, N extends AnyEffect = Effect<T, E2, Ctx>>(
154
207
  effect: Effect<T, E, Ctx>,
155
- options: RetryOptions & { onExhausted: (error: RetryExhaustedError) => Effect<T, E2, Ctx> }
156
- ): RetryState<T, E | E2, Ctx>;
208
+ options: RetryOptions & { onExhausted: (error: RetryExhaustedError) => N }
209
+ ): RetryState<T | EffectValue<N>, E | EffectError<N>, Ctx & EffectContext<N>>;
157
210
 
158
211
  /**
159
- * Without `onExhausted`, an I/O fault the retry loop cannot get past arrives as
160
- * `Failure({ retryExhausted: true, lastError, attempts })`, with whatever was thrown as `lastError`.
161
- * An abort the wrapped tree returned is not retried and is not wrapped, so `E` reaches the pipeline
162
- * as itself and never as `lastError`.
212
+ * Runs `effect` again when a Command in it throws, and fails with `RetryExhaustedError` once the attempts run out. Give
213
+ * every type argument or none.
163
214
  */
164
- export declare function Retry<T, E = unknown, Ctx = unknown>(
215
+ export declare function Retry<T, E = never, Ctx = unknown>(
165
216
  effect: Effect<T, E, Ctx>,
166
217
  options?: RetryOptions
167
218
  ): RetryState<T, E | RetryExhaustedError, Ctx>;
168
219
 
220
+ // `settled?: false` keeps a `settled` known only as boolean from matching; `| []` infers tuples on TypeScript 5.1.
169
221
  /**
170
- * `next` is optional and defaults to `(values) => Success(values)`, same as `Command`'s default,
171
- * so a bare `Parallel(effects)` resolves to the ordered array of success values. The second argument
172
- * is `next` or the options, whichever it looks like.
173
- *
174
- * The non-settled overloads accept only `settled?: false`. A `settled` known only as a `boolean`, from a
175
- * shared options object or a caller's `ParallelOptions`, could be `true` at runtime, and matching it to
176
- * an overload that types `next` as the values let a batch compile while it read outcome objects as
177
- * values. It matches no overload instead: write `settled: true` inline, or add `as const`.
222
+ * Runs the branches at the same time and hands `next` their values in order. The first to fail cancels the rest, unless
223
+ * `settled`, which hands `next` every outcome.
178
224
  */
179
- export declare function Parallel<T extends readonly unknown[], E = unknown, Ctx = unknown>(
180
- effects: { [K in keyof T]: Effect<T[K], E, Ctx> },
225
+ export declare function Parallel<B extends readonly unknown[] | []>(
226
+ effects: ParallelBranches<B>,
181
227
  options: ParallelOptions & { settled: true }
182
- ): ParallelState<[...T], ParallelOutcomes<T, E>, E, Ctx, ParallelOutcomes<T, E>>;
228
+ ): ParallelState<
229
+ ParallelValues<B>,
230
+ ParallelOutcomes<B>,
231
+ never,
232
+ ParallelContext<B>,
233
+ ParallelOutcomes<B>,
234
+ EffectError<B[number]>
235
+ >;
183
236
 
184
- export declare function Parallel<T extends readonly unknown[], R, E = unknown, Ctx = unknown>(
185
- effects: { [K in keyof T]: Effect<T[K], E, Ctx> },
186
- next: (values: ParallelOutcomes<T, E>) => Effect<R, E, Ctx>,
237
+ export declare function Parallel<B extends readonly unknown[] | [], N extends AnyEffect = never>(
238
+ effects: ParallelBranches<B>,
239
+ next: (outcomes: ParallelOutcomes<B>) => N,
187
240
  options: ParallelOptions & { settled: true }
188
- ): ParallelState<[...T], R, E, Ctx, ParallelOutcomes<T, E>>;
241
+ ): ParallelState<
242
+ ParallelValues<B>,
243
+ EffectValue<N>,
244
+ EffectError<N>,
245
+ ParallelContext<B> & EffectContext<N>,
246
+ ParallelOutcomes<B>,
247
+ EffectError<B[number]>
248
+ >;
189
249
 
190
- export declare function Parallel<T extends readonly unknown[], E = unknown, Ctx = unknown>(
191
- effects: { [K in keyof T]: Effect<T[K], E, Ctx> },
250
+ export declare function Parallel<B extends readonly unknown[] | []>(
251
+ effects: ParallelBranches<B>,
192
252
  options?: ParallelOptions & { settled?: false }
193
- ): ParallelState<[...T], [...T], E, Ctx>;
253
+ ): ParallelState<ParallelValues<B>, ParallelValues<B>, EffectError<B[number]>, ParallelContext<B>>;
194
254
 
195
- export declare function Parallel<T extends readonly unknown[], R, E = unknown, Ctx = unknown>(
196
- effects: { [K in keyof T]: Effect<T[K], E, Ctx> },
197
- next: (values: [...T]) => Effect<R, E, Ctx>,
255
+ export declare function Parallel<B extends readonly unknown[] | [], N extends AnyEffect = never>(
256
+ effects: ParallelBranches<B>,
257
+ next: (values: ParallelValues<B>) => N,
198
258
  options?: ParallelOptions & { settled?: false }
199
- ): ParallelState<[...T], R, E, Ctx>;
259
+ ): ParallelState<
260
+ ParallelValues<B>,
261
+ EffectValue<N>,
262
+ EffectError<B[number]> | EffectError<N>,
263
+ ParallelContext<B> & EffectContext<N>
264
+ >;
200
265
 
266
+ // BEGIN effectPipe overloads, generated by scripts/effect-pipe-overloads.js: edit it, then npm run generate.
201
267
  /**
202
- * Composes steps into a pipeline: each step receives the previous step's success value, and a Failure
203
- * from any step stops the pipeline. Typed for 1 to 20 steps, the same ceiling as Effect-TS's `pipe`. A
204
- * pipeline is itself a step, so a longer one nests: `effectPipe(effectPipe(s1, s2), effectPipe(s3, s4))`.
205
- * Each step's context type is its own, and the pipeline's is all of them together, so a step that reads
206
- * no context does not erase a later step's, and `runEffect` asks for every context a step reads.
268
+ * Composes steps into a pipeline: each step gets the previous step's value, and a `Failure` stops it.
269
+ * Typed for up to 20 steps; nest pipelines for more.
207
270
  */
208
- export declare function effectPipe<T0, T1, E1 = unknown, C1 = unknown>(
209
- f1: (value: T0) => Effect<T1, E1, C1>
210
- ): (start: T0) => Effect<T1, E1, C1>;
271
+ export declare function effectPipe<T0, R1 extends AnyEffect = never>(
272
+ f1: (value: T0) => R1
273
+ ): (start: T0) => Effect<EffectValue<R1>, EffectError<R1>, EffectContext<R1>>;
211
274
 
212
- export declare function effectPipe<T0, T1, T2, E1 = unknown, E2 = unknown, C1 = unknown, C2 = unknown>(
213
- f1: (value: T0) => Effect<T1, E1, C1>,
214
- f2: (value: T1) => Effect<T2, E2, C2>
215
- ): (start: T0) => Effect<T2, E1 | E2, C1 & C2>;
275
+ export declare function effectPipe<T0, R1 extends AnyEffect = never, R2 extends AnyEffect = never>(
276
+ f1: (value: T0) => R1,
277
+ f2: (value: EffectValue<R1>) => R2
278
+ ): (start: T0) => Effect<EffectValue<R2>, EffectError<R1> | EffectError<R2>, EffectContext<R1> & EffectContext<R2>>;
216
279
 
217
280
  export declare function effectPipe<
218
281
  T0,
219
- T1,
220
- T2,
221
- T3,
222
- E1 = unknown,
223
- E2 = unknown,
224
- E3 = unknown,
225
- C1 = unknown,
226
- C2 = unknown,
227
- C3 = unknown
282
+ R1 extends AnyEffect = never,
283
+ R2 extends AnyEffect = never,
284
+ R3 extends AnyEffect = never
228
285
  >(
229
- f1: (value: T0) => Effect<T1, E1, C1>,
230
- f2: (value: T1) => Effect<T2, E2, C2>,
231
- f3: (value: T2) => Effect<T3, E3, C3>
232
- ): (start: T0) => Effect<T3, E1 | E2 | E3, C1 & C2 & C3>;
286
+ f1: (value: T0) => R1,
287
+ f2: (value: EffectValue<R1>) => R2,
288
+ f3: (value: EffectValue<R2>) => R3
289
+ ): (
290
+ start: T0
291
+ ) => Effect<
292
+ EffectValue<R3>,
293
+ EffectError<R1> | EffectError<R2> | EffectError<R3>,
294
+ EffectContext<R1> & EffectContext<R2> & EffectContext<R3>
295
+ >;
233
296
 
234
297
  export declare function effectPipe<
235
298
  T0,
236
- T1,
237
- T2,
238
- T3,
239
- T4,
240
- E1 = unknown,
241
- E2 = unknown,
242
- E3 = unknown,
243
- E4 = unknown,
244
- C1 = unknown,
245
- C2 = unknown,
246
- C3 = unknown,
247
- C4 = unknown
299
+ R1 extends AnyEffect = never,
300
+ R2 extends AnyEffect = never,
301
+ R3 extends AnyEffect = never,
302
+ R4 extends AnyEffect = never
248
303
  >(
249
- f1: (value: T0) => Effect<T1, E1, C1>,
250
- f2: (value: T1) => Effect<T2, E2, C2>,
251
- f3: (value: T2) => Effect<T3, E3, C3>,
252
- f4: (value: T3) => Effect<T4, E4, C4>
253
- ): (start: T0) => Effect<T4, E1 | E2 | E3 | E4, C1 & C2 & C3 & C4>;
304
+ f1: (value: T0) => R1,
305
+ f2: (value: EffectValue<R1>) => R2,
306
+ f3: (value: EffectValue<R2>) => R3,
307
+ f4: (value: EffectValue<R3>) => R4
308
+ ): (
309
+ start: T0
310
+ ) => Effect<
311
+ EffectValue<R4>,
312
+ EffectError<R1> | EffectError<R2> | EffectError<R3> | EffectError<R4>,
313
+ EffectContext<R1> & EffectContext<R2> & EffectContext<R3> & EffectContext<R4>
314
+ >;
254
315
 
255
316
  export declare function effectPipe<
256
317
  T0,
257
- T1,
258
- T2,
259
- T3,
260
- T4,
261
- T5,
262
- E1 = unknown,
263
- E2 = unknown,
264
- E3 = unknown,
265
- E4 = unknown,
266
- E5 = unknown,
267
- C1 = unknown,
268
- C2 = unknown,
269
- C3 = unknown,
270
- C4 = unknown,
271
- C5 = unknown
318
+ R1 extends AnyEffect = never,
319
+ R2 extends AnyEffect = never,
320
+ R3 extends AnyEffect = never,
321
+ R4 extends AnyEffect = never,
322
+ R5 extends AnyEffect = never
272
323
  >(
273
- f1: (value: T0) => Effect<T1, E1, C1>,
274
- f2: (value: T1) => Effect<T2, E2, C2>,
275
- f3: (value: T2) => Effect<T3, E3, C3>,
276
- f4: (value: T3) => Effect<T4, E4, C4>,
277
- f5: (value: T4) => Effect<T5, E5, C5>
278
- ): (start: T0) => Effect<T5, E1 | E2 | E3 | E4 | E5, C1 & C2 & C3 & C4 & C5>;
324
+ f1: (value: T0) => R1,
325
+ f2: (value: EffectValue<R1>) => R2,
326
+ f3: (value: EffectValue<R2>) => R3,
327
+ f4: (value: EffectValue<R3>) => R4,
328
+ f5: (value: EffectValue<R4>) => R5
329
+ ): (
330
+ start: T0
331
+ ) => Effect<
332
+ EffectValue<R5>,
333
+ EffectError<R1> | EffectError<R2> | EffectError<R3> | EffectError<R4> | EffectError<R5>,
334
+ EffectContext<R1> & EffectContext<R2> & EffectContext<R3> & EffectContext<R4> & EffectContext<R5>
335
+ >;
279
336
 
280
337
  export declare function effectPipe<
281
338
  T0,
282
- T1,
283
- T2,
284
- T3,
285
- T4,
286
- T5,
287
- T6,
288
- E1 = unknown,
289
- E2 = unknown,
290
- E3 = unknown,
291
- E4 = unknown,
292
- E5 = unknown,
293
- E6 = unknown,
294
- C1 = unknown,
295
- C2 = unknown,
296
- C3 = unknown,
297
- C4 = unknown,
298
- C5 = unknown,
299
- C6 = unknown
339
+ R1 extends AnyEffect = never,
340
+ R2 extends AnyEffect = never,
341
+ R3 extends AnyEffect = never,
342
+ R4 extends AnyEffect = never,
343
+ R5 extends AnyEffect = never,
344
+ R6 extends AnyEffect = never
300
345
  >(
301
- f1: (value: T0) => Effect<T1, E1, C1>,
302
- f2: (value: T1) => Effect<T2, E2, C2>,
303
- f3: (value: T2) => Effect<T3, E3, C3>,
304
- f4: (value: T3) => Effect<T4, E4, C4>,
305
- f5: (value: T4) => Effect<T5, E5, C5>,
306
- f6: (value: T5) => Effect<T6, E6, C6>
307
- ): (start: T0) => Effect<T6, E1 | E2 | E3 | E4 | E5 | E6, C1 & C2 & C3 & C4 & C5 & C6>;
346
+ f1: (value: T0) => R1,
347
+ f2: (value: EffectValue<R1>) => R2,
348
+ f3: (value: EffectValue<R2>) => R3,
349
+ f4: (value: EffectValue<R3>) => R4,
350
+ f5: (value: EffectValue<R4>) => R5,
351
+ f6: (value: EffectValue<R5>) => R6
352
+ ): (
353
+ start: T0
354
+ ) => Effect<
355
+ EffectValue<R6>,
356
+ EffectError<R1> | EffectError<R2> | EffectError<R3> | EffectError<R4> | EffectError<R5> | EffectError<R6>,
357
+ EffectContext<R1> &
358
+ EffectContext<R2> &
359
+ EffectContext<R3> &
360
+ EffectContext<R4> &
361
+ EffectContext<R5> &
362
+ EffectContext<R6>
363
+ >;
308
364
 
309
365
  export declare function effectPipe<
310
366
  T0,
311
- T1,
312
- T2,
313
- T3,
314
- T4,
315
- T5,
316
- T6,
317
- T7,
318
- E1 = unknown,
319
- E2 = unknown,
320
- E3 = unknown,
321
- E4 = unknown,
322
- E5 = unknown,
323
- E6 = unknown,
324
- E7 = unknown,
325
- C1 = unknown,
326
- C2 = unknown,
327
- C3 = unknown,
328
- C4 = unknown,
329
- C5 = unknown,
330
- C6 = unknown,
331
- C7 = unknown
367
+ R1 extends AnyEffect = never,
368
+ R2 extends AnyEffect = never,
369
+ R3 extends AnyEffect = never,
370
+ R4 extends AnyEffect = never,
371
+ R5 extends AnyEffect = never,
372
+ R6 extends AnyEffect = never,
373
+ R7 extends AnyEffect = never
332
374
  >(
333
- f1: (value: T0) => Effect<T1, E1, C1>,
334
- f2: (value: T1) => Effect<T2, E2, C2>,
335
- f3: (value: T2) => Effect<T3, E3, C3>,
336
- f4: (value: T3) => Effect<T4, E4, C4>,
337
- f5: (value: T4) => Effect<T5, E5, C5>,
338
- f6: (value: T5) => Effect<T6, E6, C6>,
339
- f7: (value: T6) => Effect<T7, E7, C7>
340
- ): (start: T0) => Effect<T7, E1 | E2 | E3 | E4 | E5 | E6 | E7, C1 & C2 & C3 & C4 & C5 & C6 & C7>;
375
+ f1: (value: T0) => R1,
376
+ f2: (value: EffectValue<R1>) => R2,
377
+ f3: (value: EffectValue<R2>) => R3,
378
+ f4: (value: EffectValue<R3>) => R4,
379
+ f5: (value: EffectValue<R4>) => R5,
380
+ f6: (value: EffectValue<R5>) => R6,
381
+ f7: (value: EffectValue<R6>) => R7
382
+ ): (
383
+ start: T0
384
+ ) => Effect<
385
+ EffectValue<R7>,
386
+ | EffectError<R1>
387
+ | EffectError<R2>
388
+ | EffectError<R3>
389
+ | EffectError<R4>
390
+ | EffectError<R5>
391
+ | EffectError<R6>
392
+ | EffectError<R7>,
393
+ EffectContext<R1> &
394
+ EffectContext<R2> &
395
+ EffectContext<R3> &
396
+ EffectContext<R4> &
397
+ EffectContext<R5> &
398
+ EffectContext<R6> &
399
+ EffectContext<R7>
400
+ >;
341
401
 
342
402
  export declare function effectPipe<
343
403
  T0,
344
- T1,
345
- T2,
346
- T3,
347
- T4,
348
- T5,
349
- T6,
350
- T7,
351
- T8,
352
- E1 = unknown,
353
- E2 = unknown,
354
- E3 = unknown,
355
- E4 = unknown,
356
- E5 = unknown,
357
- E6 = unknown,
358
- E7 = unknown,
359
- E8 = unknown,
360
- C1 = unknown,
361
- C2 = unknown,
362
- C3 = unknown,
363
- C4 = unknown,
364
- C5 = unknown,
365
- C6 = unknown,
366
- C7 = unknown,
367
- C8 = unknown
404
+ R1 extends AnyEffect = never,
405
+ R2 extends AnyEffect = never,
406
+ R3 extends AnyEffect = never,
407
+ R4 extends AnyEffect = never,
408
+ R5 extends AnyEffect = never,
409
+ R6 extends AnyEffect = never,
410
+ R7 extends AnyEffect = never,
411
+ R8 extends AnyEffect = never
368
412
  >(
369
- f1: (value: T0) => Effect<T1, E1, C1>,
370
- f2: (value: T1) => Effect<T2, E2, C2>,
371
- f3: (value: T2) => Effect<T3, E3, C3>,
372
- f4: (value: T3) => Effect<T4, E4, C4>,
373
- f5: (value: T4) => Effect<T5, E5, C5>,
374
- f6: (value: T5) => Effect<T6, E6, C6>,
375
- f7: (value: T6) => Effect<T7, E7, C7>,
376
- f8: (value: T7) => Effect<T8, E8, C8>
377
- ): (start: T0) => Effect<T8, E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8, C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8>;
413
+ f1: (value: T0) => R1,
414
+ f2: (value: EffectValue<R1>) => R2,
415
+ f3: (value: EffectValue<R2>) => R3,
416
+ f4: (value: EffectValue<R3>) => R4,
417
+ f5: (value: EffectValue<R4>) => R5,
418
+ f6: (value: EffectValue<R5>) => R6,
419
+ f7: (value: EffectValue<R6>) => R7,
420
+ f8: (value: EffectValue<R7>) => R8
421
+ ): (
422
+ start: T0
423
+ ) => Effect<
424
+ EffectValue<R8>,
425
+ | EffectError<R1>
426
+ | EffectError<R2>
427
+ | EffectError<R3>
428
+ | EffectError<R4>
429
+ | EffectError<R5>
430
+ | EffectError<R6>
431
+ | EffectError<R7>
432
+ | EffectError<R8>,
433
+ EffectContext<R1> &
434
+ EffectContext<R2> &
435
+ EffectContext<R3> &
436
+ EffectContext<R4> &
437
+ EffectContext<R5> &
438
+ EffectContext<R6> &
439
+ EffectContext<R7> &
440
+ EffectContext<R8>
441
+ >;
378
442
 
379
443
  export declare function effectPipe<
380
444
  T0,
381
- T1,
382
- T2,
383
- T3,
384
- T4,
385
- T5,
386
- T6,
387
- T7,
388
- T8,
389
- T9,
390
- E1 = unknown,
391
- E2 = unknown,
392
- E3 = unknown,
393
- E4 = unknown,
394
- E5 = unknown,
395
- E6 = unknown,
396
- E7 = unknown,
397
- E8 = unknown,
398
- E9 = unknown,
399
- C1 = unknown,
400
- C2 = unknown,
401
- C3 = unknown,
402
- C4 = unknown,
403
- C5 = unknown,
404
- C6 = unknown,
405
- C7 = unknown,
406
- C8 = unknown,
407
- C9 = unknown
445
+ R1 extends AnyEffect = never,
446
+ R2 extends AnyEffect = never,
447
+ R3 extends AnyEffect = never,
448
+ R4 extends AnyEffect = never,
449
+ R5 extends AnyEffect = never,
450
+ R6 extends AnyEffect = never,
451
+ R7 extends AnyEffect = never,
452
+ R8 extends AnyEffect = never,
453
+ R9 extends AnyEffect = never
408
454
  >(
409
- f1: (value: T0) => Effect<T1, E1, C1>,
410
- f2: (value: T1) => Effect<T2, E2, C2>,
411
- f3: (value: T2) => Effect<T3, E3, C3>,
412
- f4: (value: T3) => Effect<T4, E4, C4>,
413
- f5: (value: T4) => Effect<T5, E5, C5>,
414
- f6: (value: T5) => Effect<T6, E6, C6>,
415
- f7: (value: T6) => Effect<T7, E7, C7>,
416
- f8: (value: T7) => Effect<T8, E8, C8>,
417
- f9: (value: T8) => Effect<T9, E9, C9>
418
- ): (start: T0) => Effect<T9, E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9, C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9>;
455
+ f1: (value: T0) => R1,
456
+ f2: (value: EffectValue<R1>) => R2,
457
+ f3: (value: EffectValue<R2>) => R3,
458
+ f4: (value: EffectValue<R3>) => R4,
459
+ f5: (value: EffectValue<R4>) => R5,
460
+ f6: (value: EffectValue<R5>) => R6,
461
+ f7: (value: EffectValue<R6>) => R7,
462
+ f8: (value: EffectValue<R7>) => R8,
463
+ f9: (value: EffectValue<R8>) => R9
464
+ ): (
465
+ start: T0
466
+ ) => Effect<
467
+ EffectValue<R9>,
468
+ | EffectError<R1>
469
+ | EffectError<R2>
470
+ | EffectError<R3>
471
+ | EffectError<R4>
472
+ | EffectError<R5>
473
+ | EffectError<R6>
474
+ | EffectError<R7>
475
+ | EffectError<R8>
476
+ | EffectError<R9>,
477
+ EffectContext<R1> &
478
+ EffectContext<R2> &
479
+ EffectContext<R3> &
480
+ EffectContext<R4> &
481
+ EffectContext<R5> &
482
+ EffectContext<R6> &
483
+ EffectContext<R7> &
484
+ EffectContext<R8> &
485
+ EffectContext<R9>
486
+ >;
419
487
 
420
488
  export declare function effectPipe<
421
489
  T0,
422
- T1,
423
- T2,
424
- T3,
425
- T4,
426
- T5,
427
- T6,
428
- T7,
429
- T8,
430
- T9,
431
- T10,
432
- E1 = unknown,
433
- E2 = unknown,
434
- E3 = unknown,
435
- E4 = unknown,
436
- E5 = unknown,
437
- E6 = unknown,
438
- E7 = unknown,
439
- E8 = unknown,
440
- E9 = unknown,
441
- E10 = unknown,
442
- C1 = unknown,
443
- C2 = unknown,
444
- C3 = unknown,
445
- C4 = unknown,
446
- C5 = unknown,
447
- C6 = unknown,
448
- C7 = unknown,
449
- C8 = unknown,
450
- C9 = unknown,
451
- C10 = unknown
490
+ R1 extends AnyEffect = never,
491
+ R2 extends AnyEffect = never,
492
+ R3 extends AnyEffect = never,
493
+ R4 extends AnyEffect = never,
494
+ R5 extends AnyEffect = never,
495
+ R6 extends AnyEffect = never,
496
+ R7 extends AnyEffect = never,
497
+ R8 extends AnyEffect = never,
498
+ R9 extends AnyEffect = never,
499
+ R10 extends AnyEffect = never
452
500
  >(
453
- f1: (value: T0) => Effect<T1, E1, C1>,
454
- f2: (value: T1) => Effect<T2, E2, C2>,
455
- f3: (value: T2) => Effect<T3, E3, C3>,
456
- f4: (value: T3) => Effect<T4, E4, C4>,
457
- f5: (value: T4) => Effect<T5, E5, C5>,
458
- f6: (value: T5) => Effect<T6, E6, C6>,
459
- f7: (value: T6) => Effect<T7, E7, C7>,
460
- f8: (value: T7) => Effect<T8, E8, C8>,
461
- f9: (value: T8) => Effect<T9, E9, C9>,
462
- f10: (value: T9) => Effect<T10, E10, C10>
501
+ f1: (value: T0) => R1,
502
+ f2: (value: EffectValue<R1>) => R2,
503
+ f3: (value: EffectValue<R2>) => R3,
504
+ f4: (value: EffectValue<R3>) => R4,
505
+ f5: (value: EffectValue<R4>) => R5,
506
+ f6: (value: EffectValue<R5>) => R6,
507
+ f7: (value: EffectValue<R6>) => R7,
508
+ f8: (value: EffectValue<R7>) => R8,
509
+ f9: (value: EffectValue<R8>) => R9,
510
+ f10: (value: EffectValue<R9>) => R10
463
511
  ): (
464
512
  start: T0
465
- ) => Effect<T10, E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10, C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10>;
513
+ ) => Effect<
514
+ EffectValue<R10>,
515
+ | EffectError<R1>
516
+ | EffectError<R2>
517
+ | EffectError<R3>
518
+ | EffectError<R4>
519
+ | EffectError<R5>
520
+ | EffectError<R6>
521
+ | EffectError<R7>
522
+ | EffectError<R8>
523
+ | EffectError<R9>
524
+ | EffectError<R10>,
525
+ EffectContext<R1> &
526
+ EffectContext<R2> &
527
+ EffectContext<R3> &
528
+ EffectContext<R4> &
529
+ EffectContext<R5> &
530
+ EffectContext<R6> &
531
+ EffectContext<R7> &
532
+ EffectContext<R8> &
533
+ EffectContext<R9> &
534
+ EffectContext<R10>
535
+ >;
466
536
 
467
537
  export declare function effectPipe<
468
538
  T0,
469
- T1,
470
- T2,
471
- T3,
472
- T4,
473
- T5,
474
- T6,
475
- T7,
476
- T8,
477
- T9,
478
- T10,
479
- T11,
480
- E1 = unknown,
481
- E2 = unknown,
482
- E3 = unknown,
483
- E4 = unknown,
484
- E5 = unknown,
485
- E6 = unknown,
486
- E7 = unknown,
487
- E8 = unknown,
488
- E9 = unknown,
489
- E10 = unknown,
490
- E11 = unknown,
491
- C1 = unknown,
492
- C2 = unknown,
493
- C3 = unknown,
494
- C4 = unknown,
495
- C5 = unknown,
496
- C6 = unknown,
497
- C7 = unknown,
498
- C8 = unknown,
499
- C9 = unknown,
500
- C10 = unknown,
501
- C11 = unknown
539
+ R1 extends AnyEffect = never,
540
+ R2 extends AnyEffect = never,
541
+ R3 extends AnyEffect = never,
542
+ R4 extends AnyEffect = never,
543
+ R5 extends AnyEffect = never,
544
+ R6 extends AnyEffect = never,
545
+ R7 extends AnyEffect = never,
546
+ R8 extends AnyEffect = never,
547
+ R9 extends AnyEffect = never,
548
+ R10 extends AnyEffect = never,
549
+ R11 extends AnyEffect = never
502
550
  >(
503
- f1: (value: T0) => Effect<T1, E1, C1>,
504
- f2: (value: T1) => Effect<T2, E2, C2>,
505
- f3: (value: T2) => Effect<T3, E3, C3>,
506
- f4: (value: T3) => Effect<T4, E4, C4>,
507
- f5: (value: T4) => Effect<T5, E5, C5>,
508
- f6: (value: T5) => Effect<T6, E6, C6>,
509
- f7: (value: T6) => Effect<T7, E7, C7>,
510
- f8: (value: T7) => Effect<T8, E8, C8>,
511
- f9: (value: T8) => Effect<T9, E9, C9>,
512
- f10: (value: T9) => Effect<T10, E10, C10>,
513
- f11: (value: T10) => Effect<T11, E11, C11>
551
+ f1: (value: T0) => R1,
552
+ f2: (value: EffectValue<R1>) => R2,
553
+ f3: (value: EffectValue<R2>) => R3,
554
+ f4: (value: EffectValue<R3>) => R4,
555
+ f5: (value: EffectValue<R4>) => R5,
556
+ f6: (value: EffectValue<R5>) => R6,
557
+ f7: (value: EffectValue<R6>) => R7,
558
+ f8: (value: EffectValue<R7>) => R8,
559
+ f9: (value: EffectValue<R8>) => R9,
560
+ f10: (value: EffectValue<R9>) => R10,
561
+ f11: (value: EffectValue<R10>) => R11
514
562
  ): (
515
563
  start: T0
516
564
  ) => Effect<
517
- T11,
518
- E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11,
519
- C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11
565
+ EffectValue<R11>,
566
+ | EffectError<R1>
567
+ | EffectError<R2>
568
+ | EffectError<R3>
569
+ | EffectError<R4>
570
+ | EffectError<R5>
571
+ | EffectError<R6>
572
+ | EffectError<R7>
573
+ | EffectError<R8>
574
+ | EffectError<R9>
575
+ | EffectError<R10>
576
+ | EffectError<R11>,
577
+ EffectContext<R1> &
578
+ EffectContext<R2> &
579
+ EffectContext<R3> &
580
+ EffectContext<R4> &
581
+ EffectContext<R5> &
582
+ EffectContext<R6> &
583
+ EffectContext<R7> &
584
+ EffectContext<R8> &
585
+ EffectContext<R9> &
586
+ EffectContext<R10> &
587
+ EffectContext<R11>
520
588
  >;
521
589
 
522
590
  export declare function effectPipe<
523
591
  T0,
524
- T1,
525
- T2,
526
- T3,
527
- T4,
528
- T5,
529
- T6,
530
- T7,
531
- T8,
532
- T9,
533
- T10,
534
- T11,
535
- T12,
536
- E1 = unknown,
537
- E2 = unknown,
538
- E3 = unknown,
539
- E4 = unknown,
540
- E5 = unknown,
541
- E6 = unknown,
542
- E7 = unknown,
543
- E8 = unknown,
544
- E9 = unknown,
545
- E10 = unknown,
546
- E11 = unknown,
547
- E12 = unknown,
548
- C1 = unknown,
549
- C2 = unknown,
550
- C3 = unknown,
551
- C4 = unknown,
552
- C5 = unknown,
553
- C6 = unknown,
554
- C7 = unknown,
555
- C8 = unknown,
556
- C9 = unknown,
557
- C10 = unknown,
558
- C11 = unknown,
559
- C12 = unknown
592
+ R1 extends AnyEffect = never,
593
+ R2 extends AnyEffect = never,
594
+ R3 extends AnyEffect = never,
595
+ R4 extends AnyEffect = never,
596
+ R5 extends AnyEffect = never,
597
+ R6 extends AnyEffect = never,
598
+ R7 extends AnyEffect = never,
599
+ R8 extends AnyEffect = never,
600
+ R9 extends AnyEffect = never,
601
+ R10 extends AnyEffect = never,
602
+ R11 extends AnyEffect = never,
603
+ R12 extends AnyEffect = never
560
604
  >(
561
- f1: (value: T0) => Effect<T1, E1, C1>,
562
- f2: (value: T1) => Effect<T2, E2, C2>,
563
- f3: (value: T2) => Effect<T3, E3, C3>,
564
- f4: (value: T3) => Effect<T4, E4, C4>,
565
- f5: (value: T4) => Effect<T5, E5, C5>,
566
- f6: (value: T5) => Effect<T6, E6, C6>,
567
- f7: (value: T6) => Effect<T7, E7, C7>,
568
- f8: (value: T7) => Effect<T8, E8, C8>,
569
- f9: (value: T8) => Effect<T9, E9, C9>,
570
- f10: (value: T9) => Effect<T10, E10, C10>,
571
- f11: (value: T10) => Effect<T11, E11, C11>,
572
- f12: (value: T11) => Effect<T12, E12, C12>
605
+ f1: (value: T0) => R1,
606
+ f2: (value: EffectValue<R1>) => R2,
607
+ f3: (value: EffectValue<R2>) => R3,
608
+ f4: (value: EffectValue<R3>) => R4,
609
+ f5: (value: EffectValue<R4>) => R5,
610
+ f6: (value: EffectValue<R5>) => R6,
611
+ f7: (value: EffectValue<R6>) => R7,
612
+ f8: (value: EffectValue<R7>) => R8,
613
+ f9: (value: EffectValue<R8>) => R9,
614
+ f10: (value: EffectValue<R9>) => R10,
615
+ f11: (value: EffectValue<R10>) => R11,
616
+ f12: (value: EffectValue<R11>) => R12
573
617
  ): (
574
618
  start: T0
575
619
  ) => Effect<
576
- T12,
577
- E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12,
578
- C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12
620
+ EffectValue<R12>,
621
+ | EffectError<R1>
622
+ | EffectError<R2>
623
+ | EffectError<R3>
624
+ | EffectError<R4>
625
+ | EffectError<R5>
626
+ | EffectError<R6>
627
+ | EffectError<R7>
628
+ | EffectError<R8>
629
+ | EffectError<R9>
630
+ | EffectError<R10>
631
+ | EffectError<R11>
632
+ | EffectError<R12>,
633
+ EffectContext<R1> &
634
+ EffectContext<R2> &
635
+ EffectContext<R3> &
636
+ EffectContext<R4> &
637
+ EffectContext<R5> &
638
+ EffectContext<R6> &
639
+ EffectContext<R7> &
640
+ EffectContext<R8> &
641
+ EffectContext<R9> &
642
+ EffectContext<R10> &
643
+ EffectContext<R11> &
644
+ EffectContext<R12>
579
645
  >;
580
646
 
581
647
  export declare function effectPipe<
582
648
  T0,
583
- T1,
584
- T2,
585
- T3,
586
- T4,
587
- T5,
588
- T6,
589
- T7,
590
- T8,
591
- T9,
592
- T10,
593
- T11,
594
- T12,
595
- T13,
596
- E1 = unknown,
597
- E2 = unknown,
598
- E3 = unknown,
599
- E4 = unknown,
600
- E5 = unknown,
601
- E6 = unknown,
602
- E7 = unknown,
603
- E8 = unknown,
604
- E9 = unknown,
605
- E10 = unknown,
606
- E11 = unknown,
607
- E12 = unknown,
608
- E13 = unknown,
609
- C1 = unknown,
610
- C2 = unknown,
611
- C3 = unknown,
612
- C4 = unknown,
613
- C5 = unknown,
614
- C6 = unknown,
615
- C7 = unknown,
616
- C8 = unknown,
617
- C9 = unknown,
618
- C10 = unknown,
619
- C11 = unknown,
620
- C12 = unknown,
621
- C13 = unknown
649
+ R1 extends AnyEffect = never,
650
+ R2 extends AnyEffect = never,
651
+ R3 extends AnyEffect = never,
652
+ R4 extends AnyEffect = never,
653
+ R5 extends AnyEffect = never,
654
+ R6 extends AnyEffect = never,
655
+ R7 extends AnyEffect = never,
656
+ R8 extends AnyEffect = never,
657
+ R9 extends AnyEffect = never,
658
+ R10 extends AnyEffect = never,
659
+ R11 extends AnyEffect = never,
660
+ R12 extends AnyEffect = never,
661
+ R13 extends AnyEffect = never
622
662
  >(
623
- f1: (value: T0) => Effect<T1, E1, C1>,
624
- f2: (value: T1) => Effect<T2, E2, C2>,
625
- f3: (value: T2) => Effect<T3, E3, C3>,
626
- f4: (value: T3) => Effect<T4, E4, C4>,
627
- f5: (value: T4) => Effect<T5, E5, C5>,
628
- f6: (value: T5) => Effect<T6, E6, C6>,
629
- f7: (value: T6) => Effect<T7, E7, C7>,
630
- f8: (value: T7) => Effect<T8, E8, C8>,
631
- f9: (value: T8) => Effect<T9, E9, C9>,
632
- f10: (value: T9) => Effect<T10, E10, C10>,
633
- f11: (value: T10) => Effect<T11, E11, C11>,
634
- f12: (value: T11) => Effect<T12, E12, C12>,
635
- f13: (value: T12) => Effect<T13, E13, C13>
663
+ f1: (value: T0) => R1,
664
+ f2: (value: EffectValue<R1>) => R2,
665
+ f3: (value: EffectValue<R2>) => R3,
666
+ f4: (value: EffectValue<R3>) => R4,
667
+ f5: (value: EffectValue<R4>) => R5,
668
+ f6: (value: EffectValue<R5>) => R6,
669
+ f7: (value: EffectValue<R6>) => R7,
670
+ f8: (value: EffectValue<R7>) => R8,
671
+ f9: (value: EffectValue<R8>) => R9,
672
+ f10: (value: EffectValue<R9>) => R10,
673
+ f11: (value: EffectValue<R10>) => R11,
674
+ f12: (value: EffectValue<R11>) => R12,
675
+ f13: (value: EffectValue<R12>) => R13
636
676
  ): (
637
677
  start: T0
638
678
  ) => Effect<
639
- T13,
640
- E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13,
641
- C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13
679
+ EffectValue<R13>,
680
+ | EffectError<R1>
681
+ | EffectError<R2>
682
+ | EffectError<R3>
683
+ | EffectError<R4>
684
+ | EffectError<R5>
685
+ | EffectError<R6>
686
+ | EffectError<R7>
687
+ | EffectError<R8>
688
+ | EffectError<R9>
689
+ | EffectError<R10>
690
+ | EffectError<R11>
691
+ | EffectError<R12>
692
+ | EffectError<R13>,
693
+ EffectContext<R1> &
694
+ EffectContext<R2> &
695
+ EffectContext<R3> &
696
+ EffectContext<R4> &
697
+ EffectContext<R5> &
698
+ EffectContext<R6> &
699
+ EffectContext<R7> &
700
+ EffectContext<R8> &
701
+ EffectContext<R9> &
702
+ EffectContext<R10> &
703
+ EffectContext<R11> &
704
+ EffectContext<R12> &
705
+ EffectContext<R13>
642
706
  >;
643
707
 
644
708
  export declare function effectPipe<
645
709
  T0,
646
- T1,
647
- T2,
648
- T3,
649
- T4,
650
- T5,
651
- T6,
652
- T7,
653
- T8,
654
- T9,
655
- T10,
656
- T11,
657
- T12,
658
- T13,
659
- T14,
660
- E1 = unknown,
661
- E2 = unknown,
662
- E3 = unknown,
663
- E4 = unknown,
664
- E5 = unknown,
665
- E6 = unknown,
666
- E7 = unknown,
667
- E8 = unknown,
668
- E9 = unknown,
669
- E10 = unknown,
670
- E11 = unknown,
671
- E12 = unknown,
672
- E13 = unknown,
673
- E14 = unknown,
674
- C1 = unknown,
675
- C2 = unknown,
676
- C3 = unknown,
677
- C4 = unknown,
678
- C5 = unknown,
679
- C6 = unknown,
680
- C7 = unknown,
681
- C8 = unknown,
682
- C9 = unknown,
683
- C10 = unknown,
684
- C11 = unknown,
685
- C12 = unknown,
686
- C13 = unknown,
687
- C14 = unknown
710
+ R1 extends AnyEffect = never,
711
+ R2 extends AnyEffect = never,
712
+ R3 extends AnyEffect = never,
713
+ R4 extends AnyEffect = never,
714
+ R5 extends AnyEffect = never,
715
+ R6 extends AnyEffect = never,
716
+ R7 extends AnyEffect = never,
717
+ R8 extends AnyEffect = never,
718
+ R9 extends AnyEffect = never,
719
+ R10 extends AnyEffect = never,
720
+ R11 extends AnyEffect = never,
721
+ R12 extends AnyEffect = never,
722
+ R13 extends AnyEffect = never,
723
+ R14 extends AnyEffect = never
688
724
  >(
689
- f1: (value: T0) => Effect<T1, E1, C1>,
690
- f2: (value: T1) => Effect<T2, E2, C2>,
691
- f3: (value: T2) => Effect<T3, E3, C3>,
692
- f4: (value: T3) => Effect<T4, E4, C4>,
693
- f5: (value: T4) => Effect<T5, E5, C5>,
694
- f6: (value: T5) => Effect<T6, E6, C6>,
695
- f7: (value: T6) => Effect<T7, E7, C7>,
696
- f8: (value: T7) => Effect<T8, E8, C8>,
697
- f9: (value: T8) => Effect<T9, E9, C9>,
698
- f10: (value: T9) => Effect<T10, E10, C10>,
699
- f11: (value: T10) => Effect<T11, E11, C11>,
700
- f12: (value: T11) => Effect<T12, E12, C12>,
701
- f13: (value: T12) => Effect<T13, E13, C13>,
702
- f14: (value: T13) => Effect<T14, E14, C14>
725
+ f1: (value: T0) => R1,
726
+ f2: (value: EffectValue<R1>) => R2,
727
+ f3: (value: EffectValue<R2>) => R3,
728
+ f4: (value: EffectValue<R3>) => R4,
729
+ f5: (value: EffectValue<R4>) => R5,
730
+ f6: (value: EffectValue<R5>) => R6,
731
+ f7: (value: EffectValue<R6>) => R7,
732
+ f8: (value: EffectValue<R7>) => R8,
733
+ f9: (value: EffectValue<R8>) => R9,
734
+ f10: (value: EffectValue<R9>) => R10,
735
+ f11: (value: EffectValue<R10>) => R11,
736
+ f12: (value: EffectValue<R11>) => R12,
737
+ f13: (value: EffectValue<R12>) => R13,
738
+ f14: (value: EffectValue<R13>) => R14
703
739
  ): (
704
740
  start: T0
705
741
  ) => Effect<
706
- T14,
707
- E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14,
708
- C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14
742
+ EffectValue<R14>,
743
+ | EffectError<R1>
744
+ | EffectError<R2>
745
+ | EffectError<R3>
746
+ | EffectError<R4>
747
+ | EffectError<R5>
748
+ | EffectError<R6>
749
+ | EffectError<R7>
750
+ | EffectError<R8>
751
+ | EffectError<R9>
752
+ | EffectError<R10>
753
+ | EffectError<R11>
754
+ | EffectError<R12>
755
+ | EffectError<R13>
756
+ | EffectError<R14>,
757
+ EffectContext<R1> &
758
+ EffectContext<R2> &
759
+ EffectContext<R3> &
760
+ EffectContext<R4> &
761
+ EffectContext<R5> &
762
+ EffectContext<R6> &
763
+ EffectContext<R7> &
764
+ EffectContext<R8> &
765
+ EffectContext<R9> &
766
+ EffectContext<R10> &
767
+ EffectContext<R11> &
768
+ EffectContext<R12> &
769
+ EffectContext<R13> &
770
+ EffectContext<R14>
709
771
  >;
710
772
 
711
773
  export declare function effectPipe<
712
774
  T0,
713
- T1,
714
- T2,
715
- T3,
716
- T4,
717
- T5,
718
- T6,
719
- T7,
720
- T8,
721
- T9,
722
- T10,
723
- T11,
724
- T12,
725
- T13,
726
- T14,
727
- T15,
728
- E1 = unknown,
729
- E2 = unknown,
730
- E3 = unknown,
731
- E4 = unknown,
732
- E5 = unknown,
733
- E6 = unknown,
734
- E7 = unknown,
735
- E8 = unknown,
736
- E9 = unknown,
737
- E10 = unknown,
738
- E11 = unknown,
739
- E12 = unknown,
740
- E13 = unknown,
741
- E14 = unknown,
742
- E15 = unknown,
743
- C1 = unknown,
744
- C2 = unknown,
745
- C3 = unknown,
746
- C4 = unknown,
747
- C5 = unknown,
748
- C6 = unknown,
749
- C7 = unknown,
750
- C8 = unknown,
751
- C9 = unknown,
752
- C10 = unknown,
753
- C11 = unknown,
754
- C12 = unknown,
755
- C13 = unknown,
756
- C14 = unknown,
757
- C15 = unknown
775
+ R1 extends AnyEffect = never,
776
+ R2 extends AnyEffect = never,
777
+ R3 extends AnyEffect = never,
778
+ R4 extends AnyEffect = never,
779
+ R5 extends AnyEffect = never,
780
+ R6 extends AnyEffect = never,
781
+ R7 extends AnyEffect = never,
782
+ R8 extends AnyEffect = never,
783
+ R9 extends AnyEffect = never,
784
+ R10 extends AnyEffect = never,
785
+ R11 extends AnyEffect = never,
786
+ R12 extends AnyEffect = never,
787
+ R13 extends AnyEffect = never,
788
+ R14 extends AnyEffect = never,
789
+ R15 extends AnyEffect = never
758
790
  >(
759
- f1: (value: T0) => Effect<T1, E1, C1>,
760
- f2: (value: T1) => Effect<T2, E2, C2>,
761
- f3: (value: T2) => Effect<T3, E3, C3>,
762
- f4: (value: T3) => Effect<T4, E4, C4>,
763
- f5: (value: T4) => Effect<T5, E5, C5>,
764
- f6: (value: T5) => Effect<T6, E6, C6>,
765
- f7: (value: T6) => Effect<T7, E7, C7>,
766
- f8: (value: T7) => Effect<T8, E8, C8>,
767
- f9: (value: T8) => Effect<T9, E9, C9>,
768
- f10: (value: T9) => Effect<T10, E10, C10>,
769
- f11: (value: T10) => Effect<T11, E11, C11>,
770
- f12: (value: T11) => Effect<T12, E12, C12>,
771
- f13: (value: T12) => Effect<T13, E13, C13>,
772
- f14: (value: T13) => Effect<T14, E14, C14>,
773
- f15: (value: T14) => Effect<T15, E15, C15>
791
+ f1: (value: T0) => R1,
792
+ f2: (value: EffectValue<R1>) => R2,
793
+ f3: (value: EffectValue<R2>) => R3,
794
+ f4: (value: EffectValue<R3>) => R4,
795
+ f5: (value: EffectValue<R4>) => R5,
796
+ f6: (value: EffectValue<R5>) => R6,
797
+ f7: (value: EffectValue<R6>) => R7,
798
+ f8: (value: EffectValue<R7>) => R8,
799
+ f9: (value: EffectValue<R8>) => R9,
800
+ f10: (value: EffectValue<R9>) => R10,
801
+ f11: (value: EffectValue<R10>) => R11,
802
+ f12: (value: EffectValue<R11>) => R12,
803
+ f13: (value: EffectValue<R12>) => R13,
804
+ f14: (value: EffectValue<R13>) => R14,
805
+ f15: (value: EffectValue<R14>) => R15
774
806
  ): (
775
807
  start: T0
776
808
  ) => Effect<
777
- T15,
778
- E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14 | E15,
779
- C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15
809
+ EffectValue<R15>,
810
+ | EffectError<R1>
811
+ | EffectError<R2>
812
+ | EffectError<R3>
813
+ | EffectError<R4>
814
+ | EffectError<R5>
815
+ | EffectError<R6>
816
+ | EffectError<R7>
817
+ | EffectError<R8>
818
+ | EffectError<R9>
819
+ | EffectError<R10>
820
+ | EffectError<R11>
821
+ | EffectError<R12>
822
+ | EffectError<R13>
823
+ | EffectError<R14>
824
+ | EffectError<R15>,
825
+ EffectContext<R1> &
826
+ EffectContext<R2> &
827
+ EffectContext<R3> &
828
+ EffectContext<R4> &
829
+ EffectContext<R5> &
830
+ EffectContext<R6> &
831
+ EffectContext<R7> &
832
+ EffectContext<R8> &
833
+ EffectContext<R9> &
834
+ EffectContext<R10> &
835
+ EffectContext<R11> &
836
+ EffectContext<R12> &
837
+ EffectContext<R13> &
838
+ EffectContext<R14> &
839
+ EffectContext<R15>
780
840
  >;
781
841
 
782
842
  export declare function effectPipe<
783
843
  T0,
784
- T1,
785
- T2,
786
- T3,
787
- T4,
788
- T5,
789
- T6,
790
- T7,
791
- T8,
792
- T9,
793
- T10,
794
- T11,
795
- T12,
796
- T13,
797
- T14,
798
- T15,
799
- T16,
800
- E1 = unknown,
801
- E2 = unknown,
802
- E3 = unknown,
803
- E4 = unknown,
804
- E5 = unknown,
805
- E6 = unknown,
806
- E7 = unknown,
807
- E8 = unknown,
808
- E9 = unknown,
809
- E10 = unknown,
810
- E11 = unknown,
811
- E12 = unknown,
812
- E13 = unknown,
813
- E14 = unknown,
814
- E15 = unknown,
815
- E16 = unknown,
816
- C1 = unknown,
817
- C2 = unknown,
818
- C3 = unknown,
819
- C4 = unknown,
820
- C5 = unknown,
821
- C6 = unknown,
822
- C7 = unknown,
823
- C8 = unknown,
824
- C9 = unknown,
825
- C10 = unknown,
826
- C11 = unknown,
827
- C12 = unknown,
828
- C13 = unknown,
829
- C14 = unknown,
830
- C15 = unknown,
831
- C16 = unknown
844
+ R1 extends AnyEffect = never,
845
+ R2 extends AnyEffect = never,
846
+ R3 extends AnyEffect = never,
847
+ R4 extends AnyEffect = never,
848
+ R5 extends AnyEffect = never,
849
+ R6 extends AnyEffect = never,
850
+ R7 extends AnyEffect = never,
851
+ R8 extends AnyEffect = never,
852
+ R9 extends AnyEffect = never,
853
+ R10 extends AnyEffect = never,
854
+ R11 extends AnyEffect = never,
855
+ R12 extends AnyEffect = never,
856
+ R13 extends AnyEffect = never,
857
+ R14 extends AnyEffect = never,
858
+ R15 extends AnyEffect = never,
859
+ R16 extends AnyEffect = never
832
860
  >(
833
- f1: (value: T0) => Effect<T1, E1, C1>,
834
- f2: (value: T1) => Effect<T2, E2, C2>,
835
- f3: (value: T2) => Effect<T3, E3, C3>,
836
- f4: (value: T3) => Effect<T4, E4, C4>,
837
- f5: (value: T4) => Effect<T5, E5, C5>,
838
- f6: (value: T5) => Effect<T6, E6, C6>,
839
- f7: (value: T6) => Effect<T7, E7, C7>,
840
- f8: (value: T7) => Effect<T8, E8, C8>,
841
- f9: (value: T8) => Effect<T9, E9, C9>,
842
- f10: (value: T9) => Effect<T10, E10, C10>,
843
- f11: (value: T10) => Effect<T11, E11, C11>,
844
- f12: (value: T11) => Effect<T12, E12, C12>,
845
- f13: (value: T12) => Effect<T13, E13, C13>,
846
- f14: (value: T13) => Effect<T14, E14, C14>,
847
- f15: (value: T14) => Effect<T15, E15, C15>,
848
- f16: (value: T15) => Effect<T16, E16, C16>
861
+ f1: (value: T0) => R1,
862
+ f2: (value: EffectValue<R1>) => R2,
863
+ f3: (value: EffectValue<R2>) => R3,
864
+ f4: (value: EffectValue<R3>) => R4,
865
+ f5: (value: EffectValue<R4>) => R5,
866
+ f6: (value: EffectValue<R5>) => R6,
867
+ f7: (value: EffectValue<R6>) => R7,
868
+ f8: (value: EffectValue<R7>) => R8,
869
+ f9: (value: EffectValue<R8>) => R9,
870
+ f10: (value: EffectValue<R9>) => R10,
871
+ f11: (value: EffectValue<R10>) => R11,
872
+ f12: (value: EffectValue<R11>) => R12,
873
+ f13: (value: EffectValue<R12>) => R13,
874
+ f14: (value: EffectValue<R13>) => R14,
875
+ f15: (value: EffectValue<R14>) => R15,
876
+ f16: (value: EffectValue<R15>) => R16
849
877
  ): (
850
878
  start: T0
851
879
  ) => Effect<
852
- T16,
853
- E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14 | E15 | E16,
854
- C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15 & C16
880
+ EffectValue<R16>,
881
+ | EffectError<R1>
882
+ | EffectError<R2>
883
+ | EffectError<R3>
884
+ | EffectError<R4>
885
+ | EffectError<R5>
886
+ | EffectError<R6>
887
+ | EffectError<R7>
888
+ | EffectError<R8>
889
+ | EffectError<R9>
890
+ | EffectError<R10>
891
+ | EffectError<R11>
892
+ | EffectError<R12>
893
+ | EffectError<R13>
894
+ | EffectError<R14>
895
+ | EffectError<R15>
896
+ | EffectError<R16>,
897
+ EffectContext<R1> &
898
+ EffectContext<R2> &
899
+ EffectContext<R3> &
900
+ EffectContext<R4> &
901
+ EffectContext<R5> &
902
+ EffectContext<R6> &
903
+ EffectContext<R7> &
904
+ EffectContext<R8> &
905
+ EffectContext<R9> &
906
+ EffectContext<R10> &
907
+ EffectContext<R11> &
908
+ EffectContext<R12> &
909
+ EffectContext<R13> &
910
+ EffectContext<R14> &
911
+ EffectContext<R15> &
912
+ EffectContext<R16>
855
913
  >;
856
914
 
857
915
  export declare function effectPipe<
858
916
  T0,
859
- T1,
860
- T2,
861
- T3,
862
- T4,
863
- T5,
864
- T6,
865
- T7,
866
- T8,
867
- T9,
868
- T10,
869
- T11,
870
- T12,
871
- T13,
872
- T14,
873
- T15,
874
- T16,
875
- T17,
876
- E1 = unknown,
877
- E2 = unknown,
878
- E3 = unknown,
879
- E4 = unknown,
880
- E5 = unknown,
881
- E6 = unknown,
882
- E7 = unknown,
883
- E8 = unknown,
884
- E9 = unknown,
885
- E10 = unknown,
886
- E11 = unknown,
887
- E12 = unknown,
888
- E13 = unknown,
889
- E14 = unknown,
890
- E15 = unknown,
891
- E16 = unknown,
892
- E17 = unknown,
893
- C1 = unknown,
894
- C2 = unknown,
895
- C3 = unknown,
896
- C4 = unknown,
897
- C5 = unknown,
898
- C6 = unknown,
899
- C7 = unknown,
900
- C8 = unknown,
901
- C9 = unknown,
902
- C10 = unknown,
903
- C11 = unknown,
904
- C12 = unknown,
905
- C13 = unknown,
906
- C14 = unknown,
907
- C15 = unknown,
908
- C16 = unknown,
909
- C17 = unknown
917
+ R1 extends AnyEffect = never,
918
+ R2 extends AnyEffect = never,
919
+ R3 extends AnyEffect = never,
920
+ R4 extends AnyEffect = never,
921
+ R5 extends AnyEffect = never,
922
+ R6 extends AnyEffect = never,
923
+ R7 extends AnyEffect = never,
924
+ R8 extends AnyEffect = never,
925
+ R9 extends AnyEffect = never,
926
+ R10 extends AnyEffect = never,
927
+ R11 extends AnyEffect = never,
928
+ R12 extends AnyEffect = never,
929
+ R13 extends AnyEffect = never,
930
+ R14 extends AnyEffect = never,
931
+ R15 extends AnyEffect = never,
932
+ R16 extends AnyEffect = never,
933
+ R17 extends AnyEffect = never
910
934
  >(
911
- f1: (value: T0) => Effect<T1, E1, C1>,
912
- f2: (value: T1) => Effect<T2, E2, C2>,
913
- f3: (value: T2) => Effect<T3, E3, C3>,
914
- f4: (value: T3) => Effect<T4, E4, C4>,
915
- f5: (value: T4) => Effect<T5, E5, C5>,
916
- f6: (value: T5) => Effect<T6, E6, C6>,
917
- f7: (value: T6) => Effect<T7, E7, C7>,
918
- f8: (value: T7) => Effect<T8, E8, C8>,
919
- f9: (value: T8) => Effect<T9, E9, C9>,
920
- f10: (value: T9) => Effect<T10, E10, C10>,
921
- f11: (value: T10) => Effect<T11, E11, C11>,
922
- f12: (value: T11) => Effect<T12, E12, C12>,
923
- f13: (value: T12) => Effect<T13, E13, C13>,
924
- f14: (value: T13) => Effect<T14, E14, C14>,
925
- f15: (value: T14) => Effect<T15, E15, C15>,
926
- f16: (value: T15) => Effect<T16, E16, C16>,
927
- f17: (value: T16) => Effect<T17, E17, C17>
935
+ f1: (value: T0) => R1,
936
+ f2: (value: EffectValue<R1>) => R2,
937
+ f3: (value: EffectValue<R2>) => R3,
938
+ f4: (value: EffectValue<R3>) => R4,
939
+ f5: (value: EffectValue<R4>) => R5,
940
+ f6: (value: EffectValue<R5>) => R6,
941
+ f7: (value: EffectValue<R6>) => R7,
942
+ f8: (value: EffectValue<R7>) => R8,
943
+ f9: (value: EffectValue<R8>) => R9,
944
+ f10: (value: EffectValue<R9>) => R10,
945
+ f11: (value: EffectValue<R10>) => R11,
946
+ f12: (value: EffectValue<R11>) => R12,
947
+ f13: (value: EffectValue<R12>) => R13,
948
+ f14: (value: EffectValue<R13>) => R14,
949
+ f15: (value: EffectValue<R14>) => R15,
950
+ f16: (value: EffectValue<R15>) => R16,
951
+ f17: (value: EffectValue<R16>) => R17
928
952
  ): (
929
953
  start: T0
930
954
  ) => Effect<
931
- T17,
932
- E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14 | E15 | E16 | E17,
933
- C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15 & C16 & C17
955
+ EffectValue<R17>,
956
+ | EffectError<R1>
957
+ | EffectError<R2>
958
+ | EffectError<R3>
959
+ | EffectError<R4>
960
+ | EffectError<R5>
961
+ | EffectError<R6>
962
+ | EffectError<R7>
963
+ | EffectError<R8>
964
+ | EffectError<R9>
965
+ | EffectError<R10>
966
+ | EffectError<R11>
967
+ | EffectError<R12>
968
+ | EffectError<R13>
969
+ | EffectError<R14>
970
+ | EffectError<R15>
971
+ | EffectError<R16>
972
+ | EffectError<R17>,
973
+ EffectContext<R1> &
974
+ EffectContext<R2> &
975
+ EffectContext<R3> &
976
+ EffectContext<R4> &
977
+ EffectContext<R5> &
978
+ EffectContext<R6> &
979
+ EffectContext<R7> &
980
+ EffectContext<R8> &
981
+ EffectContext<R9> &
982
+ EffectContext<R10> &
983
+ EffectContext<R11> &
984
+ EffectContext<R12> &
985
+ EffectContext<R13> &
986
+ EffectContext<R14> &
987
+ EffectContext<R15> &
988
+ EffectContext<R16> &
989
+ EffectContext<R17>
934
990
  >;
935
991
 
936
992
  export declare function effectPipe<
937
993
  T0,
938
- T1,
939
- T2,
940
- T3,
941
- T4,
942
- T5,
943
- T6,
944
- T7,
945
- T8,
946
- T9,
947
- T10,
948
- T11,
949
- T12,
950
- T13,
951
- T14,
952
- T15,
953
- T16,
954
- T17,
955
- T18,
956
- E1 = unknown,
957
- E2 = unknown,
958
- E3 = unknown,
959
- E4 = unknown,
960
- E5 = unknown,
961
- E6 = unknown,
962
- E7 = unknown,
963
- E8 = unknown,
964
- E9 = unknown,
965
- E10 = unknown,
966
- E11 = unknown,
967
- E12 = unknown,
968
- E13 = unknown,
969
- E14 = unknown,
970
- E15 = unknown,
971
- E16 = unknown,
972
- E17 = unknown,
973
- E18 = unknown,
974
- C1 = unknown,
975
- C2 = unknown,
976
- C3 = unknown,
977
- C4 = unknown,
978
- C5 = unknown,
979
- C6 = unknown,
980
- C7 = unknown,
981
- C8 = unknown,
982
- C9 = unknown,
983
- C10 = unknown,
984
- C11 = unknown,
985
- C12 = unknown,
986
- C13 = unknown,
987
- C14 = unknown,
988
- C15 = unknown,
989
- C16 = unknown,
990
- C17 = unknown,
991
- C18 = unknown
994
+ R1 extends AnyEffect = never,
995
+ R2 extends AnyEffect = never,
996
+ R3 extends AnyEffect = never,
997
+ R4 extends AnyEffect = never,
998
+ R5 extends AnyEffect = never,
999
+ R6 extends AnyEffect = never,
1000
+ R7 extends AnyEffect = never,
1001
+ R8 extends AnyEffect = never,
1002
+ R9 extends AnyEffect = never,
1003
+ R10 extends AnyEffect = never,
1004
+ R11 extends AnyEffect = never,
1005
+ R12 extends AnyEffect = never,
1006
+ R13 extends AnyEffect = never,
1007
+ R14 extends AnyEffect = never,
1008
+ R15 extends AnyEffect = never,
1009
+ R16 extends AnyEffect = never,
1010
+ R17 extends AnyEffect = never,
1011
+ R18 extends AnyEffect = never
992
1012
  >(
993
- f1: (value: T0) => Effect<T1, E1, C1>,
994
- f2: (value: T1) => Effect<T2, E2, C2>,
995
- f3: (value: T2) => Effect<T3, E3, C3>,
996
- f4: (value: T3) => Effect<T4, E4, C4>,
997
- f5: (value: T4) => Effect<T5, E5, C5>,
998
- f6: (value: T5) => Effect<T6, E6, C6>,
999
- f7: (value: T6) => Effect<T7, E7, C7>,
1000
- f8: (value: T7) => Effect<T8, E8, C8>,
1001
- f9: (value: T8) => Effect<T9, E9, C9>,
1002
- f10: (value: T9) => Effect<T10, E10, C10>,
1003
- f11: (value: T10) => Effect<T11, E11, C11>,
1004
- f12: (value: T11) => Effect<T12, E12, C12>,
1005
- f13: (value: T12) => Effect<T13, E13, C13>,
1006
- f14: (value: T13) => Effect<T14, E14, C14>,
1007
- f15: (value: T14) => Effect<T15, E15, C15>,
1008
- f16: (value: T15) => Effect<T16, E16, C16>,
1009
- f17: (value: T16) => Effect<T17, E17, C17>,
1010
- f18: (value: T17) => Effect<T18, E18, C18>
1013
+ f1: (value: T0) => R1,
1014
+ f2: (value: EffectValue<R1>) => R2,
1015
+ f3: (value: EffectValue<R2>) => R3,
1016
+ f4: (value: EffectValue<R3>) => R4,
1017
+ f5: (value: EffectValue<R4>) => R5,
1018
+ f6: (value: EffectValue<R5>) => R6,
1019
+ f7: (value: EffectValue<R6>) => R7,
1020
+ f8: (value: EffectValue<R7>) => R8,
1021
+ f9: (value: EffectValue<R8>) => R9,
1022
+ f10: (value: EffectValue<R9>) => R10,
1023
+ f11: (value: EffectValue<R10>) => R11,
1024
+ f12: (value: EffectValue<R11>) => R12,
1025
+ f13: (value: EffectValue<R12>) => R13,
1026
+ f14: (value: EffectValue<R13>) => R14,
1027
+ f15: (value: EffectValue<R14>) => R15,
1028
+ f16: (value: EffectValue<R15>) => R16,
1029
+ f17: (value: EffectValue<R16>) => R17,
1030
+ f18: (value: EffectValue<R17>) => R18
1011
1031
  ): (
1012
1032
  start: T0
1013
1033
  ) => Effect<
1014
- T18,
1015
- E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14 | E15 | E16 | E17 | E18,
1016
- C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15 & C16 & C17 & C18
1034
+ EffectValue<R18>,
1035
+ | EffectError<R1>
1036
+ | EffectError<R2>
1037
+ | EffectError<R3>
1038
+ | EffectError<R4>
1039
+ | EffectError<R5>
1040
+ | EffectError<R6>
1041
+ | EffectError<R7>
1042
+ | EffectError<R8>
1043
+ | EffectError<R9>
1044
+ | EffectError<R10>
1045
+ | EffectError<R11>
1046
+ | EffectError<R12>
1047
+ | EffectError<R13>
1048
+ | EffectError<R14>
1049
+ | EffectError<R15>
1050
+ | EffectError<R16>
1051
+ | EffectError<R17>
1052
+ | EffectError<R18>,
1053
+ EffectContext<R1> &
1054
+ EffectContext<R2> &
1055
+ EffectContext<R3> &
1056
+ EffectContext<R4> &
1057
+ EffectContext<R5> &
1058
+ EffectContext<R6> &
1059
+ EffectContext<R7> &
1060
+ EffectContext<R8> &
1061
+ EffectContext<R9> &
1062
+ EffectContext<R10> &
1063
+ EffectContext<R11> &
1064
+ EffectContext<R12> &
1065
+ EffectContext<R13> &
1066
+ EffectContext<R14> &
1067
+ EffectContext<R15> &
1068
+ EffectContext<R16> &
1069
+ EffectContext<R17> &
1070
+ EffectContext<R18>
1017
1071
  >;
1018
1072
 
1019
1073
  export declare function effectPipe<
1020
1074
  T0,
1021
- T1,
1022
- T2,
1023
- T3,
1024
- T4,
1025
- T5,
1026
- T6,
1027
- T7,
1028
- T8,
1029
- T9,
1030
- T10,
1031
- T11,
1032
- T12,
1033
- T13,
1034
- T14,
1035
- T15,
1036
- T16,
1037
- T17,
1038
- T18,
1039
- T19,
1040
- E1 = unknown,
1041
- E2 = unknown,
1042
- E3 = unknown,
1043
- E4 = unknown,
1044
- E5 = unknown,
1045
- E6 = unknown,
1046
- E7 = unknown,
1047
- E8 = unknown,
1048
- E9 = unknown,
1049
- E10 = unknown,
1050
- E11 = unknown,
1051
- E12 = unknown,
1052
- E13 = unknown,
1053
- E14 = unknown,
1054
- E15 = unknown,
1055
- E16 = unknown,
1056
- E17 = unknown,
1057
- E18 = unknown,
1058
- E19 = unknown,
1059
- C1 = unknown,
1060
- C2 = unknown,
1061
- C3 = unknown,
1062
- C4 = unknown,
1063
- C5 = unknown,
1064
- C6 = unknown,
1065
- C7 = unknown,
1066
- C8 = unknown,
1067
- C9 = unknown,
1068
- C10 = unknown,
1069
- C11 = unknown,
1070
- C12 = unknown,
1071
- C13 = unknown,
1072
- C14 = unknown,
1073
- C15 = unknown,
1074
- C16 = unknown,
1075
- C17 = unknown,
1076
- C18 = unknown,
1077
- C19 = unknown
1075
+ R1 extends AnyEffect = never,
1076
+ R2 extends AnyEffect = never,
1077
+ R3 extends AnyEffect = never,
1078
+ R4 extends AnyEffect = never,
1079
+ R5 extends AnyEffect = never,
1080
+ R6 extends AnyEffect = never,
1081
+ R7 extends AnyEffect = never,
1082
+ R8 extends AnyEffect = never,
1083
+ R9 extends AnyEffect = never,
1084
+ R10 extends AnyEffect = never,
1085
+ R11 extends AnyEffect = never,
1086
+ R12 extends AnyEffect = never,
1087
+ R13 extends AnyEffect = never,
1088
+ R14 extends AnyEffect = never,
1089
+ R15 extends AnyEffect = never,
1090
+ R16 extends AnyEffect = never,
1091
+ R17 extends AnyEffect = never,
1092
+ R18 extends AnyEffect = never,
1093
+ R19 extends AnyEffect = never
1078
1094
  >(
1079
- f1: (value: T0) => Effect<T1, E1, C1>,
1080
- f2: (value: T1) => Effect<T2, E2, C2>,
1081
- f3: (value: T2) => Effect<T3, E3, C3>,
1082
- f4: (value: T3) => Effect<T4, E4, C4>,
1083
- f5: (value: T4) => Effect<T5, E5, C5>,
1084
- f6: (value: T5) => Effect<T6, E6, C6>,
1085
- f7: (value: T6) => Effect<T7, E7, C7>,
1086
- f8: (value: T7) => Effect<T8, E8, C8>,
1087
- f9: (value: T8) => Effect<T9, E9, C9>,
1088
- f10: (value: T9) => Effect<T10, E10, C10>,
1089
- f11: (value: T10) => Effect<T11, E11, C11>,
1090
- f12: (value: T11) => Effect<T12, E12, C12>,
1091
- f13: (value: T12) => Effect<T13, E13, C13>,
1092
- f14: (value: T13) => Effect<T14, E14, C14>,
1093
- f15: (value: T14) => Effect<T15, E15, C15>,
1094
- f16: (value: T15) => Effect<T16, E16, C16>,
1095
- f17: (value: T16) => Effect<T17, E17, C17>,
1096
- f18: (value: T17) => Effect<T18, E18, C18>,
1097
- f19: (value: T18) => Effect<T19, E19, C19>
1095
+ f1: (value: T0) => R1,
1096
+ f2: (value: EffectValue<R1>) => R2,
1097
+ f3: (value: EffectValue<R2>) => R3,
1098
+ f4: (value: EffectValue<R3>) => R4,
1099
+ f5: (value: EffectValue<R4>) => R5,
1100
+ f6: (value: EffectValue<R5>) => R6,
1101
+ f7: (value: EffectValue<R6>) => R7,
1102
+ f8: (value: EffectValue<R7>) => R8,
1103
+ f9: (value: EffectValue<R8>) => R9,
1104
+ f10: (value: EffectValue<R9>) => R10,
1105
+ f11: (value: EffectValue<R10>) => R11,
1106
+ f12: (value: EffectValue<R11>) => R12,
1107
+ f13: (value: EffectValue<R12>) => R13,
1108
+ f14: (value: EffectValue<R13>) => R14,
1109
+ f15: (value: EffectValue<R14>) => R15,
1110
+ f16: (value: EffectValue<R15>) => R16,
1111
+ f17: (value: EffectValue<R16>) => R17,
1112
+ f18: (value: EffectValue<R17>) => R18,
1113
+ f19: (value: EffectValue<R18>) => R19
1098
1114
  ): (
1099
1115
  start: T0
1100
1116
  ) => Effect<
1101
- T19,
1102
- E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14 | E15 | E16 | E17 | E18 | E19,
1103
- C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15 & C16 & C17 & C18 & C19
1117
+ EffectValue<R19>,
1118
+ | EffectError<R1>
1119
+ | EffectError<R2>
1120
+ | EffectError<R3>
1121
+ | EffectError<R4>
1122
+ | EffectError<R5>
1123
+ | EffectError<R6>
1124
+ | EffectError<R7>
1125
+ | EffectError<R8>
1126
+ | EffectError<R9>
1127
+ | EffectError<R10>
1128
+ | EffectError<R11>
1129
+ | EffectError<R12>
1130
+ | EffectError<R13>
1131
+ | EffectError<R14>
1132
+ | EffectError<R15>
1133
+ | EffectError<R16>
1134
+ | EffectError<R17>
1135
+ | EffectError<R18>
1136
+ | EffectError<R19>,
1137
+ EffectContext<R1> &
1138
+ EffectContext<R2> &
1139
+ EffectContext<R3> &
1140
+ EffectContext<R4> &
1141
+ EffectContext<R5> &
1142
+ EffectContext<R6> &
1143
+ EffectContext<R7> &
1144
+ EffectContext<R8> &
1145
+ EffectContext<R9> &
1146
+ EffectContext<R10> &
1147
+ EffectContext<R11> &
1148
+ EffectContext<R12> &
1149
+ EffectContext<R13> &
1150
+ EffectContext<R14> &
1151
+ EffectContext<R15> &
1152
+ EffectContext<R16> &
1153
+ EffectContext<R17> &
1154
+ EffectContext<R18> &
1155
+ EffectContext<R19>
1104
1156
  >;
1105
1157
 
1106
1158
  export declare function effectPipe<
1107
1159
  T0,
1108
- T1,
1109
- T2,
1110
- T3,
1111
- T4,
1112
- T5,
1113
- T6,
1114
- T7,
1115
- T8,
1116
- T9,
1117
- T10,
1118
- T11,
1119
- T12,
1120
- T13,
1121
- T14,
1122
- T15,
1123
- T16,
1124
- T17,
1125
- T18,
1126
- T19,
1127
- T20,
1128
- E1 = unknown,
1129
- E2 = unknown,
1130
- E3 = unknown,
1131
- E4 = unknown,
1132
- E5 = unknown,
1133
- E6 = unknown,
1134
- E7 = unknown,
1135
- E8 = unknown,
1136
- E9 = unknown,
1137
- E10 = unknown,
1138
- E11 = unknown,
1139
- E12 = unknown,
1140
- E13 = unknown,
1141
- E14 = unknown,
1142
- E15 = unknown,
1143
- E16 = unknown,
1144
- E17 = unknown,
1145
- E18 = unknown,
1146
- E19 = unknown,
1147
- E20 = unknown,
1148
- C1 = unknown,
1149
- C2 = unknown,
1150
- C3 = unknown,
1151
- C4 = unknown,
1152
- C5 = unknown,
1153
- C6 = unknown,
1154
- C7 = unknown,
1155
- C8 = unknown,
1156
- C9 = unknown,
1157
- C10 = unknown,
1158
- C11 = unknown,
1159
- C12 = unknown,
1160
- C13 = unknown,
1161
- C14 = unknown,
1162
- C15 = unknown,
1163
- C16 = unknown,
1164
- C17 = unknown,
1165
- C18 = unknown,
1166
- C19 = unknown,
1167
- C20 = unknown
1160
+ R1 extends AnyEffect = never,
1161
+ R2 extends AnyEffect = never,
1162
+ R3 extends AnyEffect = never,
1163
+ R4 extends AnyEffect = never,
1164
+ R5 extends AnyEffect = never,
1165
+ R6 extends AnyEffect = never,
1166
+ R7 extends AnyEffect = never,
1167
+ R8 extends AnyEffect = never,
1168
+ R9 extends AnyEffect = never,
1169
+ R10 extends AnyEffect = never,
1170
+ R11 extends AnyEffect = never,
1171
+ R12 extends AnyEffect = never,
1172
+ R13 extends AnyEffect = never,
1173
+ R14 extends AnyEffect = never,
1174
+ R15 extends AnyEffect = never,
1175
+ R16 extends AnyEffect = never,
1176
+ R17 extends AnyEffect = never,
1177
+ R18 extends AnyEffect = never,
1178
+ R19 extends AnyEffect = never,
1179
+ R20 extends AnyEffect = never
1168
1180
  >(
1169
- f1: (value: T0) => Effect<T1, E1, C1>,
1170
- f2: (value: T1) => Effect<T2, E2, C2>,
1171
- f3: (value: T2) => Effect<T3, E3, C3>,
1172
- f4: (value: T3) => Effect<T4, E4, C4>,
1173
- f5: (value: T4) => Effect<T5, E5, C5>,
1174
- f6: (value: T5) => Effect<T6, E6, C6>,
1175
- f7: (value: T6) => Effect<T7, E7, C7>,
1176
- f8: (value: T7) => Effect<T8, E8, C8>,
1177
- f9: (value: T8) => Effect<T9, E9, C9>,
1178
- f10: (value: T9) => Effect<T10, E10, C10>,
1179
- f11: (value: T10) => Effect<T11, E11, C11>,
1180
- f12: (value: T11) => Effect<T12, E12, C12>,
1181
- f13: (value: T12) => Effect<T13, E13, C13>,
1182
- f14: (value: T13) => Effect<T14, E14, C14>,
1183
- f15: (value: T14) => Effect<T15, E15, C15>,
1184
- f16: (value: T15) => Effect<T16, E16, C16>,
1185
- f17: (value: T16) => Effect<T17, E17, C17>,
1186
- f18: (value: T17) => Effect<T18, E18, C18>,
1187
- f19: (value: T18) => Effect<T19, E19, C19>,
1188
- f20: (value: T19) => Effect<T20, E20, C20>
1181
+ f1: (value: T0) => R1,
1182
+ f2: (value: EffectValue<R1>) => R2,
1183
+ f3: (value: EffectValue<R2>) => R3,
1184
+ f4: (value: EffectValue<R3>) => R4,
1185
+ f5: (value: EffectValue<R4>) => R5,
1186
+ f6: (value: EffectValue<R5>) => R6,
1187
+ f7: (value: EffectValue<R6>) => R7,
1188
+ f8: (value: EffectValue<R7>) => R8,
1189
+ f9: (value: EffectValue<R8>) => R9,
1190
+ f10: (value: EffectValue<R9>) => R10,
1191
+ f11: (value: EffectValue<R10>) => R11,
1192
+ f12: (value: EffectValue<R11>) => R12,
1193
+ f13: (value: EffectValue<R12>) => R13,
1194
+ f14: (value: EffectValue<R13>) => R14,
1195
+ f15: (value: EffectValue<R14>) => R15,
1196
+ f16: (value: EffectValue<R15>) => R16,
1197
+ f17: (value: EffectValue<R16>) => R17,
1198
+ f18: (value: EffectValue<R17>) => R18,
1199
+ f19: (value: EffectValue<R18>) => R19,
1200
+ f20: (value: EffectValue<R19>) => R20
1189
1201
  ): (
1190
1202
  start: T0
1191
1203
  ) => Effect<
1192
- T20,
1193
- E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14 | E15 | E16 | E17 | E18 | E19 | E20,
1194
- C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15 & C16 & C17 & C18 & C19 & C20
1204
+ EffectValue<R20>,
1205
+ | EffectError<R1>
1206
+ | EffectError<R2>
1207
+ | EffectError<R3>
1208
+ | EffectError<R4>
1209
+ | EffectError<R5>
1210
+ | EffectError<R6>
1211
+ | EffectError<R7>
1212
+ | EffectError<R8>
1213
+ | EffectError<R9>
1214
+ | EffectError<R10>
1215
+ | EffectError<R11>
1216
+ | EffectError<R12>
1217
+ | EffectError<R13>
1218
+ | EffectError<R14>
1219
+ | EffectError<R15>
1220
+ | EffectError<R16>
1221
+ | EffectError<R17>
1222
+ | EffectError<R18>
1223
+ | EffectError<R19>
1224
+ | EffectError<R20>,
1225
+ EffectContext<R1> &
1226
+ EffectContext<R2> &
1227
+ EffectContext<R3> &
1228
+ EffectContext<R4> &
1229
+ EffectContext<R5> &
1230
+ EffectContext<R6> &
1231
+ EffectContext<R7> &
1232
+ EffectContext<R8> &
1233
+ EffectContext<R9> &
1234
+ EffectContext<R10> &
1235
+ EffectContext<R11> &
1236
+ EffectContext<R12> &
1237
+ EffectContext<R13> &
1238
+ EffectContext<R14> &
1239
+ EffectContext<R15> &
1240
+ EffectContext<R16> &
1241
+ EffectContext<R17> &
1242
+ EffectContext<R18> &
1243
+ EffectContext<R19> &
1244
+ EffectContext<R20>
1195
1245
  >;
1246
+ // END effectPipe overloads.
1196
1247
 
1197
1248
  /**
1198
- * Wraps one Command execution, or one `Parallel` (`type` `'Parallel'`, `name` `'Parallel'`), whose `op`
1199
- * runs its branches and returns its decision, even when a branch threw: the run rejects with the throw
1200
- * once the hook has returned. A hook must call `op` for a `Parallel`; returning without
1201
- * calling it is legitimate only for a Command, which is how replay works. Only a replay passes `op` an
1202
- * argument, the recorded decision. `path` is the step's position in the Effect tree rather than its
1203
- * position in completion order, so it is the same in a replay as in the recorded run even when
1204
- * `Parallel` branches finish in a different order. Hooks that take three parameters are unaffected. The
1205
- * interpreter always passes `path`, so it is declared as present, and a wrapper that calls another
1206
- * `StepRunner` has to pass it on: a trace recorded without paths cannot replay a `Parallel`.
1249
+ * Wraps each Command, and each `Parallel`. Call `op` and return its result; a hook that calls another passes `path` on.
1207
1250
  */
1208
1251
  export type StepRunner = (
1209
1252
  name: string,
@@ -1212,11 +1255,7 @@ export type StepRunner = (
1212
1255
  path: string
1213
1256
  ) => Promise<unknown>;
1214
1257
 
1215
- /**
1216
- * Which branch, if any, cancelled a `Parallel`: what a `Parallel`'s step returns and what its trace entry
1217
- * records, so a replay reproduces the decision rather than recomputing it from timing. `branch: null`
1218
- * means an enclosing `Parallel` cancelled it.
1219
- */
1258
+ /** Which branch, if any, cancelled a `Parallel`; `branch: null` means an enclosing one did. */
1220
1259
  export type ParallelDecision = { cancelled: false } | { cancelled: true; branch: number | null };
1221
1260
 
1222
1261
  /** `flowName` is `context.flowName`, or `''` when the context has none; the interpreter always passes it. */
@@ -1226,12 +1265,8 @@ export type RunWrapper = (
1226
1265
  flowName: string
1227
1266
  ) => Promise<SuccessState<unknown> | FailureState<unknown>>;
1228
1267
 
1229
- /**
1230
- * Runs before each Command; throw to abort. The interpreter awaits whatever it returns, so it need not be
1231
- * async. A union of two function types rather than one returning `Promise<void> | void`: in a JavaScript
1232
- * file, a JSDoc `@type` on an async function is its declared signature, and an async function's declared
1233
- * return type has to be a `Promise`, so the single signature broke every JSDoc-annotated async interceptor.
1234
- */
1268
+ // A union, so a JSDoc `@type` on an async function fits it too.
1269
+ /** Runs before each Command; throw to stop it. It need not be async. */
1235
1270
  export type CommandInterceptor =
1236
1271
  | ((command: CommandState<unknown, unknown>, context?: any) => Promise<void>)
1237
1272
  | ((command: CommandState<unknown, unknown>, context?: any) => void);
@@ -1242,110 +1277,68 @@ export interface EffectConfiguration {
1242
1277
  onBeforeCommand?: CommandInterceptor;
1243
1278
  }
1244
1279
 
1245
- /**
1246
- * Adds a layer to the global runner's wiring and returns a function that removes it. Layers merge:
1247
- * `onStep` and `onRun` nest with the earliest layer outermost, `onBeforeCommand` interceptors all run
1248
- * in the order installed. Several configurations passed
1249
- * to one call form one layer, which is the same as installing them in separate calls. Calling with no
1250
- * arguments at all removes every layer; a call whose arguments are all `undefined` adds and removes nothing.
1251
- *
1252
- * A `retry` key throws a `TypeError`: retry options are per-use, passed to `Retry(effect, options)`.
1253
- */
1280
+ /** Adds a layer of hooks and returns a function that removes it. With no arguments, removes every layer. */
1254
1281
  export declare function configureEffect(...configs: (EffectConfiguration | undefined)[]): () => void;
1255
1282
 
1256
- /**
1257
- * A per-call configuration for `runEffect`. With `inherit: true` (default) the call's hooks are added to
1258
- * the wiring `configureEffect` installed: where both define a hook the two nest, global outermost. With
1259
- * `inherit: false` the global wiring is ignored, so an unset hook falls back to the library default.
1260
- * A `retry` key throws a `TypeError`, as it does for `configureEffect`.
1261
- */
1283
+ /** Hooks for one `runEffect` call, inside the installed ones; `inherit: false` leaves those out. */
1262
1284
  export type CallConfiguration = EffectConfiguration & { inherit?: boolean };
1263
1285
 
1264
- /**
1265
- * A flow whose context type is not `unknown` reads one through `Ask`, so the context is required for it;
1266
- * the runtime would otherwise hand `Ask` an empty object.
1267
- */
1286
+ /** The context a run is given: what the flow reads, and a `flowName` naming the run in traces and spans. */
1287
+ export type RunContext<Ctx> = unknown extends Ctx ? Ctx : Ctx extends object ? Ctx & { flowName?: string } : Ctx;
1288
+
1289
+ /** Runs a flow and returns its `Success` or `Failure`. A flow that reads a context requires one. */
1268
1290
  export declare function runEffect<T, E = unknown, Ctx = unknown>(
1269
1291
  effect: Effect<T, E, Ctx>,
1270
1292
  ...args: unknown extends Ctx
1271
1293
  ? [context?: Ctx, callConfig?: CallConfiguration]
1272
- : [context: Ctx, callConfig?: CallConfiguration]
1294
+ : [context: RunContext<Ctx>, callConfig?: CallConfiguration]
1273
1295
  ): Promise<SuccessState<T> | FailureState<E>>;
1274
1296
 
1275
1297
  export type ReplayStep = {
1276
- /**
1277
- * Zero-based position in this run's completion order. Not stable for a flow containing `Parallel`,
1278
- * whose branches finish in whatever order they finish in. Prefer `path`.
1279
- */
1298
+ /** Position in completion order, which varies with a `Parallel`; prefer `path`. */
1280
1299
  index: number;
1281
1300
  /** `meta.name`, `cmd.name`, or 'anonymous'; 'Parallel' for a `Parallel`'s step. */
1282
1301
  name: string;
1283
- /**
1284
- * 'Command', or 'Parallel' for the step a `Parallel` records its decision under. A Resolver that
1285
- * answers a 'Parallel' step with `{ result: ParallelDecision }` has it reproduced; anything else
1286
- * replays that `Parallel` under timing. A 'Parallel' step does not advance `index`.
1287
- */
1302
+ /** `'Command'`, or `'Parallel'` for a `Parallel`'s decision. */
1288
1303
  type: string;
1289
- /**
1290
- * The Command's position in the Effect tree, stable across runs: steps are numbered within a
1291
- * subtree, and each `Parallel` branch and `Retry` attempt opens its own prefix. This is what a
1292
- * replay matches on, and what a Resolver should key off. Every step has one; it is a recorded
1293
- * `TraceEntry` that can lack a path, when it was written by hand or recorded before paths existed.
1294
- */
1304
+ /** The step's position in the flow, the same in every run; a Resolver should key off it. */
1295
1305
  path: string;
1296
1306
  };
1297
1307
 
1298
1308
  /**
1299
- * What production observed for a step. `{ result }` feeds the Command's `next`;
1300
- * `{ error }` is thrown so the interpreter produces a Failure. A Resolver returning
1301
- * `undefined` means "not recorded", which is distinct from `{ result: undefined }`.
1309
+ * What production got for a step: `{ result }` or `{ error }`. A Resolver returns `undefined` for a step it has no
1310
+ * record of.
1302
1311
  */
1303
1312
  export type ReplayOutcome = { result: unknown } | { error: unknown };
1304
1313
 
1305
1314
  export type Resolver = (step: ReplayStep) => ReplayOutcome | undefined;
1306
1315
 
1307
- /**
1308
- * A recorded step: a Command's result or error, or a `Parallel`'s decision, whose `command` is
1309
- * 'Parallel', whose `path` ends in the `Parallel`'s `p` marker, and whose `result` is a `ParallelDecision`.
1310
- */
1316
+ /** One recorded step: a Command's result or error, or a `Parallel`'s decision. */
1311
1317
  export type TraceEntry = {
1312
1318
  command: string;
1313
- /**
1314
- * The Command's position in the Effect tree. Order-independent, so a replay lines a recorded step
1315
- * up with the step that asked for it even when `Parallel` branches finish out of order.
1316
- */
1319
+ /** The step's position in the flow, which a replay matches on. */
1317
1320
  path?: string;
1318
1321
  result?: unknown;
1319
- /**
1320
- * Marks a step that threw. The `error` key alone cannot, since JSON drops it when the value is
1321
- * `undefined`, as it is for `reject()` with no argument. An entry with an `error` and no `threw`, as
1322
- * older traces have, still replays as a throw.
1323
- */
1324
- threw?: true;
1322
+ /** Marks a step that threw; `false` is the same as leaving it out. */
1323
+ threw?: boolean;
1325
1324
  error?: unknown;
1326
1325
  /** How long the Command took in production, rounded to microseconds. */
1327
1326
  durationMs?: number;
1328
1327
  };
1329
1328
 
1330
- /** The reference trace format. A convenience, not a contract: write a Resolver for any other shape. */
1331
- export type TraceLog = {
1329
+ /** The reference trace format; for any other, write a Resolver. `I` and `C` are the input and context types. */
1330
+ export type TraceLog<I = unknown, C = unknown> = {
1332
1331
  flowName?: string;
1333
1332
  version?: string;
1334
- initialInput?: unknown;
1335
- context?: unknown;
1333
+ initialInput?: I;
1334
+ context?: C;
1336
1335
  dropped?: number;
1337
1336
  trace: TraceEntry[];
1338
1337
  };
1339
1338
 
1340
1339
  export interface RecorderOptions {
1341
1340
  /**
1342
- * Scrubs every value a trace holds: each Command's result, each serialized error, and the
1343
- * `initialInput` and `context` stored on the trace itself. `kind` is `'result'`, `'error'`,
1344
- * `'initialInput'`, or `'context'`; `name` is the Command's name for the first two and the kind for
1345
- * the last two. This is the single place PII is kept out of a trace, which is why it sees all four.
1346
- * It is handed a copy, so changing the value in place never reaches the run.
1347
- * `value` is `any` rather than `unknown` because a redact nearly always spreads or reads it, as in
1348
- * `{ ...value, password: '[redacted]' }`, and it can be any value a flow handles.
1341
+ * Scrubs each value before it enters a trace; `kind` says which. It gets a copy, so editing it in place is safe.
1349
1342
  */
1350
1343
  redact?: (value: any, name: string, kind: 'result' | 'error' | 'initialInput' | 'context') => unknown;
1351
1344
  /** Cap trace length; further steps are counted in `dropped`, not stored. */
@@ -1354,75 +1347,59 @@ export interface RecorderOptions {
1354
1347
  stack?: boolean;
1355
1348
  }
1356
1349
 
1357
- export interface TraceMeta {
1358
- initialInput?: unknown;
1350
+ /** The trace's own fields, as `toTrace` takes them; the returned trace keeps the input's and context's types. */
1351
+ export interface TraceMeta<I = unknown, C = unknown> {
1352
+ initialInput?: I;
1359
1353
  flowName?: string;
1360
- context?: unknown;
1354
+ context?: C;
1361
1355
  /** Accepts `undefined`, so `process.env.BUILD_ID` passes under `exactOptionalPropertyTypes`. */
1362
1356
  version?: string | undefined;
1363
1357
  }
1364
1358
 
1359
+ /** An `onStep` hook that records each step, and `toTrace` to package the recording as a trace. */
1365
1360
  export declare function recorder(options?: RecorderOptions): {
1366
1361
  onStep: StepRunner;
1367
1362
  entries: TraceEntry[];
1368
- toTrace(meta?: TraceMeta): TraceLog;
1363
+ toTrace<I = unknown, C = unknown>(meta?: TraceMeta<I, C>): TraceLog<I, C>;
1369
1364
  };
1370
1365
 
1371
1366
  /** `recordEffect`'s options: recorder options, plus the context the run gets and a build id. */
1372
- export type RecordOptions<Ctx = unknown> = RecorderOptions & { context?: Ctx; version?: string | undefined };
1367
+ export type RecordOptions<Ctx = unknown> = RecorderOptions & {
1368
+ context?: RunContext<Ctx>;
1369
+ version?: string | undefined;
1370
+ };
1373
1371
 
1374
- /**
1375
- * The input is checked against what the flow takes. A flow whose context type is not `unknown` reads
1376
- * one through `Ask`, so recording it requires `options.context`.
1377
- */
1372
+ /** Runs a flow for real and returns its outcome with a trace, which keeps the input's type for the replay. */
1378
1373
  export declare function recordEffect<I, T, E = unknown, Ctx = unknown>(
1379
1374
  flowFn: (input: I) => Effect<T, E, Ctx>,
1380
1375
  initialInput: I,
1381
- ...options: unknown extends Ctx ? [options?: RecordOptions<Ctx>] : [options: RecordOptions<Ctx> & { context: Ctx }]
1382
- ): Promise<{ result: SuccessState<T> | FailureState<E>; trace: TraceLog }>;
1376
+ ...options: unknown extends Ctx
1377
+ ? [options?: RecordOptions<Ctx>]
1378
+ : [options: RecordOptions<Ctx> & { context: RunContext<Ctx> }]
1379
+ ): Promise<{ result: SuccessState<T> | FailureState<E>; trace: TraceLog<I, Ctx> & { initialInput: I } }>;
1383
1380
 
1384
1381
  export interface ReplayOptions<Ctx = unknown> {
1385
- /**
1386
- * Context for `Ask`. With a trace it defaults to the context the trace recorded, so pass one only to
1387
- * replay with a different one. A Resolver has no recorded context, so pass it one if the flow reads `Ask`.
1388
- */
1389
- context?: Ctx;
1382
+ /** Context for `Ask`; defaults to the one the trace recorded. */
1383
+ context?: RunContext<Ctx>;
1390
1384
  /** Strip `Retry` delays so a replay does not wait out production backoff (default `true`). */
1391
1385
  fastRetry?: boolean;
1392
- /**
1393
- * Run the replay inside the global hooks, resolver innermost, so configured hooks observe it
1394
- * (default `false`, which ignores the global hooks). Retry options are per-use, so a replay reads the
1395
- * same ones the recorded run did.
1396
- */
1386
+ /** Runs the replay inside the installed hooks, so they see it. Off by default. */
1397
1387
  hooks?: boolean;
1398
1388
  /**
1399
- * What to do when the Resolver has no recording for a step.
1400
- * `'throw'` (default) fails the replay, making side effects impossible.
1401
- * `'execute'` runs the real Command: recorded prefix, live tail.
1389
+ * `'throw'` (default) fails on a step the trace lacks. `'execute'` runs it for real: use it only against test
1390
+ * doubles.
1402
1391
  */
1403
1392
  onMissing?: 'throw' | 'execute';
1404
1393
  onResolved?: (step: ReplayStep, outcome: ReplayOutcome | undefined) => void;
1405
1394
  }
1406
1395
 
1407
- /**
1408
- * What a replay returns: the flow's own outcome and, for a trace, the recorded entries the flow
1409
- * never asked for. A flow that stops issuing Commands early mismatches nothing, so `result` can be a
1410
- * `Success` with steps left over; `unreached` is where that shows. It is absent for a Resolver,
1411
- * since only a trace knows what it holds.
1412
- */
1396
+ /** The replay's outcome and, for a trace, the recorded steps the flow never asked for. */
1413
1397
  export interface Replay<T, E = unknown> {
1414
1398
  result: SuccessState<T> | FailureState<E>;
1415
1399
  unreached: TraceEntry[];
1416
1400
  }
1417
1401
 
1418
- /**
1419
- * Pass a trace to replay it directly, or a Resolver when traces are stored in some other
1420
- * shape. To observe a replay rather than change how it resolves, use `onResolved`.
1421
- * A malformed trace rejects with a `ReplayError`.
1422
- *
1423
- * Three overloads: a trace yields `unreached`, a Resolver yields none, and a source only known
1424
- * as the union of the two (a wrapper forwarding whatever it was handed) yields it as optional.
1425
- */
1402
+ /** Replays a flow from a trace, or from a Resolver for other storage, with no I/O. */
1426
1403
  export declare function replayEffect<T, E = unknown, Ctx = unknown>(
1427
1404
  effect: Effect<T, E, Ctx>,
1428
1405
  trace: TraceLog | TraceEntry[],
@@ -1439,8 +1416,9 @@ export declare function replayEffect<T, E = unknown, Ctx = unknown>(
1439
1416
  options?: ReplayOptions<Ctx>
1440
1417
  ): Promise<Omit<Replay<T, E>, 'unreached'> & { unreached?: TraceEntry[] }>;
1441
1418
 
1419
+ /** Replays a trace and logs each step with its recorded timing, warning about what will not replay as recorded. */
1442
1420
  export declare function timeTravel<T, E = unknown, Ctx = unknown>(
1443
1421
  flowFn: (input: any) => Effect<T, E, Ctx>,
1444
1422
  traceLog: TraceLog,
1445
- options?: { log?: (...args: any[]) => void; context?: Ctx; version?: string | undefined }
1423
+ options?: { log?: (...args: any[]) => void; context?: RunContext<Ctx>; version?: string | undefined }
1446
1424
  ): Promise<SuccessState<T> | FailureState<E>>;