@typed/fx 1.22.2 → 1.24.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.
Files changed (157) hide show
  1. package/dist/cjs/AsyncData.js.map +1 -1
  2. package/dist/cjs/Form.js.map +1 -1
  3. package/dist/cjs/FormEntry.js.map +1 -1
  4. package/dist/cjs/Fx.js +1 -1
  5. package/dist/cjs/Fx.js.map +1 -1
  6. package/dist/cjs/Idle.js.map +1 -1
  7. package/dist/cjs/Match.js.map +1 -1
  8. package/dist/cjs/Pull.js +5 -3
  9. package/dist/cjs/Pull.js.map +1 -1
  10. package/dist/cjs/RefArray.js.map +1 -1
  11. package/dist/cjs/RefChunk.js.map +1 -1
  12. package/dist/cjs/RefHashSet.js.map +1 -1
  13. package/dist/cjs/RefSubject.js +3 -2
  14. package/dist/cjs/RefSubject.js.map +1 -1
  15. package/dist/cjs/Sink.js.map +1 -1
  16. package/dist/cjs/Subject.js.map +1 -1
  17. package/dist/cjs/Versioned.js.map +1 -1
  18. package/dist/cjs/internal/core.js.map +1 -1
  19. package/dist/cjs/internal/helpers.js.map +1 -1
  20. package/dist/cjs/internal/keyed.js +1 -1
  21. package/dist/cjs/internal/keyed.js.map +1 -1
  22. package/dist/cjs/internal/provide.js.map +1 -1
  23. package/dist/cjs/internal/share.js.map +1 -1
  24. package/dist/cjs/internal/sync-producer.js.map +1 -1
  25. package/dist/dts/AsyncData.d.ts +53 -53
  26. package/dist/dts/AsyncData.d.ts.map +1 -1
  27. package/dist/dts/Emitter.d.ts +7 -7
  28. package/dist/dts/Emitter.d.ts.map +1 -1
  29. package/dist/dts/Form.d.ts +14 -14
  30. package/dist/dts/Form.d.ts.map +1 -1
  31. package/dist/dts/FormEntry.d.ts +11 -11
  32. package/dist/dts/FormEntry.d.ts.map +1 -1
  33. package/dist/dts/Fx.d.ts +417 -417
  34. package/dist/dts/Fx.d.ts.map +1 -1
  35. package/dist/dts/Guard.d.ts +21 -21
  36. package/dist/dts/Guard.d.ts.map +1 -1
  37. package/dist/dts/Idle.d.ts +12 -12
  38. package/dist/dts/Idle.d.ts.map +1 -1
  39. package/dist/dts/Match.d.ts +16 -16
  40. package/dist/dts/Match.d.ts.map +1 -1
  41. package/dist/dts/Pull.d.ts +5 -5
  42. package/dist/dts/Pull.d.ts.map +1 -1
  43. package/dist/dts/Push.d.ts +40 -40
  44. package/dist/dts/Push.d.ts.map +1 -1
  45. package/dist/dts/RefArray.d.ts +59 -59
  46. package/dist/dts/RefArray.d.ts.map +1 -1
  47. package/dist/dts/RefChunk.d.ts +45 -45
  48. package/dist/dts/RefChunk.d.ts.map +1 -1
  49. package/dist/dts/RefHashMap.d.ts +35 -35
  50. package/dist/dts/RefHashMap.d.ts.map +1 -1
  51. package/dist/dts/RefHashSet.d.ts +17 -17
  52. package/dist/dts/RefHashSet.d.ts.map +1 -1
  53. package/dist/dts/RefSubject.d.ts +136 -136
  54. package/dist/dts/RefSubject.d.ts.map +1 -1
  55. package/dist/dts/Sink.d.ts +63 -63
  56. package/dist/dts/Sink.d.ts.map +1 -1
  57. package/dist/dts/Stream.d.ts +11 -11
  58. package/dist/dts/Stream.d.ts.map +1 -1
  59. package/dist/dts/Subject.d.ts +13 -13
  60. package/dist/dts/Subject.d.ts.map +1 -1
  61. package/dist/dts/Typeclass.d.ts +1 -1
  62. package/dist/dts/Typeclass.d.ts.map +1 -1
  63. package/dist/dts/Versioned.d.ts +33 -33
  64. package/dist/dts/Versioned.d.ts.map +1 -1
  65. package/dist/dts/index.d.ts +1 -1
  66. package/dist/dts/internal/DeferredRef.d.ts +8 -8
  67. package/dist/dts/internal/DeferredRef.d.ts.map +1 -1
  68. package/dist/dts/internal/core.d.ts +191 -191
  69. package/dist/dts/internal/core.d.ts.map +1 -1
  70. package/dist/dts/internal/effect-loop-operator.d.ts +6 -6
  71. package/dist/dts/internal/effect-loop-operator.d.ts.map +1 -1
  72. package/dist/dts/internal/effect-operator.d.ts +16 -16
  73. package/dist/dts/internal/effect-operator.d.ts.map +1 -1
  74. package/dist/dts/internal/effect-producer.d.ts +13 -13
  75. package/dist/dts/internal/effect-producer.d.ts.map +1 -1
  76. package/dist/dts/internal/helpers.d.ts +26 -26
  77. package/dist/dts/internal/helpers.d.ts.map +1 -1
  78. package/dist/dts/internal/keyed.d.ts +1 -1
  79. package/dist/dts/internal/keyed.d.ts.map +1 -1
  80. package/dist/dts/internal/loop-operator.d.ts +2 -2
  81. package/dist/dts/internal/loop-operator.d.ts.map +1 -1
  82. package/dist/dts/internal/operator.d.ts +2 -2
  83. package/dist/dts/internal/operator.d.ts.map +1 -1
  84. package/dist/dts/internal/protos.d.ts +12 -12
  85. package/dist/dts/internal/protos.d.ts.map +1 -1
  86. package/dist/dts/internal/provide.d.ts +15 -15
  87. package/dist/dts/internal/provide.d.ts.map +1 -1
  88. package/dist/dts/internal/share.d.ts +11 -11
  89. package/dist/dts/internal/share.d.ts.map +1 -1
  90. package/dist/dts/internal/sync-operator.d.ts +2 -2
  91. package/dist/dts/internal/sync-operator.d.ts.map +1 -1
  92. package/dist/dts/internal/sync-producer.d.ts +6 -6
  93. package/dist/dts/internal/sync-producer.d.ts.map +1 -1
  94. package/dist/dts/internal/withKey.d.ts +1 -1
  95. package/dist/dts/internal/withKey.d.ts.map +1 -1
  96. package/dist/esm/AsyncData.js.map +1 -1
  97. package/dist/esm/Form.js.map +1 -1
  98. package/dist/esm/FormEntry.js.map +1 -1
  99. package/dist/esm/Fx.js +1 -1
  100. package/dist/esm/Fx.js.map +1 -1
  101. package/dist/esm/Idle.js.map +1 -1
  102. package/dist/esm/Match.js.map +1 -1
  103. package/dist/esm/Pull.js +3 -3
  104. package/dist/esm/Pull.js.map +1 -1
  105. package/dist/esm/RefArray.js.map +1 -1
  106. package/dist/esm/RefChunk.js.map +1 -1
  107. package/dist/esm/RefHashSet.js.map +1 -1
  108. package/dist/esm/RefSubject.js +3 -1
  109. package/dist/esm/RefSubject.js.map +1 -1
  110. package/dist/esm/Sink.js.map +1 -1
  111. package/dist/esm/Subject.js.map +1 -1
  112. package/dist/esm/Versioned.js.map +1 -1
  113. package/dist/esm/index.js +1 -1
  114. package/dist/esm/internal/core.js.map +1 -1
  115. package/dist/esm/internal/helpers.js.map +1 -1
  116. package/dist/esm/internal/keyed.js +1 -1
  117. package/dist/esm/internal/keyed.js.map +1 -1
  118. package/dist/esm/internal/provide.js.map +1 -1
  119. package/dist/esm/internal/share.js.map +1 -1
  120. package/dist/esm/internal/sync-producer.js.map +1 -1
  121. package/package.json +6 -6
  122. package/src/AsyncData.ts +142 -144
  123. package/src/Emitter.ts +13 -13
  124. package/src/Form.ts +55 -55
  125. package/src/FormEntry.ts +39 -39
  126. package/src/Fx.ts +788 -789
  127. package/src/Guard.ts +43 -43
  128. package/src/Idle.ts +26 -26
  129. package/src/Match.ts +60 -61
  130. package/src/Pull.ts +42 -43
  131. package/src/Push.ts +195 -195
  132. package/src/RefArray.ts +121 -119
  133. package/src/RefChunk.ts +98 -97
  134. package/src/RefHashMap.ts +79 -79
  135. package/src/RefHashSet.ts +40 -39
  136. package/src/RefSubject.ts +574 -565
  137. package/src/Sink.ts +303 -303
  138. package/src/Stream.ts +27 -27
  139. package/src/Subject.ts +48 -46
  140. package/src/Typeclass.ts +2 -2
  141. package/src/Versioned.ts +97 -97
  142. package/src/index.ts +1 -1
  143. package/src/internal/DeferredRef.ts +7 -7
  144. package/src/internal/core.ts +768 -781
  145. package/src/internal/effect-loop-operator.ts +7 -7
  146. package/src/internal/effect-operator.ts +23 -23
  147. package/src/internal/effect-producer.ts +38 -38
  148. package/src/internal/helpers.ts +51 -51
  149. package/src/internal/keyed.ts +21 -21
  150. package/src/internal/loop-operator.ts +2 -2
  151. package/src/internal/operator.ts +2 -2
  152. package/src/internal/protos.ts +15 -15
  153. package/src/internal/provide.ts +27 -27
  154. package/src/internal/share.ts +25 -25
  155. package/src/internal/sync-operator.ts +4 -4
  156. package/src/internal/sync-producer.ts +15 -15
  157. package/src/internal/withKey.ts +13 -13
@@ -19,7 +19,7 @@ import * as Versioned from "./Versioned.js";
19
19
  * A Computed is essentially a readonly RefSubject.
20
20
  * @since 1.20.0
21
21
  */
22
- export interface Computed<out R, out E, out A> extends Versioned.Versioned<R, E, R | Scope.Scope, E, A, R, E, A> {
22
+ export interface Computed<out A, out E = never, out R = never> extends Versioned.Versioned<R, E, A, E, R | Scope.Scope, A, E, R> {
23
23
  readonly [ComputedTypeId]: ComputedTypeId;
24
24
  }
25
25
  /**
@@ -35,12 +35,12 @@ export declare namespace Computed {
35
35
  * A Filtered is essentially a readonly RefSubject that may have its values filtered out.
36
36
  * @since 1.20.0
37
37
  */
38
- export interface Filtered<out R, out E, out A> extends Versioned.Versioned<R, E, R | Scope.Scope, E, A, R, E | Cause.NoSuchElementException, A> {
38
+ export interface Filtered<out A, out E = never, out R = never> extends Versioned.Versioned<R, E, A, E, R | Scope.Scope, A, E | Cause.NoSuchElementException, R> {
39
39
  readonly [FilteredTypeId]: FilteredTypeId;
40
40
  /**
41
41
  * @since 1.20.0
42
42
  */
43
- asComputed(): Computed<R, E, Option.Option<A>>;
43
+ asComputed(): Computed<Option.Option<A>, E, R>;
44
44
  }
45
45
  /**
46
46
  * @since 1.20.0
@@ -55,12 +55,12 @@ export declare namespace Filtered {
55
55
  * A RefSubject is a Subject that can be used to read and write a value.
56
56
  * @since 1.20.0
57
57
  */
58
- export interface RefSubject<out R, in out E, in out A> extends Computed<R, E, A>, Subject.Subject<R, E, A> {
58
+ export interface RefSubject<in out A, in out E = never, out R = never> extends Computed<A, E, R>, Subject.Subject<A, E, R> {
59
59
  readonly [RefSubjectTypeId]: RefSubjectTypeId;
60
60
  /**
61
61
  * @since 1.20.0
62
62
  */
63
- readonly runUpdates: <R2, E2, B>(f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<R2, E2, B>) => Effect.Effect<R | R2, E2, B>;
63
+ readonly runUpdates: <B, E2, R2>(f: (ref: GetSetDelete<A, E, R>) => Effect.Effect<B, E2, R2>) => Effect.Effect<B, E2, R | R2>;
64
64
  }
65
65
  /**
66
66
  * @since 1.20.0
@@ -69,40 +69,40 @@ export declare namespace RefSubject {
69
69
  /**
70
70
  * @since 1.20.0
71
71
  */
72
- type Any = RefSubject<any, any, any> | RefSubject<never, any, any> | RefSubject<any, never, any> | RefSubject<never, never, any>;
72
+ type Any = RefSubject<any, any, any> | RefSubject<any, any> | RefSubject<any, never, any> | RefSubject<any>;
73
73
  /**
74
74
  * @since 1.20.0
75
75
  */
76
- interface Tagged<I, E, A> extends RefSubject<I, E, A> {
76
+ interface Tagged<I, E, A> extends RefSubject<A, E, I> {
77
77
  /**
78
78
  * @since 1.20.0
79
79
  */
80
- readonly tag: C.Tagged<I, RefSubject<never, E, A>>;
80
+ readonly tag: C.Tagged<I, RefSubject<A, E>>;
81
81
  /**
82
82
  * @since 1.20.0
83
83
  */
84
- readonly make: <R>(fxOrEffect: Fx<R, E, A> | Effect.Effect<R, E, A>, options?: RefSubjectOptions<A>) => Layer.Layer<R, never, I>;
84
+ readonly make: <R>(fxOrEffect: Fx<A, E, R> | Effect.Effect<A, E, R>, options?: RefSubjectOptions<A>) => Layer.Layer<I, never, R>;
85
85
  }
86
86
  /**
87
87
  * A Contextual wrapper around a RefSubject
88
88
  * @since 1.18.0
89
89
  * @category models
90
90
  */
91
- interface Derived<R, E, A> extends RefSubject<R, E, A> {
92
- readonly persist: Effect.Effect<R, never, void>;
91
+ interface Derived<A, E, R> extends RefSubject<A, E, R> {
92
+ readonly persist: Effect.Effect<void, never, R>;
93
93
  }
94
94
  /**
95
95
  * @since 1.20.0
96
96
  */
97
- type Context<T> = T extends RefSubject<infer R, infer _E, infer _A> ? R : never;
97
+ type Context<T> = T extends RefSubject<infer _A, infer _E, infer R> ? R : never;
98
98
  /**
99
99
  * @since 1.20.0
100
100
  */
101
- type Error<T> = T extends RefSubject<infer _R, infer E, infer _A> ? E : never;
101
+ type Error<T> = T extends RefSubject<infer _A, infer E, infer _R> ? E : never;
102
102
  /**
103
103
  * @since 1.20.0
104
104
  */
105
- type Success<T> = T extends RefSubject<infer _R, infer _E, infer A> ? A : never;
105
+ type Success<T> = T extends RefSubject<infer A, infer _E, infer _R> ? A : never;
106
106
  /**
107
107
  * @since 1.20.0
108
108
  */
@@ -135,48 +135,48 @@ export interface RefSubjectOptions<A> {
135
135
  /**
136
136
  * @since 1.20.0
137
137
  */
138
- export declare function fromEffect<R, E, A>(effect: Effect.Effect<R, E, A>, options?: RefSubjectOptions<A>): Effect.Effect<R | Scope.Scope, never, RefSubject<never, E, A>>;
138
+ export declare function fromEffect<A, E, R>(effect: Effect.Effect<A, E, R>, options?: RefSubjectOptions<A>): Effect.Effect<RefSubject<A, E>, never, R | Scope.Scope>;
139
139
  /**
140
140
  * @since 1.20.0
141
141
  */
142
- export declare function fromFx<R, E, A>(fx: Fx<R, E, A>, options?: RefSubjectOptions<A>): Effect.Effect<R | Scope.Scope, never, RefSubject<never, E, A>>;
142
+ export declare function fromFx<A, E, R>(fx: Fx<A, E, R>, options?: RefSubjectOptions<A>): Effect.Effect<RefSubject<A, E>, never, R | Scope.Scope>;
143
143
  /**
144
144
  * @since 1.20.0
145
145
  */
146
- export declare function fromRefSubject<R, E, A>(ref: RefSubject<R, E, A>, options?: RefSubjectOptions<A>): Effect.Effect<R | Scope.Scope, never, RefSubject.Derived<never, E, A>>;
146
+ export declare function fromRefSubject<A, E, R>(ref: RefSubject<A, E, R>, options?: RefSubjectOptions<A>): Effect.Effect<RefSubject.Derived<A, E, R>, never, R | Scope.Scope>;
147
147
  /**
148
148
  * @since 1.20.0
149
149
  */
150
150
  export declare const make: {
151
- <R, E, A>(ref: RefSubject<R, E, A>, options?: RefSubjectOptions<A>): Effect.Effect<R | Scope.Scope, never, RefSubject.Derived<never, E, A>>;
152
- <R, E, A>(fxOrEffect: Fx<R, E, A> | Effect.Effect<R, E, A>, options?: RefSubjectOptions<A>): Effect.Effect<R | Scope.Scope, never, RefSubject<never, E, A>>;
153
- <R, E, A>(fxOrEffect: Fx<R, E, A> | Effect.Effect<R, E, A> | RefSubject<R, E, A>, options?: RefSubjectOptions<A>): Effect.Effect<R | Scope.Scope, never, RefSubject<never, E, A> | RefSubject.Derived<never, E, A>>;
151
+ <A, E = never, R = never>(ref: RefSubject<A, E, R>, options?: RefSubjectOptions<A>): Effect.Effect<RefSubject.Derived<A, E, R>, never, R | Scope.Scope>;
152
+ <A, E = never, R = never>(fxOrEffect: Fx<A, E, R> | Effect.Effect<A, E, R>, options?: RefSubjectOptions<A>): Effect.Effect<RefSubject<A, E>, never, R | Scope.Scope>;
153
+ <A, E = never, R = never>(fxOrEffect: Fx<A, E, R> | Effect.Effect<A, E, R> | RefSubject<A, E, R>, options?: RefSubjectOptions<A>): Effect.Effect<RefSubject<A, E> | RefSubject.Derived<A, E, R>, never, R | Scope.Scope>;
154
154
  };
155
155
  /**
156
156
  * @since 1.20.0
157
157
  */
158
- export declare function of<A, E = never>(a: A, options?: RefSubjectOptions<A>): Effect.Effect<Scope.Scope, never, RefSubject<never, E, A>>;
158
+ export declare function of<A, E = never>(a: A, options?: RefSubjectOptions<A>): Effect.Effect<RefSubject<A, E>, never, Scope.Scope>;
159
159
  /**
160
160
  * @since 1.20.0
161
161
  */
162
162
  export declare function unsafeMake<E, A>(params: {
163
163
  readonly id: FiberId.FiberId;
164
- readonly initial: Effect.Effect<never, E, A>;
164
+ readonly initial: Effect.Effect<A, E>;
165
165
  readonly options?: RefSubjectOptions<A> | undefined;
166
166
  readonly scope: Scope.CloseableScope;
167
167
  readonly initialValue?: A;
168
- }): Effect.Effect<never, never, RefSubject<never, E, A>>;
168
+ }): Effect.Effect<RefSubject<A, E>>;
169
169
  /**
170
170
  * @since 1.20.0
171
171
  */
172
172
  export declare const set: {
173
- <A>(value: A): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<R, E, A>;
174
- <R, E, A>(ref: RefSubject<R, E, A>, a: A): Effect.Effect<R, E, A>;
173
+ <A>(value: A): <E, R>(ref: RefSubject<A, E, R>) => Effect.Effect<A, E, R>;
174
+ <A, E, R>(ref: RefSubject<A, E, R>, a: A): Effect.Effect<A, E, R>;
175
175
  };
176
176
  /**
177
177
  * @since 1.20.0
178
178
  */
179
- export declare function reset<R, E, A>(ref: RefSubject<R, E, A>): Effect.Effect<R, E, Option.Option<A>>;
179
+ export declare function reset<A, E, R>(ref: RefSubject<A, E, R>): Effect.Effect<Option.Option<A>, E, R>;
180
180
  /**
181
181
  * @since 1.20.0
182
182
  */
@@ -188,163 +188,163 @@ reset as delete };
188
188
  /**
189
189
  * @since 1.20.0
190
190
  */
191
- export interface GetSetDelete<R, E, A> {
191
+ export interface GetSetDelete<A, E, R> {
192
192
  /**
193
193
  * @since 1.20.0
194
194
  */
195
- readonly get: Effect.Effect<R, E, A>;
195
+ readonly get: Effect.Effect<A, E, R>;
196
196
  /**
197
197
  * @since 1.20.0
198
198
  */
199
- readonly set: (a: A) => Effect.Effect<R, never, A>;
199
+ readonly set: (a: A) => Effect.Effect<A, never, R>;
200
200
  /**
201
201
  * @since 1.20.0
202
202
  */
203
- readonly delete: Effect.Effect<R, E, Option.Option<A>>;
203
+ readonly delete: Effect.Effect<Option.Option<A>, E, R>;
204
204
  }
205
205
  /**
206
206
  * @since 1.20.0
207
207
  */
208
208
  export declare const updateEffect: {
209
- <A, R2, E2>(f: (value: A) => Effect.Effect<R2, E2, A>): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<R | R2, E | E2, A>;
210
- <R, E, A, R2, E2>(ref: RefSubject<R, E, A>, f: (value: A) => Effect.Effect<R2, E2, A>): Effect.Effect<R | R2, E | E2, A>;
209
+ <A, E2, R2>(f: (value: A) => Effect.Effect<A, E2, R2>): <E, R>(ref: RefSubject<A, E, R>) => Effect.Effect<A, E | E2, R | R2>;
210
+ <A, E, R, E2, R2>(ref: RefSubject<A, E, R>, f: (value: A) => Effect.Effect<A, E2, R2>): Effect.Effect<A, E | E2, R | R2>;
211
211
  };
212
212
  /**
213
213
  * @since 1.20.0
214
214
  */
215
215
  export declare const update: {
216
- <A>(f: (value: A) => A): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<R, E, A>;
217
- <R, E, A>(ref: RefSubject<R, E, A>, f: (value: A) => A): Effect.Effect<R, E, A>;
216
+ <A>(f: (value: A) => A): <E, R>(ref: RefSubject<A, E, R>) => Effect.Effect<A, E, R>;
217
+ <A, E, R>(ref: RefSubject<A, E, R>, f: (value: A) => A): Effect.Effect<A, E, R>;
218
218
  };
219
219
  /**
220
220
  * @since 1.20.0
221
221
  */
222
222
  export declare const modifyEffect: {
223
- <A, R2, E2, B>(f: (value: A) => Effect.Effect<R2, E2, readonly [B, A]>): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<R | R2, E | E2, B>;
224
- <R, E, A, R2, E2, B>(ref: RefSubject<R, E, A>, f: (value: A) => Effect.Effect<R2, E2, readonly [B, A]>): Effect.Effect<R | R2, E | E2, B>;
223
+ <A, B, E2, R2>(f: (value: A) => Effect.Effect<readonly [B, A], E2, R2>): <E, R>(ref: RefSubject<A, E, R>) => Effect.Effect<B, E | E2, R | R2>;
224
+ <A, E, R, B, E2, R2>(ref: RefSubject<A, E, R>, f: (value: A) => Effect.Effect<readonly [B, A], E2, R2>): Effect.Effect<B, E | E2, R | R2>;
225
225
  };
226
226
  /**
227
227
  * @since 1.20.0
228
228
  */
229
229
  export declare const modify: {
230
- <A, B>(f: (value: A) => readonly [B, A]): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<R, E, B>;
231
- <R, E, A, B>(ref: RefSubject<R, E, A>, f: (value: A) => readonly [B, A]): Effect.Effect<R, E, B>;
230
+ <A, B>(f: (value: A) => readonly [B, A]): <E, R>(ref: RefSubject<A, E, R>) => Effect.Effect<B, E, R>;
231
+ <A, E, R, B>(ref: RefSubject<A, E, R>, f: (value: A) => readonly [B, A]): Effect.Effect<B, E, R>;
232
232
  };
233
233
  /**
234
234
  * @since 1.20.0
235
235
  */
236
236
  export declare const runUpdates: {
237
- <R, E, A, R2, E2, B, R3 = never, E3 = never, C = never>(f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<R2, E2, B>, options?: {
238
- readonly onInterrupt: (value: A) => Effect.Effect<R3, E3, C>;
237
+ <A, E, R, B, E2, R2, R3 = never, E3 = never, C = never>(f: (ref: GetSetDelete<A, E, R>) => Effect.Effect<B, E2, R2>, options?: {
238
+ readonly onInterrupt: (value: A) => Effect.Effect<C, E3, R3>;
239
239
  readonly value?: "initial" | "current";
240
- } | undefined): (ref: RefSubject<R, E, A>) => Effect.Effect<R | R2 | R3, E | E2 | E3, B>;
241
- <R, E, A, R2, E2, B, R3 = never, E3 = never, C = never>(ref: RefSubject<R, E, A>, f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<R2, E2, B>, options?: {
242
- readonly onInterrupt: (value: A) => Effect.Effect<R3, E3, C>;
240
+ } | undefined): (ref: RefSubject<A, E, R>) => Effect.Effect<B, E | E2 | E3, R | R2 | R3>;
241
+ <A, E, R, B, E2, R2, R3 = never, E3 = never, C = never>(ref: RefSubject<A, E, R>, f: (ref: GetSetDelete<A, E, R>) => Effect.Effect<B, E2, R2>, options?: {
242
+ readonly onInterrupt: (value: A) => Effect.Effect<C, E3, R3>;
243
243
  readonly value?: "initial" | "current";
244
- } | undefined): Effect.Effect<R | R2 | R3, E | E2 | E3, B>;
244
+ } | undefined): Effect.Effect<B, E | E2 | E3, R | R2 | R3>;
245
245
  };
246
246
  /**
247
247
  * @since 1.20.0
248
248
  */
249
249
  export declare const mapEffect: {
250
- <A, R2, E2, B>(f: (a: A) => Effect.Effect<R2, E2, B>): {
251
- <R, E>(ref: RefSubject<R, E, A> | Computed<R, E, A>): Computed<R | R2, E | E2, B>;
252
- <R, E>(ref: Filtered<R, E, A>): Filtered<R | R2, E | E2, B>;
253
- <R0, E0, R, E, R2, E2, C>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Effect.Effect<R2, E2, C>): Computed<R0 | R2, E0 | E | E2, C>;
250
+ <A, B, E2, R2>(f: (a: A) => Effect.Effect<B, E2, R2>): {
251
+ <E, R>(ref: RefSubject<A, E, R> | Computed<A, E, R>): Computed<B, E | E2, R | R2>;
252
+ <E, R>(ref: Filtered<A, E, R>): Filtered<B, E | E2, R | R2>;
253
+ <R0, E0, R, E, E2, R2, C>(versioned: Versioned.Versioned<R0, E0, A, E, R, A, E2, R2>, f: (a: A) => Effect.Effect<C, E2, R2>): Computed<C, E0 | E | E2, R0 | R | R2>;
254
254
  };
255
- <R, E, A, R2, E2, B>(ref: RefSubject<R, E, A> | Computed<R, E, A>, f: (a: A) => Effect.Effect<R2, E2, B>): Computed<R | R2, E | E2, B>;
256
- <R, E, A, R2, E2, B>(ref: Filtered<R, E, A>, f: (a: A) => Effect.Effect<R2, E2, B>): Filtered<R | R2, E | E2, B>;
257
- <R0, E0, R, E, A, R2, E2, R3, E3, C>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Effect.Effect<R3, E3, C>): Computed<R0 | R2 | R3 | Exclude<R, Scope.Scope>, E0 | E | E2 | E3, C>;
255
+ <A, E, R, B, E2, R2>(ref: RefSubject<A, E, R> | Computed<A, E, R>, f: (a: A) => Effect.Effect<B, E2, R2>): Computed<B, E | E2, R | R2>;
256
+ <A, E, R, B, E2, R2>(ref: Filtered<A, E, R>, f: (a: A) => Effect.Effect<B, E2, R2>): Filtered<B, E | E2, R | R2>;
257
+ <R0, E0, A, E, R, E2, R2, C, E3, R3>(versioned: Versioned.Versioned<R0, E0, A, E, R, A, E2, R2>, f: (a: A) => Effect.Effect<C, E3, R3>): Computed<C, E0 | E | E2 | E3, R0 | R2 | R3 | Exclude<R, Scope.Scope>>;
258
258
  };
259
259
  /**
260
260
  * @since 1.20.0
261
261
  */
262
262
  export declare const map: {
263
263
  <A, B>(f: (a: A) => B): {
264
- <R, E>(ref: RefSubject<R, E, A>): Computed<R, E, B>;
265
- <R, E>(ref: Computed<R, E, A>): Computed<R, E, B>;
266
- <R, E>(ref: Filtered<R, E, A>): Filtered<R, E, B>;
267
- <R0, E0, R, E, R2, E2>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => B): Computed<R0 | R2, E0 | E | E2, B>;
264
+ <E, R>(ref: RefSubject<A, E, R>): Computed<B, E, R>;
265
+ <E, R>(ref: Computed<A, E, R>): Computed<B, E, R>;
266
+ <E, R>(ref: Filtered<A, E, R>): Filtered<B, E, R>;
267
+ <R0, E0, R, E, E2, R2>(versioned: Versioned.Versioned<R0, E0, A, E, R, A, E2, R2>, f: (a: A) => B): Computed<B, E0 | E | E2, R0 | R2>;
268
268
  };
269
- <R, E, A, B>(ref: RefSubject<R, E, A> | Computed<R, E, A>, f: (a: A) => B): Computed<R, E, B>;
270
- <R, E, A, B>(filtered: Filtered<R, E, A>, f: (a: A) => B): Filtered<R, E, B>;
271
- <R0, E0, R, E, A, R2, E2, B>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => B): Computed<R0 | R2 | Exclude<R, Scope.Scope>, E0 | E | E2, B> | Filtered<R0 | R2 | Exclude<R, Scope.Scope>, E0 | E | E2, B>;
269
+ <A, E, R, B>(ref: RefSubject<A, E, R> | Computed<A, E, R>, f: (a: A) => B): Computed<B, E, R>;
270
+ <A, E, R, B>(filtered: Filtered<A, E, R>, f: (a: A) => B): Filtered<B, E, R>;
271
+ <R0, E0, A, E, R, B, E2, R2>(versioned: Versioned.Versioned<R0, E0, A, E, R, A, E2, R2>, f: (a: A) => B): Computed<B, E0 | E | E2, R0 | R2 | Exclude<R, Scope.Scope>> | Filtered<B, E0 | E | E2, R0 | R2 | Exclude<R, Scope.Scope>>;
272
272
  };
273
273
  /**
274
274
  * @since 1.20.0
275
275
  */
276
276
  export declare const filterMapEffect: {
277
- <A, R2, E2, B>(f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>): {
278
- <R, E>(ref: RefSubject<R, E, A> | Computed<R, E, A>): Filtered<R | R2, E | E2, B>;
279
- <R, E>(ref: Filtered<R, E, A>): Filtered<R | R2, E | E2, B>;
280
- <R0, E0, R, E, R2, E2, B>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>): Filtered<R0 | R2, E0 | E | E2, B>;
277
+ <A, B, E2, R2>(f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>): {
278
+ <E, R>(ref: RefSubject<A, E, R> | Computed<A, E, R>): Filtered<B, E | E2, R | R2>;
279
+ <E, R>(ref: Filtered<A, E, R>): Filtered<B, E | E2, R | R2>;
280
+ <R0, E0, B, E, R, E2, R2>(versioned: Versioned.Versioned<R0, E0, A, E, R, A, E2, R2>, f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>): Filtered<B, E0 | E | E2, R0 | R2>;
281
281
  };
282
- <R, E, A, R2, E2, B>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>, f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>): Filtered<R | R2, E | E2, B>;
283
- <R0, E0, R, E, A, R2, E2, B, R3, E3>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Effect.Effect<R3, E3, Option.Option<B>>): Filtered<R0 | R2 | R3 | Exclude<R, Scope.Scope>, E0 | E | E2 | E3, B>;
282
+ <A, E, R, B, E2, R2>(ref: RefSubject<A, E, R> | Computed<A, E, R> | Filtered<A, E, R>, f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>): Filtered<B, E | E2, R | R2>;
283
+ <R0, E0, A, E, R, B, E2, R2, R3, E3>(versioned: Versioned.Versioned<R0, E0, A, E, R, A, E2, R2>, f: (a: A) => Effect.Effect<Option.Option<B>, E3, R3>): Filtered<B, E0 | E | E2 | E3, R0 | R2 | R3 | Exclude<R, Scope.Scope>>;
284
284
  };
285
285
  /**
286
286
  * @since 1.20.0
287
287
  */
288
288
  export declare const filterMap: {
289
289
  <A, B>(f: (a: A) => Option.Option<B>): {
290
- <R, E>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>): Filtered<R, E, B>;
291
- <R0, E0, R, E, R2, E2, B>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Option.Option<B>): Filtered<R0 | R2, E0 | E | E2, B>;
290
+ <E, R>(ref: RefSubject<A, E, R> | Computed<A, E, R> | Filtered<A, E, R>): Filtered<B, E, R>;
291
+ <R0, E0, B, E, R, E2, R2>(versioned: Versioned.Versioned<R0, E0, A, E, R, A, E2, R2>, f: (a: A) => Option.Option<B>): Filtered<B, E0 | E | E2, R0 | R2>;
292
292
  };
293
- <R0, E0, R, E, A, R2, E2, B>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Option.Option<B>): Filtered<R0 | R2 | Exclude<R, Scope.Scope>, E0 | E | E2, B>;
294
- <R, E, A, B>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>, f: (a: A) => Option.Option<B>): Filtered<R, E, B>;
293
+ <R0, E0, A, E, R, B, E2, R2>(versioned: Versioned.Versioned<R0, E0, A, E, R, A, E2, R2>, f: (a: A) => Option.Option<B>): Filtered<B, E0 | E | E2, R0 | R2 | Exclude<R, Scope.Scope>>;
294
+ <A, E, R, B>(ref: RefSubject<A, E, R> | Computed<A, E, R> | Filtered<A, E, R>, f: (a: A) => Option.Option<B>): Filtered<B, E, R>;
295
295
  };
296
296
  /**
297
297
  * @since 1.20.0
298
298
  */
299
299
  export declare const compact: {
300
- <R, E, A>(ref: RefSubject<R, E, Option.Option<A>> | Computed<R, E, Option.Option<A>>): Filtered<R, E, A>;
301
- <R, E, A>(ref: Filtered<R, E, Option.Option<A>>): Filtered<R, E, A>;
302
- <R0, E0, R, E, A, R2, E2>(versioned: Versioned.Versioned<R0, E0, R, E, Option.Option<A>, R2, E2, Option.Option<A>>): Filtered<R0 | R2 | Exclude<R, Scope.Scope>, E0 | E | Exclude<E, Cause.NoSuchElementException> | Exclude<E2, Cause.NoSuchElementException>, A>;
300
+ <A, E, R>(ref: Computed<Option.Option<A>, E, R>): Filtered<A>;
301
+ <A, E, R>(ref: Filtered<Option.Option<A>, E, R>): Filtered<A>;
302
+ <R0, E0, A, E, R, E2, R2>(versioned: Versioned.Versioned<R0, E0, Option.Option<A>, E, R, Option.Option<A>, E2, R2>): Filtered<A, E0 | E | Exclude<E, Cause.NoSuchElementException> | Exclude<E2, Cause.NoSuchElementException>, R0 | R2 | Exclude<R, Scope.Scope>>;
303
303
  };
304
304
  /**
305
305
  * @since 1.20.0
306
306
  */
307
307
  export declare const filterEffect: {
308
- <R, E, A, R2, E2>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>, f: (a: A) => Effect.Effect<R2, E2, boolean>): Filtered<R | R2, E | E2, A>;
309
- <R0, E0, R, E, A, R2, E2, R3, E3>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Effect.Effect<R3, E3, boolean>): Filtered<R0 | R2 | R3 | Exclude<R, Scope.Scope>, E0 | E | E2 | E3, A>;
308
+ <A, E, R, E2, R2>(ref: RefSubject<A, E, R> | Computed<A, E, R> | Filtered<A, E, R>, f: (a: A) => Effect.Effect<boolean, E2, R2>): Filtered<A, E | E2, R | R2>;
309
+ <R0, E0, A, E, R, E2, R2, R3, E3>(versioned: Versioned.Versioned<R0, E0, A, E, R, A, E2, R2>, f: (a: A) => Effect.Effect<boolean, E3, R3>): Filtered<A, E0 | E | E2 | E3, R0 | R2 | R3 | Exclude<R, Scope.Scope>>;
310
310
  };
311
311
  /**
312
312
  * @since 1.20.0
313
313
  */
314
314
  export declare const filter: {
315
315
  <A>(f: (a: A) => boolean): {
316
- <R, E>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>): Filtered<R, E, A>;
317
- <R0, E0, R, E, R2, E2>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => boolean): Filtered<R0 | R2, E0 | E | E2, A>;
316
+ <E, R>(ref: RefSubject<A, E, R> | Computed<A, E, R> | Filtered<A, E, R>): Filtered<A, E, R>;
317
+ <R0, E0, R, E, E2, R2>(versioned: Versioned.Versioned<R0, E0, A, E, R, A, E2, R2>, f: (a: A) => boolean): Filtered<A, E0 | E | E2, R0 | R2>;
318
318
  };
319
- <R, E, A>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>, f: (a: A) => boolean): Filtered<R, E, A>;
320
- <R0, E0, R, E, A, R2, E2, R3, E3>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => boolean): Filtered<R0 | R2 | R3 | Exclude<R, Scope.Scope>, E0 | E | E2 | E3, A>;
319
+ <A, E, R>(ref: RefSubject<A, E, R> | Computed<A, E, R> | Filtered<A, E, R>, f: (a: A) => boolean): Filtered<A, E, R>;
320
+ <R0, E0, A, E, R, E2, R2, R3, E3>(versioned: Versioned.Versioned<R0, E0, A, E, R, A, E2, R2>, f: (a: A) => boolean): Filtered<A, E0 | E | E2 | E3, R0 | R2 | R3 | Exclude<R, Scope.Scope>>;
321
321
  };
322
322
  /**
323
323
  * @since 1.20.0
324
324
  */
325
325
  export declare const skipRepeatsWith: {
326
326
  <A>(eq: Equivalence.Equivalence<A>): {
327
- <R, E>(ref: RefSubject<R, E, A> | Computed<R, E, A>): Computed<R, E, A>;
328
- <R, E>(ref: Filtered<R, E, A>): Filtered<R, E, A>;
327
+ <E, R>(ref: RefSubject<A, E, R> | Computed<A, E, R>): Computed<A, E, R>;
328
+ <E, R>(ref: Filtered<A, E, R>): Filtered<A, E, R>;
329
329
  };
330
- <R, E, A>(ref: RefSubject<R, E, A> | Computed<R, E, A>, eq: Equivalence.Equivalence<A>): Computed<R, E, A>;
331
- <R, E, A>(ref: Filtered<R, E, A>, eq: Equivalence.Equivalence<A>): Filtered<R, E, A>;
332
- <R, E, A>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>, eq: Equivalence.Equivalence<A>): Computed<R, E, A> | Filtered<R, E, A>;
330
+ <A, E, R>(ref: RefSubject<A, E, R> | Computed<A, E, R>, eq: Equivalence.Equivalence<A>): Computed<A, E, R>;
331
+ <A, E, R>(ref: Filtered<A, E, R>, eq: Equivalence.Equivalence<A>): Filtered<A, E, R>;
332
+ <A, E, R>(ref: RefSubject<A, E, R> | Computed<A, E, R> | Filtered<A, E, R>, eq: Equivalence.Equivalence<A>): Computed<A, E, R> | Filtered<A, E, R>;
333
333
  };
334
334
  /**
335
335
  * @since 1.20.0
336
336
  */
337
- export declare function skipRepeats<R, E, A>(ref: RefSubject<R, E, A> | Computed<R, E, A>): Computed<R, E, A>;
338
- export declare function skipRepeats<R, E, A>(ref: Filtered<R, E, A>): Filtered<R, E, A>;
339
- export declare function skipRepeats<R, E, A>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>): Computed<R, E, A> | Filtered<R, E, A>;
337
+ export declare function skipRepeats<A, E, R>(ref: RefSubject<A, E, R> | Computed<A, E, R>): Computed<A, E, R>;
338
+ export declare function skipRepeats<A, E, R>(ref: Filtered<A, E, R>): Filtered<A, E, R>;
339
+ export declare function skipRepeats<A, E, R>(ref: RefSubject<A, E, R> | Computed<A, E, R> | Filtered<A, E, R>): Computed<A, E, R> | Filtered<A, E, R>;
340
340
  /**
341
341
  * @since 1.20.0
342
342
  */
343
- export declare function transform<R, E, A, B>(ref: RefSubject<R, E, A>, from: (a: A) => B, to: (b: B) => A): RefSubject<R, E, B>;
343
+ export declare function transform<A, E, R, B>(ref: RefSubject<A, E, R>, from: (a: A) => B, to: (b: B) => A): RefSubject<B, E, R>;
344
344
  /**
345
345
  * @since 1.20.0
346
346
  */
347
- export declare function transformOrFail<R, E, R2, E2, A, R3, E3, B>(ref: RefSubject<R, E, A>, from: (a: A) => Effect.Effect<R2, E2, B>, to: (b: B) => Effect.Effect<R3, E3, A>): RefSubject<R | R2 | R3, E | E2 | E3, B>;
347
+ export declare function transformOrFail<R, E, A, E2, R2, R3, E3, B>(ref: RefSubject<A, E, R>, from: (a: A) => Effect.Effect<B, E2, R2>, to: (b: B) => Effect.Effect<A, E3, R3>): RefSubject<B, E | E2 | E3, R | R2 | R3>;
348
348
  /**
349
349
  * @since 1.20.0
350
350
  */
@@ -354,9 +354,9 @@ type RefKind = "r" | "c" | "f";
354
354
  * @since 1.20.0
355
355
  */
356
356
  export type TupleFrom<Refs extends ReadonlyArray<RefSubject<any, any, any> | Computed<any, any, any> | Filtered<any, any, any>>> = {
357
- "c": [ComputedTupleFrom<Refs>] extends [Computed<infer R, infer E, infer A>] ? Computed<R, E, A> : never;
358
- "f": [FilteredTupleFrom<Refs>] extends [Filtered<infer R, infer E, infer A>] ? Filtered<R, E, A> : never;
359
- "r": [RefSubjectTupleFrom<Refs>] extends [RefSubject<infer R, infer E, infer A>] ? RefSubject<R, E, A> : never;
357
+ "c": [ComputedTupleFrom<Refs>] extends [Computed<infer A, infer E, infer R>] ? Computed<A, E, R> : never;
358
+ "f": [FilteredTupleFrom<Refs>] extends [Filtered<infer A, infer E, infer R>] ? Filtered<A, E, R> : never;
359
+ "r": [RefSubjectTupleFrom<Refs>] extends [RefSubject<infer A, infer E, infer R>] ? RefSubject<A, E, R> : never;
360
360
  }[GetTupleKind<Refs>];
361
361
  type Ref = RefSubject.Any | Computed.Any | Filtered.Any;
362
362
  /**
@@ -368,23 +368,23 @@ export type GetTupleKind<Refs extends ReadonlyArray<Ref>, Kind extends RefKind =
368
368
  */
369
369
  export type MatchKind<T extends Ref> = [T] extends [Filtered.Any] ? "f" : [T] extends [RefSubject.Any] ? "r" : "c";
370
370
  type MergeKind<A extends RefKind, B extends RefKind> = A extends "f" ? A : B extends "f" ? B : A extends "r" ? B : B extends "r" ? A : "c";
371
- type FilteredTupleFrom<Refs extends ReadonlyArray<RefSubject<any, any, any> | Computed<any, any, any> | Filtered<any, any, any>>> = Filtered<Effect.Effect.Context<Refs[number]>, Fx.Error<Refs[number]>, {
371
+ type FilteredTupleFrom<Refs extends ReadonlyArray<RefSubject<any, any, any> | Computed<any, any, any> | Filtered<any, any, any>>> = Filtered<{
372
372
  readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>;
373
- }>;
374
- type ComputedTupleFrom<Refs extends ReadonlyArray<RefSubject<any, any, any> | Computed<any, any, any> | Filtered<any, any, any>>> = Computed<Effect.Effect.Context<Refs[number]>, Effect.Effect.Error<Refs[number]>, {
373
+ }, Fx.Error<Refs[number]>, Effect.Effect.Context<Refs[number]>>;
374
+ type ComputedTupleFrom<Refs extends ReadonlyArray<RefSubject<any, any, any> | Computed<any, any, any> | Filtered<any, any, any>>> = Computed<{
375
375
  readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>;
376
- }>;
377
- type RefSubjectTupleFrom<Refs extends ReadonlyArray<RefSubject<any, any, any> | Computed<any, any, any> | Filtered<any, any, any>>> = RefSubject<Effect.Effect.Context<Refs[number]>, Effect.Effect.Error<Refs[number]>, {
376
+ }, Effect.Effect.Error<Refs[number]>, Effect.Effect.Context<Refs[number]>>;
377
+ type RefSubjectTupleFrom<Refs extends ReadonlyArray<RefSubject<any, any, any> | Computed<any, any, any> | Filtered<any, any, any>>> = RefSubject<{
378
378
  readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>;
379
- }>;
379
+ }, Effect.Effect.Error<Refs[number]>, Effect.Effect.Context<Refs[number]>>;
380
380
  /**
381
381
  * @since 1.20.0
382
382
  */
383
383
  export declare function struct<const Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>>(refs: Refs): StructFrom<Refs>;
384
384
  type StructFrom<Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>> = {
385
- "c": [ComputedStructFrom<Refs>] extends [Computed<infer R, infer E, infer A>] ? Computed<R, E, A> : never;
386
- "f": [FilteredStructFrom<Refs>] extends [Filtered<infer R, infer E, infer A>] ? Filtered<R, E, A> : never;
387
- "r": [RefSubjectStructFrom<Refs>] extends [RefSubject<infer R, infer E, infer A>] ? RefSubject<R, E, A> : never;
385
+ "c": [ComputedStructFrom<Refs>] extends [Computed<infer A, infer E, infer R>] ? Computed<A, E, R> : never;
386
+ "f": [FilteredStructFrom<Refs>] extends [Filtered<infer A, infer E, infer R>] ? Filtered<A, E, R> : never;
387
+ "r": [RefSubjectStructFrom<Refs>] extends [RefSubject<infer A, infer E, infer R>] ? RefSubject<A, E, R> : never;
388
388
  }[GetStructKind<Refs>];
389
389
  /**
390
390
  * @since 1.20.0
@@ -393,15 +393,15 @@ export type GetStructKind<Refs extends Readonly<Record<string, RefSubject.Any |
393
393
  [K in keyof Refs]: MatchKind<Refs[K]>;
394
394
  }[keyof Refs]>>;
395
395
  type MergeKinds<Kinds extends ReadonlyArray<any>> = Kinds extends readonly [infer Head extends RefKind, ...infer Tail extends ReadonlyArray<RefKind>] ? MergeKind<Head, MergeKinds<Tail>> : "r";
396
- type FilteredStructFrom<Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>> = Filtered<Effect.Effect.Context<Refs[keyof Refs]>, Fx.Error<Refs[keyof Refs]>, {
396
+ type FilteredStructFrom<Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>> = Filtered<{
397
397
  readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>;
398
- }>;
399
- type ComputedStructFrom<Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>> = Computed<Effect.Effect.Context<Refs[keyof Refs]>, Effect.Effect.Error<Refs[keyof Refs]>, {
398
+ }, Fx.Error<Refs[keyof Refs]>, Effect.Effect.Context<Refs[keyof Refs]>>;
399
+ type ComputedStructFrom<Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>> = Computed<{
400
400
  readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>;
401
- }>;
402
- type RefSubjectStructFrom<Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>> = RefSubject<Effect.Effect.Context<Refs[keyof Refs]>, Effect.Effect.Error<Refs[keyof Refs]>, {
401
+ }, Effect.Effect.Error<Refs[keyof Refs]>, Effect.Effect.Context<Refs[keyof Refs]>>;
402
+ type RefSubjectStructFrom<Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>> = RefSubject<{
403
403
  readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>;
404
- }>;
404
+ }, Effect.Effect.Error<Refs[keyof Refs]>, Effect.Effect.Context<Refs[keyof Refs]>>;
405
405
  /**
406
406
  * @since 1.20.0
407
407
  */
@@ -412,100 +412,100 @@ export declare function tagged<E, A>(replay?: number): {
412
412
  /**
413
413
  * @since 1.20.0
414
414
  */
415
- export declare function fromTag<I, S, R, E, A>(tag: C.Tag<I, S>, f: (s: S) => RefSubject<R, E, A>): RefSubject<I | R, E, A>;
415
+ export declare function fromTag<I, S, A, E, R>(tag: C.Tag<I, S>, f: (s: S) => RefSubject<A, E, R>): RefSubject<A, E, I | R>;
416
416
  /**
417
417
  * @since 1.20.0
418
418
  */
419
- export declare function isRefSubject<R, E, A>(u: unknown): u is RefSubject<R, E, A>;
419
+ export declare function isRefSubject<A, E, R>(u: unknown): u is RefSubject<A, E, R>;
420
420
  export declare function isRefSubject(u: unknown): u is RefSubject.Any;
421
421
  /**
422
422
  * @since 1.20.0
423
423
  */
424
- export declare function isComputed<R, E, A>(u: unknown): u is Computed<R, E, A>;
424
+ export declare function isComputed<A, E, R>(u: unknown): u is Computed<A, E, R>;
425
425
  export declare function isComputed(u: unknown): u is Computed.Any;
426
426
  /**
427
427
  * @since 1.20.0
428
428
  */
429
- export declare function isFiltered<R, E, A>(u: unknown): u is Filtered<R, E, A>;
429
+ export declare function isFiltered<A, E, R>(u: unknown): u is Filtered<A, E, R>;
430
430
  export declare function isFiltered(u: unknown): u is Filtered.Any;
431
431
  /**
432
432
  * @since 1.20.0
433
433
  */
434
- export declare function isDerived<R, E, A>(u: unknown): u is RefSubject.Derived<R, E, A>;
434
+ export declare function isDerived<A, E, R>(u: unknown): u is RefSubject.Derived<A, E, R>;
435
435
  export declare function isDerived(u: unknown): u is RefSubject.Derived<unknown, unknown, unknown>;
436
436
  /**
437
437
  * @since 1.20.0
438
438
  */
439
- export declare function computedFromTag<I, S, R, E, A>(tag: C.Tag<I, S>, f: (s: S) => Computed<R, E, A>): Computed<I | R, E, A>;
439
+ export declare function computedFromTag<I, S, A, E, R>(tag: C.Tag<I, S>, f: (s: S) => Computed<A, E, R>): Computed<A, E, I | R>;
440
440
  /**
441
441
  * @since 1.20.0
442
442
  */
443
- export declare function filteredFromTag<I, S, R, E, A>(tag: C.Tag<I, S>, f: (s: S) => Filtered<R, E, A>): Filtered<I | R, E, A>;
443
+ export declare function filteredFromTag<I, S, A, E, R>(tag: C.Tag<I, S>, f: (s: S) => Filtered<A, E, R>): Filtered<A, E, R | I>;
444
444
  /**
445
445
  * @since 1.20.0
446
446
  */
447
447
  export declare const provide: {
448
448
  <S>(context: C.Context<S> | Runtime.Runtime<S>): {
449
- <R, E, A>(filtered: Filtered<R, E, A>): Filtered<Exclude<R, S>, E, A>;
450
- <R, E, A>(computed: Computed<R, E, A>): Computed<Exclude<R, S>, E, A>;
451
- <R, E, A>(ref: RefSubject<R, E, A>): RefSubject<Exclude<R, S>, E, A>;
449
+ <A, E, R>(filtered: Filtered<A, E, R>): Filtered<A, E, Exclude<R, S>>;
450
+ <A, E, R>(computed: Computed<A, E, R>): Computed<A, E, Exclude<R, S>>;
451
+ <A, E, R>(ref: RefSubject<A, E, R>): RefSubject<A, E, Exclude<R, S>>;
452
452
  };
453
- <R2, S>(layer: Layer.Layer<R2, never, S>): {
454
- <R, E, A>(filtered: Filtered<R, E, A>): Filtered<Exclude<R, S> | R2, E, A>;
455
- <R, E, A>(computed: Computed<R, E, A>): Computed<Exclude<R, S> | R2, E, A>;
456
- <R, E, A>(ref: RefSubject<R, E, A>): RefSubject<Exclude<R, S> | R2, E, A>;
453
+ <R2, S>(layer: Layer.Layer<S, never, R2>): {
454
+ <A, E, R>(filtered: Filtered<A, E, R>): Filtered<A, E, Exclude<R, S> | R2>;
455
+ <A, E, R>(computed: Computed<A, E, R>): Computed<A, E, Exclude<R, S> | R2>;
456
+ <A, E, R>(ref: RefSubject<A, E, R>): RefSubject<A, E, Exclude<R, S> | R2>;
457
457
  };
458
- <R, E, A, S>(filtered: Filtered<R, E, A>, context: C.Context<S> | Runtime.Runtime<S>): Filtered<Exclude<R, S>, E, A>;
459
- <R, E, A, S>(computed: Computed<R, E, A>, context: C.Context<S> | Runtime.Runtime<S>): Computed<Exclude<R, S>, E, A>;
460
- <R, E, A, S>(ref: RefSubject<R, E, A>, context: C.Context<S> | Runtime.Runtime<S>): RefSubject<Exclude<R, S>, E, A>;
461
- <R, E, A, R2, S>(filtered: Filtered<R, E, A>, layer: Layer.Layer<R2, never, S>): Filtered<Exclude<R, S> | R2, E, A>;
462
- <R, E, A, R2, S>(computed: Computed<R, E, A>, layer: Layer.Layer<R2, never, S>): Computed<Exclude<R, S> | R2, E, A>;
463
- <R, E, A, R2, S>(ref: RefSubject<R, E, A>, layer: Layer.Layer<R2, never, S>): RefSubject<Exclude<R, S> | R2, E, A>;
458
+ <A, E, R, S>(filtered: Filtered<A, E, R>, context: C.Context<S> | Runtime.Runtime<S>): Filtered<A, E, Exclude<R, S>>;
459
+ <A, E, R, S>(computed: Computed<A, E, R>, context: C.Context<S> | Runtime.Runtime<S>): Computed<A, E, Exclude<R, S>>;
460
+ <A, E, R, S>(ref: RefSubject<A, E, R>, context: C.Context<S> | Runtime.Runtime<S>): RefSubject<A, E, Exclude<R, S>>;
461
+ <A, E, R, R2, S>(filtered: Filtered<A, E, R>, layer: Layer.Layer<S, never, R2>): Filtered<A, E, Exclude<R, S> | R2>;
462
+ <A, E, R, R2, S>(computed: Computed<A, E, R>, layer: Layer.Layer<S, never, R2>): Computed<A, E, Exclude<R, S> | R2>;
463
+ <A, E, R, R2, S>(ref: RefSubject<A, E, R>, layer: Layer.Layer<S, never, R2>): RefSubject<A, E, Exclude<R, S> | R2>;
464
464
  };
465
465
  /**
466
466
  * Set the value to true
467
467
  * @since 1.18.0
468
468
  */
469
- export declare const asTrue: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<R, E, boolean>;
469
+ export declare const asTrue: <E, R>(ref: RefSubject<boolean, E, R>) => Effect.Effect<boolean, E, R>;
470
470
  /**
471
471
  * Set the value to false
472
472
  * @since 1.18.0
473
473
  */
474
- export declare const asFalse: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<R, E, boolean>;
474
+ export declare const asFalse: <E, R>(ref: RefSubject<boolean, E, R>) => Effect.Effect<boolean, E, R>;
475
475
  /**
476
476
  * Toggle the boolean value between true and false
477
477
  * @since 1.18.0
478
478
  */
479
- export declare const toggle: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<R, E, boolean>;
479
+ export declare const toggle: <E, R>(ref: RefSubject<boolean, E, R>) => Effect.Effect<boolean, E, R>;
480
480
  /**
481
481
  * Set the value to true
482
482
  * @since 1.18.0
483
483
  */
484
- export declare const increment: <R, E>(ref: RefSubject<R, E, number>) => Effect.Effect<R, E, number>;
484
+ export declare const increment: <E, R>(ref: RefSubject<number, E, R>) => Effect.Effect<number, E, R>;
485
485
  /**
486
486
  * Set the value to false
487
487
  * @since 1.18.0
488
488
  */
489
- export declare const decrement: <R, E>(ref: RefSubject<R, E, number>) => Effect.Effect<R, E, number>;
489
+ export declare const decrement: <E, R>(ref: RefSubject<number, E, R>) => Effect.Effect<number, E, R>;
490
490
  /**
491
491
  * @since 1.20.0
492
492
  */
493
493
  export declare const slice: {
494
- (drop: number, take: number): <R, E, A>(ref: RefSubject<R, E, A>) => RefSubject<R, E, A>;
495
- <R, E, A>(ref: RefSubject<R, E, A>, drop: number, take: number): RefSubject<R, E, A>;
494
+ (drop: number, take: number): <A, E, R>(ref: RefSubject<A, E, R>) => RefSubject<A, E, R>;
495
+ <A, E, R>(ref: RefSubject<A, E, R>, drop: number, take: number): RefSubject<A, E, R>;
496
496
  };
497
497
  /**
498
498
  * @since 1.20.0
499
499
  */
500
500
  export declare const drop: {
501
- (drop: number): <R, E, A>(ref: RefSubject<R, E, A>) => RefSubject<R, E, A>;
502
- <R, E, A>(ref: RefSubject<R, E, A>, drop: number): RefSubject<R, E, A>;
501
+ (drop: number): <A, E, R>(ref: RefSubject<A, E, R>) => RefSubject<A, E, R>;
502
+ <A, E, R>(ref: RefSubject<A, E, R>, drop: number): RefSubject<A, E, R>;
503
503
  };
504
504
  /**
505
505
  * @since 1.20.0
506
506
  */
507
507
  export declare const take: {
508
- (take: number): <R, E, A>(ref: RefSubject<R, E, A>) => RefSubject<R, E, A>;
509
- <R, E, A>(ref: RefSubject<R, E, A>, take: number): RefSubject<R, E, A>;
508
+ (take: number): <A, E, R>(ref: RefSubject<A, E, R>) => RefSubject<A, E, R>;
509
+ <A, E, R>(ref: RefSubject<A, E, R>, take: number): RefSubject<A, E, R>;
510
510
  };
511
511
  //# sourceMappingURL=RefSubject.d.ts.map