@fncts/observable 0.0.2 → 0.0.5

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 (92) hide show
  1. package/BehaviorSubject.d.ts +1 -1
  2. package/Notification.d.ts +1 -1
  3. package/Observable/api/connect.d.ts +1 -1
  4. package/Observable/api/connectable.d.ts +5 -5
  5. package/Observable/api/fromCallback.d.ts +2 -2
  6. package/Observable/api/fromEvent.d.ts +1 -1
  7. package/Observable/api/race.d.ts +2 -2
  8. package/Observable/api/raceWith.d.ts +1 -1
  9. package/Observable/api/repeatWhen.d.ts +2 -2
  10. package/Observable/api/retryWhen.d.ts +3 -3
  11. package/Observable/api/share.d.ts +5 -6
  12. package/Observable/api/window.d.ts +2 -2
  13. package/Observable/api/windowCount.d.ts +1 -1
  14. package/Observable/api/windowTime.d.ts +3 -3
  15. package/Observable/api/windowToggle.d.ts +2 -2
  16. package/Observable/api/windowWhen.d.ts +2 -2
  17. package/Observable/api.d.ts +204 -163
  18. package/Observable/definition.d.ts +24 -15
  19. package/Observable/dom/animationFrames.d.ts +1 -1
  20. package/Observer.d.ts +1 -1
  21. package/Operator.d.ts +4 -3
  22. package/Subject.d.ts +10 -9
  23. package/Subscriber.d.ts +1 -1
  24. package/_cjs/BehaviorSubject.cjs.map +1 -1
  25. package/_cjs/Observable/api/connect.cjs.map +1 -1
  26. package/_cjs/Observable/api/connectable.cjs.map +1 -1
  27. package/_cjs/Observable/api/fromCallback.cjs.map +1 -1
  28. package/_cjs/Observable/api/race.cjs.map +1 -1
  29. package/_cjs/Observable/api/raceWith.cjs.map +1 -1
  30. package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
  31. package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
  32. package/_cjs/Observable/api/share.cjs +2 -11
  33. package/_cjs/Observable/api/share.cjs.map +1 -1
  34. package/_cjs/Observable/api/window.cjs.map +1 -1
  35. package/_cjs/Observable/api/windowTime.cjs.map +1 -1
  36. package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
  37. package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
  38. package/_cjs/Observable/api.cjs +325 -308
  39. package/_cjs/Observable/api.cjs.map +1 -1
  40. package/_cjs/Observable/definition.cjs +41 -15
  41. package/_cjs/Observable/definition.cjs.map +1 -1
  42. package/_cjs/Operator.cjs.map +1 -1
  43. package/_cjs/Subject.cjs +2 -2
  44. package/_cjs/Subject.cjs.map +1 -1
  45. package/_cjs/global.cjs +3 -1
  46. package/_cjs/global.cjs.map +1 -1
  47. package/_mjs/BehaviorSubject.mjs.map +1 -1
  48. package/_mjs/Observable/api/connect.mjs.map +1 -1
  49. package/_mjs/Observable/api/connectable.mjs.map +1 -1
  50. package/_mjs/Observable/api/fromCallback.mjs.map +1 -1
  51. package/_mjs/Observable/api/race.mjs.map +1 -1
  52. package/_mjs/Observable/api/raceWith.mjs.map +1 -1
  53. package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
  54. package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
  55. package/_mjs/Observable/api/share.mjs +1 -6
  56. package/_mjs/Observable/api/share.mjs.map +1 -1
  57. package/_mjs/Observable/api/window.mjs.map +1 -1
  58. package/_mjs/Observable/api/windowTime.mjs.map +1 -1
  59. package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
  60. package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
  61. package/_mjs/Observable/api.mjs +301 -293
  62. package/_mjs/Observable/api.mjs.map +1 -1
  63. package/_mjs/Observable/definition.mjs +36 -14
  64. package/_mjs/Observable/definition.mjs.map +1 -1
  65. package/_mjs/Operator.mjs.map +1 -1
  66. package/_mjs/Subject.mjs +2 -2
  67. package/_mjs/Subject.mjs.map +1 -1
  68. package/_mjs/global.mjs +1 -1
  69. package/_mjs/global.mjs.map +1 -1
  70. package/_src/BehaviorSubject.ts +1 -1
  71. package/_src/Observable/api/connect.ts +5 -5
  72. package/_src/Observable/api/connectable.ts +7 -7
  73. package/_src/Observable/api/fromCallback.ts +8 -5
  74. package/_src/Observable/api/fromEvent.ts +1 -1
  75. package/_src/Observable/api/race.ts +2 -2
  76. package/_src/Observable/api/raceWith.ts +7 -3
  77. package/_src/Observable/api/repeatWhen.ts +8 -8
  78. package/_src/Observable/api/retryWhen.ts +8 -8
  79. package/_src/Observable/api/share.ts +10 -16
  80. package/_src/Observable/api/window.ts +5 -5
  81. package/_src/Observable/api/windowCount.ts +5 -5
  82. package/_src/Observable/api/windowTime.ts +18 -18
  83. package/_src/Observable/api/windowToggle.ts +8 -8
  84. package/_src/Observable/api/windowWhen.ts +6 -6
  85. package/_src/Observable/api.ts +524 -429
  86. package/_src/Observable/definition.ts +45 -21
  87. package/_src/Observable/dom/animationFrames.ts +2 -2
  88. package/_src/Operator.ts +6 -6
  89. package/_src/Subject.ts +9 -9
  90. package/_src/global.ts +5 -46
  91. package/global.d.ts +5 -45
  92. package/package.json +6 -2
@@ -1,71 +1,78 @@
1
1
  import { Observer } from "@fncts/observable/Observer";
2
2
  import { Unsubscribable, Subscription } from "@fncts/observable/Subscription";
3
- import { Observable } from "@fncts/observable/Observable";
4
3
  import { ReadableStreamLike } from "@fncts/observable/internal/util";
5
- import { IO } from "@fncts/io/IO";
6
- import { Lazy } from "@fncts/base/data/function";
7
- import { Cause } from "@fncts/base/data/Cause";
4
+ import { IO } from "@fncts/io/IO/definition";
5
+ import { Lazy } from "@fncts/base/data/function/definition";
6
+ import { Environment } from "@fncts/base/data/Environment/definition";
7
+ import { Cause } from "@fncts/base/data/Cause/definition";
8
8
  import { SchedulerLike, SchedulerAction } from "@fncts/observable/Scheduler";
9
9
  import { Subscriber } from "@fncts/observable/Subscriber";
10
10
  import { FiberContext } from "@fncts/io/Fiber";
11
- import { RefinementWithIndex, Refinement } from "@fncts/base/data/Refinement";
12
- import { PredicateWithIndex, Predicate } from "@fncts/base/data/Predicate";
13
- import { Maybe } from "@fncts/base/data/Maybe";
14
- import { Either } from "@fncts/base/data/Either";
11
+ import { RefinementWithIndex, Refinement } from "@fncts/base/data/Refinement/definition";
12
+ import { PredicateWithIndex, Predicate } from "@fncts/base/data/Predicate/definition";
13
+ import { Maybe } from "@fncts/base/data/Maybe/definition";
14
+ import { Either } from "@fncts/base/data/Either/definition";
15
+ import { Tag } from "@fncts/base/data/Tag/definition";
15
16
  import { Eq } from "@fncts/base/typeclass";
16
17
  import { Notification } from "@fncts/observable/Notification";
18
+ import { Observable } from "@fncts/observable/Observable/definition";
17
19
  export interface Subscribable<E, A> {
18
20
  subscribe(observer: Partial<Observer<E, A>>): Unsubscribable;
19
21
  }
20
- export declare type ObservableInput<E = never, A = never> = Observable<E, A> | Subscribable<E, A> | AsyncIterable<A> | PromiseLike<A> | ArrayLike<A> | Iterable<A> | ReadableStreamLike<A> | IO<never, E, A>;
22
+ export declare type ObservableInput<R = never, E = never, A = never> = Observable<R, E, A> | Subscribable<E, A> | AsyncIterable<A> | PromiseLike<A> | ArrayLike<A> | Iterable<A> | ReadableStreamLike<A> | IO<R, E, A>;
21
23
  /**
22
24
  * @tsplus static fncts.observable.ObservableOps halt
23
25
  * @tsplus location "@fncts/observable/Observable/api"
24
26
  */
25
- export declare function halt(defect: unknown): Observable<never, never>;
27
+ export declare function halt(defect: unknown): Observable<never, never, never>;
26
28
  /**
27
29
  * @tsplus static fncts.observable.ObservableOps defer
28
30
  * @tsplus location "@fncts/observable/Observable/api"
29
31
  */
30
- export declare function defer<E, A>(observable: Lazy<ObservableInput<E, A>>): Observable<E, A>;
32
+ export declare function defer<R, E, A>(observable: Lazy<ObservableInput<R, E, A>>): Observable<R, E, A>;
31
33
  /**
32
34
  * @tsplus static fncts.observable.ObservableOps empty
33
35
  * @tsplus location "@fncts/observable/Observable/api"
34
36
  */
35
- export declare function empty<A>(): Observable<never, A>;
37
+ export declare function empty<A>(): Observable<never, never, A>;
38
+ /**
39
+ * @tsplus static fncts.observable.ObservableOps environmentWithObservable
40
+ * @tsplus location "@fncts/observable/Observable/api"
41
+ */
42
+ export declare function environmentWithObservable<R0, R, E, A>(f: (environment: Environment<R0>) => Observable<R, E, A>): Observable<R0 | R, E, A>;
36
43
  /**
37
44
  * @tsplus static fncts.observable.ObservableOps failCause
38
45
  * @tsplus location "@fncts/observable/Observable/api"
39
46
  */
40
- export declare function failCause<E>(cause: Cause<E>): Observable<E, never>;
47
+ export declare function failCause<E>(cause: Cause<E>): Observable<never, E, never>;
41
48
  /**
42
49
  * @tsplus static fncts.observable.ObservableOps fail
43
50
  * @tsplus location "@fncts/observable/Observable/api"
44
51
  */
45
- export declare function fail<E>(e: E): Observable<E, never>;
52
+ export declare function fail<E>(e: E): Observable<never, E, never>;
46
53
  /**
47
54
  * @tsplus static fncts.observable.ObservableOps from
48
55
  * @tsplus location "@fncts/observable/Observable/api"
49
56
  */
50
- export declare function from<E = never, A = never>(input: ObservableInput<E, A>): Observable<E, A>;
51
- export declare function fromArrayLike<A>(input: ArrayLike<A>): Observable<never, A>;
52
- export declare function fromAsyncIterable<A>(asyncIterable: AsyncIterable<A>): Observable<never, A>;
53
- export declare function fromIterable<A>(iterable: Iterable<A>): Observable<never, A>;
54
- export declare function fromPromise<A>(promise: PromiseLike<A>): Observable<never, A>;
55
- export declare function fromReadableStreamLike<A>(readableStream: ReadableStreamLike<A>): Observable<never, A>;
57
+ export declare function from<R = never, E = never, A = never>(input: ObservableInput<R, E, A>): Observable<R, E, A>;
58
+ export declare function fromArrayLike<A>(input: ArrayLike<A>): Observable<never, never, A>;
59
+ export declare function fromAsyncIterable<A>(asyncIterable: AsyncIterable<A>): Observable<never, never, A>;
60
+ export declare function fromIterable<A>(iterable: Iterable<A>): Observable<never, never, A>;
61
+ export declare function fromPromise<A>(promise: PromiseLike<A>): Observable<never, never, A>;
62
+ export declare function fromReadableStreamLike<A>(readableStream: ReadableStreamLike<A>): Observable<never, never, A>;
56
63
  /**
57
64
  * @tsplus static fncts.observable.ObservableOps fromSubscribable
58
65
  * @tsplus location "@fncts/observable/Observable/api"
59
66
  */
60
- export declare function fromSubscribable<E, A>(subscribable: Subscribable<E, A>): Observable<E, A>;
67
+ export declare function fromSubscribable<E, A>(subscribable: Subscribable<E, A>): Observable<never, E, A>;
61
68
  export declare function fromInterop<A>(subscribable: {
62
69
  subscribe: (observer: {
63
70
  next: (value: A) => void;
64
71
  error: (err: unknown) => void;
65
72
  complete: () => void;
66
73
  }) => Unsubscribable;
67
- }): Observable<unknown, A>;
68
- declare function _if<E, A, E1, B>(condition: () => boolean, onTrue: ObservableInput<E, A>, onFalse: ObservableInput<E1, B>): Observable<E | E1, A | B>;
74
+ }): Observable<never, unknown, A>;
75
+ declare function _if<R, E, A, R1, E1, B>(condition: () => boolean, onTrue: ObservableInput<R, E, A>, onFalse: ObservableInput<R1, E1, B>): Observable<R | R1, E | E1, A | B>;
69
76
  export { _if as if };
70
77
  export interface IterateOptions<S> {
71
78
  readonly initialState: S;
@@ -73,207 +80,223 @@ export interface IterateOptions<S> {
73
80
  readonly iterate: (state: S) => S;
74
81
  readonly scheduler?: SchedulerLike;
75
82
  }
76
- export declare function iterate<S>(options: IterateOptions<S>): Observable<never, S>;
83
+ export declare function iterate<S>(options: IterateOptions<S>): Observable<never, never, S>;
77
84
  /**
78
85
  * @tsplus static fncts.obervable.ObservableOps interval
79
86
  * @tsplus location "@fncts/observable/Observable/api"
80
87
  */
81
- export declare function interval(period?: number, scheduler?: SchedulerLike): Observable<never, number>;
88
+ export declare function interval(period?: number, scheduler?: SchedulerLike): Observable<never, never, number>;
82
89
  /**
83
90
  * @tsplus static fncts.obervable.ObservableOps merge
84
91
  * @tsplus location "@fncts/observable/Observable/api"
85
92
  */
86
- export declare function merge<O extends ReadonlyArray<ObservableInput<any, any>>>(...sources: O): Observable<Observable.ErrorOf<O[number]>, Observable.TypeOf<O[number]>>;
87
- export declare function merge<O extends ReadonlyArray<ObservableInput<any, any>>>(...sources: [...O, number?]): Observable<Observable.ErrorOf<O[number]>, Observable.TypeOf<O[number]>>;
93
+ export declare function merge<O extends ReadonlyArray<ObservableInput<any, any>>>(...sources: O): Observable<Observable.EnvironmentOf<O[number]>, Observable.ErrorOf<O[number]>, Observable.TypeOf<O[number]>>;
94
+ export declare function merge<O extends ReadonlyArray<ObservableInput<any, any>>>(...sources: [...O, number?]): Observable<Observable.EnvironmentOf<O[number]>, Observable.ErrorOf<O[number]>, Observable.TypeOf<O[number]>>;
88
95
  /**
89
96
  * @tsplus static fncts.observable.ObservableOps of
90
97
  * @tsplus location "@fncts/observable/Observable/api"
91
98
  */
92
- export declare function of<A>(...items: ReadonlyArray<A>): Observable<never, A>;
99
+ export declare function of<A>(...items: ReadonlyArray<A>): Observable<never, never, A>;
93
100
  /**
94
101
  * @tsplus static fncts.observable.ObservableOps single
95
102
  * @tsplus location "@fncts/observable/Observable/api"
96
103
  */
97
- export declare function single<A>(a: A): Observable<never, A>;
104
+ export declare function single<A>(a: A): Observable<never, never, A>;
98
105
  /**
99
106
  * @tsplus fluent fncts.observable.Observable scheduled
100
107
  * @tsplus static fncts.observable.ObservableOps scheduled
101
108
  * @tsplus location "@fncts/observable/Observable/api"
102
109
  */
103
- export declare function scheduled<E, A>(input: ObservableInput<E, A>, scheduler: SchedulerLike): Observable<E, A>;
104
- export declare function scheduleArray<A>(input: ArrayLike<A>, scheduler: SchedulerLike): Observable<never, A>;
105
- export declare function scheduleAsyncIterable<A>(input: AsyncIterable<A>, scheduler: SchedulerLike): Observable<never, A>;
106
- export declare function scheduleIterable<A>(input: Iterable<A>, scheduler: SchedulerLike): Observable<never, A>;
107
- export declare function scheduleObservable<E, A>(input: Observable<E, A>, scheduler: SchedulerLike): Observable<E, A>;
108
- export declare function schedulePromise<A>(input: PromiseLike<A>, scheduler: SchedulerLike): Observable<never, A>;
109
- export declare function scheduleReadableStreamLike<A>(input: ReadableStreamLike<A>, scheduler: SchedulerLike): Observable<never, A>;
110
+ export declare function scheduled<R, E, A>(input: ObservableInput<R, E, A>, scheduler: SchedulerLike): Observable<R, E, A>;
111
+ export declare function scheduleArray<A>(input: ArrayLike<A>, scheduler: SchedulerLike): Observable<never, never, A>;
112
+ export declare function scheduleAsyncIterable<A>(input: AsyncIterable<A>, scheduler: SchedulerLike): Observable<never, never, A>;
113
+ export declare function scheduleIterable<A>(input: Iterable<A>, scheduler: SchedulerLike): Observable<never, never, A>;
114
+ export declare function scheduleObservable<R, E, A>(input: Observable<R, E, A>, scheduler: SchedulerLike): Observable<R, E, A>;
115
+ export declare function schedulePromise<A>(input: PromiseLike<A>, scheduler: SchedulerLike): Observable<never, never, A>;
116
+ export declare function scheduleReadableStreamLike<A>(input: ReadableStreamLike<A>, scheduler: SchedulerLike): Observable<never, never, A>;
110
117
  /**
111
118
  * @tsplus static fncts.observable.ObservableOps timer
112
119
  * @tsplus location "@fncts/observable/Observable/api"
113
120
  */
114
- export declare function timer(time: number | Date, interval?: number, scheduler?: SchedulerLike): Observable<never, number>;
115
- export declare function timer(time: number | Date, scheduler?: SchedulerLike): Observable<never, number>;
121
+ export declare function timer(time: number | Date, interval?: number, scheduler?: SchedulerLike): Observable<never, never, number>;
122
+ export declare function timer(time: number | Date, scheduler?: SchedulerLike): Observable<never, never, number>;
116
123
  /**
117
124
  * @tsplus static fncts.observable.ObservableOps zip
118
125
  * @tsplus location "@fncts/observable/Observable/api"
119
126
  */
120
- export declare function makeZip<O extends ReadonlyArray<ObservableInput<any, any>>>(...sources: O): Observable<Observable.ErrorOf<O[number]>, {
127
+ export declare function makeZip<O extends ReadonlyArray<ObservableInput<any, any>>>(...sources: O): Observable<Observable.EnvironmentOf<O[number]>, Observable.ErrorOf<O[number]>, {
121
128
  [K in keyof O]: Observable.TypeOf<O[K]>;
122
129
  }>;
123
130
  /**
124
131
  * @tsplus static fncts.observable.ObservableOps fromIO
125
132
  * @tsplus location "@fncts/observable/Observable/api"
126
133
  */
127
- export declare function fromIO<E, A>(io: IO<never, E, A>, scheduler?: SchedulerLike): Observable<E, A>;
134
+ export declare function fromIO<R, E, A>(io: IO<R, E, A>, scheduler?: SchedulerLike): Observable<R, E, A>;
128
135
  /**
129
136
  * @tsplus static fncts.observable.ObservableOps unit
130
137
  * @tsplus location "@fncts/observable/Observable/api"
131
138
  */
132
- export declare const unit: Observable<never, void>;
139
+ export declare const unit: Observable<never, never, void>;
133
140
  /**
134
141
  * @tsplus fluent fncts.observable.Observable zipWith
135
142
  * @tsplus location "@fncts/observable/Observable/api"
136
143
  */
137
- export declare function zipWith<E, A, E1, B, C>(fa: Observable<E, A>, fb: Observable<E1, B>, f: (a: A, b: B) => C): Observable<E | E1, C>;
144
+ export declare function zipWith<R, E, A, R1, E1, B, C>(fa: Observable<R, E, A>, fb: Observable<R1, E1, B>, f: (a: A, b: B) => C): Observable<R | R1, E | E1, C>;
138
145
  /**
139
146
  * @tsplus fluent fncts.observable.Observable zip
140
147
  * @tsplus location "@fncts/observable/Observable/api"
141
148
  */
142
- export declare function zip<E, A, E1, B>(fa: Observable<E, A>, fb: Observable<E1, B>): Observable<E | E1, readonly [A, B]>;
149
+ export declare function zip<R, E, A, R1, E1, B>(fa: Observable<R, E, A>, fb: Observable<R1, E1, B>): Observable<R | R1, E | E1, readonly [A, B]>;
143
150
  /**
144
151
  * @tsplus fluent fncts.observable.Observable ap
145
152
  * @tsplus location "@fncts/observable/Observable/api"
146
153
  */
147
- export declare function ap<E, A, E1, B>(fab: Observable<E, (a: A) => B>, fa: Observable<E1, A>): Observable<E | E1, B>;
154
+ export declare function ap<R, E, A, R1, E1, B>(fab: Observable<R, E, (a: A) => B>, fa: Observable<R1, E1, A>): Observable<R | R1, E | E1, B>;
148
155
  /**
149
156
  * @tsplus fluent fncts.observable.Observable mapWithIndex
150
157
  * @tsplus location "@fncts/observable/Observable/api"
151
158
  */
152
- export declare function mapWithIndex<E, A, B>(fa: Observable<E, A>, f: (i: number, a: A) => B): Observable<E, B>;
159
+ export declare function mapWithIndex<R, E, A, B>(fa: Observable<R, E, A>, f: (i: number, a: A) => B): Observable<R, E, B>;
153
160
  /**
154
161
  * @tsplus fluent fncts.observable.Observable map
155
162
  * @tsplus location "@fncts/observable/Observable/api"
156
163
  */
157
- export declare function map_<E, A, B>(fa: Observable<E, A>, f: (a: A) => B): Observable<E, B>;
164
+ export declare function map_<R, E, A, B>(fa: Observable<R, E, A>, f: (a: A) => B): Observable<R, E, B>;
158
165
  /**
159
166
  * @tsplus fluent fncts.observable.Observable as
160
167
  * @tsplus location "@fncts/observable/Observable/api"
161
168
  */
162
- export declare function as_<E, A, B>(fa: Observable<E, A>, b: Lazy<B>): Observable<E, B>;
169
+ export declare function as_<R, E, A, B>(fa: Observable<R, E, A>, b: Lazy<B>): Observable<R, E, B>;
163
170
  /**
164
171
  * @tsplus fluent fncts.observable.Observable mapError
165
172
  * @tsplus location "@fncts/observable/Observable/api"
166
173
  */
167
- export declare function mapError_<E, A, E1>(fa: Observable<E, A>, f: (e: E) => E1): Observable<E1, A>;
174
+ export declare function mapError_<R, E, A, E1>(fa: Observable<R, E, A>, f: (e: E) => E1): Observable<R, E1, A>;
168
175
  /**
169
176
  * @tsplus getter fncts.observable.Observable swap
170
177
  * @tsplus location "@fncts/observable/Observable/api"
171
178
  */
172
- export declare function swap<E, A>(fa: Observable<E, A>): Observable<A, E>;
179
+ export declare function swap<R, E, A>(fa: Observable<R, E, A>): Observable<R, A, E>;
173
180
  /**
174
181
  * @tsplus fluent fncts.observable.Observable filterWithIndex
175
182
  * @tsplus location "@fncts/observable/Observable/api"
176
183
  */
177
- export declare function filterWithIndex_<E, A, B extends A>(fa: Observable<E, A>, refinement: RefinementWithIndex<number, A, B>): Observable<E, B>;
178
- export declare function filterWithIndex_<E, A>(fa: Observable<E, A>, predicate: PredicateWithIndex<number, A>): Observable<E, A>;
184
+ export declare function filterWithIndex_<R, E, A, B extends A>(fa: Observable<R, E, A>, refinement: RefinementWithIndex<number, A, B>): Observable<R, E, B>;
185
+ export declare function filterWithIndex_<R, E, A>(fa: Observable<R, E, A>, predicate: PredicateWithIndex<number, A>): Observable<R, E, A>;
179
186
  /**
180
187
  * @tsplus fluent fncts.observable.Observable filter
181
188
  * @tsplus location "@fncts/observable/Observable/api"
182
189
  */
183
- export declare function filter_<E, A, B extends A>(fa: Observable<E, A>, refinement: Refinement<A, B>): Observable<E, B>;
184
- export declare function filter_<E, A>(fa: Observable<E, A>, predicate: Predicate<A>): Observable<E, A>;
190
+ export declare function filter_<R, E, A, B extends A>(fa: Observable<R, E, A>, refinement: Refinement<A, B>): Observable<R, E, B>;
191
+ export declare function filter_<R, E, A>(fa: Observable<R, E, A>, predicate: Predicate<A>): Observable<R, E, A>;
185
192
  /**
186
193
  * @tsplus fluent fncts.observable.Observable filterMapWithIndex
187
194
  * @tsplus location "@fncts/observable/Observable/api"
188
195
  */
189
- export declare function filterMapWithIndex<E, A, B>(fa: Observable<E, A>, f: (i: number, a: A) => Maybe<B>): Observable<E, B>;
196
+ export declare function filterMapWithIndex<R, E, A, B>(fa: Observable<R, E, A>, f: (i: number, a: A) => Maybe<B>): Observable<R, E, B>;
190
197
  /**
191
198
  * @tsplus fluent fncts.observable.Observable filterMap
192
199
  * @tsplus location "@fncts/observable/Observable/api"
193
200
  */
194
- export declare function filterMap_<E, A, B>(fa: Observable<E, A>, f: (a: A) => Maybe<B>): Observable<E, B>;
201
+ export declare function filterMap_<R, E, A, B>(fa: Observable<R, E, A>, f: (a: A) => Maybe<B>): Observable<R, E, B>;
195
202
  /**
196
203
  * @tsplus fluent fncts.observable.Observable partitionWithIndex
197
204
  * @tsplus location "@fncts/observable/Observable/api"
198
205
  */
199
- export declare function partitionWithIndex<E, A, B extends A>(fa: Observable<E, A>, refinement: RefinementWithIndex<number, A, B>): readonly [Observable<E, Exclude<A, B>>, Observable<E, B>];
200
- export declare function partitionWithIndex<E, A>(fa: Observable<E, A>, predicate: PredicateWithIndex<number, A>): readonly [Observable<E, A>, Observable<E, A>];
206
+ export declare function partitionWithIndex<R, E, A, B extends A>(fa: Observable<R, E, A>, refinement: RefinementWithIndex<number, A, B>): readonly [Observable<R, E, Exclude<A, B>>, Observable<R, E, B>];
207
+ export declare function partitionWithIndex<R, E, A>(fa: Observable<R, E, A>, predicate: PredicateWithIndex<number, A>): readonly [Observable<R, E, A>, Observable<R, E, A>];
201
208
  /**
202
209
  * @tsplus fluent fncts.observable.Observable partition
203
210
  * @tsplus location "@fncts/observable/Observable/api"
204
211
  */
205
- export declare function partition_<E, A, B extends A>(fa: Observable<E, A>, refinement: Refinement<A, B>): readonly [Observable<E, Exclude<A, B>>, Observable<E, B>];
206
- export declare function partition_<E, A>(fa: Observable<E, A>, predicate: Predicate<A>): readonly [Observable<E, A>, Observable<E, A>];
212
+ export declare function partition_<R, E, A, B extends A>(fa: Observable<R, E, A>, refinement: Refinement<A, B>): readonly [Observable<R, E, Exclude<A, B>>, Observable<R, E, B>];
213
+ export declare function partition_<R, E, A>(fa: Observable<R, E, A>, predicate: Predicate<A>): readonly [Observable<R, E, A>, Observable<R, E, A>];
207
214
  /**
208
215
  * @tsplus fluent fncts.observable.Observable partitionMapWithIndex
209
216
  * @tsplus location "@fncts/observable/Observable/api"
210
217
  */
211
- export declare function partitionMapWithIndex_<E, A, B, C>(fa: Observable<E, A>, f: (i: number, a: A) => Either<B, C>): readonly [Observable<E, B>, Observable<E, C>];
218
+ export declare function partitionMapWithIndex_<R, E, A, B, C>(fa: Observable<R, E, A>, f: (i: number, a: A) => Either<B, C>): readonly [Observable<R, E, B>, Observable<R, E, C>];
212
219
  /**
213
220
  * @tsplus fluent fncts.observable.Observable partitionMap
214
221
  * @tsplus location "@fncts/observable/Observable/api"
215
222
  */
216
- export declare function partitionMap_<E, A, B, C>(fa: Observable<E, A>, f: (a: A) => Either<B, C>): readonly [Observable<E, B>, Observable<E, C>];
223
+ export declare function partitionMap_<R, E, A, B, C>(fa: Observable<R, E, A>, f: (a: A) => Either<B, C>): readonly [Observable<R, E, B>, Observable<R, E, C>];
224
+ /**
225
+ * @tsplus fluent fncts.observable.Observable provideEnvironment
226
+ * @tsplus location "@fncts/observable/Observable/api"
227
+ */
228
+ export declare function provideEnvironment<R, E, A>(self: Observable<R, E, A>, environment: Environment<R>): Observable<never, E, A>;
229
+ /**
230
+ * @tsplus fluent fncts.observable.Observable provideService
231
+ * @tsplus location "@fncts/observable/Observable/api"
232
+ */
233
+ export declare function provideService<R, E, A, S>(self: Observable<R, E, A>, service: S,
234
+ /** @tsplus auto */ tag: Tag<S>): Observable<Exclude<R, S>, E, A>;
217
235
  /**
218
236
  * @tsplus fluent fncts.observable.Observable mergeMapWithIndex
219
237
  * @tsplus location "@fncts/observable/Observable/api"
220
238
  */
221
- export declare function mergeMapWithIndex<E, A, E1, B>(ma: Observable<E, A>, f: (i: number, a: A) => ObservableInput<E1, B>, concurrent?: number): Observable<E | E1, B>;
239
+ export declare function mergeMapWithIndex<R, E, A, R1, E1, B>(ma: Observable<R, E, A>, f: (i: number, a: A) => ObservableInput<R1, E1, B>, concurrent?: number): Observable<R | R1, E | E1, B>;
222
240
  /**
223
241
  * @tsplus fluent fncts.observable.Observable mergeMap
224
242
  * @tsplus location "@fncts/observable/Observable/api"
225
243
  */
226
- export declare function mergeMap_<E, A, E1, B>(ma: Observable<E, A>, f: (a: A) => ObservableInput<E1, B>, concurrent?: number): Observable<E | E1, B>;
244
+ export declare function mergeMap_<R, E, A, R1, E1, B>(ma: Observable<R, E, A>, f: (a: A) => ObservableInput<R1, E1, B>, concurrent?: number): Observable<R | R1, E | E1, B>;
227
245
  /**
228
246
  * @tsplus fluent fncts.observable.Observable concatMapWithIndex
229
247
  * @tsplus location "@fncts/observable/Observable/api"
230
248
  */
231
- export declare function concatMapWithIndex<E, A, E1, B>(ma: Observable<E, A>, f: (i: number, a: A) => ObservableInput<E1, B>): Observable<E | E1, B>;
249
+ export declare function concatMapWithIndex<R, E, A, R1, E1, B>(ma: Observable<R, E, A>, f: (i: number, a: A) => ObservableInput<R1, E1, B>): Observable<R | R1, E | E1, B>;
232
250
  /**
233
251
  * @tsplus fluent fncts.observable.Observable concatMap
234
252
  * @tsplus location "@fncts/observable/Observable/api"
235
253
  */
236
- export declare function concatMap_<E, A, E1, B>(ma: Observable<E, A>, f: (a: A) => ObservableInput<E1, B>): Observable<E | E1, B>;
254
+ export declare function concatMap_<R, E, A, R1, E1, B>(ma: Observable<R, E, A>, f: (a: A) => ObservableInput<R1, E1, B>): Observable<R | R1, E | E1, B>;
255
+ /**
256
+ * @tsplus fluent fncts.observable.Observable contramapEnvironment
257
+ * @tsplus location "@fncts/observable/Observable/api"
258
+ */
259
+ export declare function contramapEnvironment<R, E, A, R0>(self: Observable<R, E, A>, f: (r0: Environment<R0>) => Environment<R>): Observable<R0, E, A>;
237
260
  /**
238
261
  * @tsplus getter fncts.observable.Observable flatten
239
262
  * @tsplus location "@fncts/observable/Observable/api"
240
263
  */
241
- export declare function flatten<E, E1, A>(mma: Observable<E, Observable<E1, A>>): Observable<E | E1, A>;
264
+ export declare function flatten<R, E, R1, E1, A>(mma: Observable<R, E, Observable<R1, E1, A>>): Observable<R | R1, E | E1, A>;
242
265
  /**
243
266
  * @tsplus fluent fncts.observable.Observable foldLeftWithIndex
244
267
  * @tsplus location "@fncts/observable/Observable/api"
245
268
  */
246
- export declare function foldLeftWithIndex<E, A, B>(fa: Observable<E, A>, initial: B, f: (index: number, acc: B, value: A) => B): Observable<E, B>;
269
+ export declare function foldLeftWithIndex<R, E, A, B>(fa: Observable<R, E, A>, initial: B, f: (index: number, acc: B, value: A) => B): Observable<R, E, B>;
247
270
  /**
248
271
  * @tsplus fluent fncts.observable.Observable foldLeft
249
272
  * @tsplus location "@fncts/observable/Observable/api"
250
273
  */
251
- export declare function foldLeft<E, A, B>(fa: Observable<E, A>, initial: B, f: (acc: B, value: A) => B): Observable<E, B>;
274
+ export declare function foldLeft<R, E, A, B>(fa: Observable<R, E, A>, initial: B, f: (acc: B, value: A) => B): Observable<R, E, B>;
252
275
  /**
253
276
  * @tsplus fluent fncts.observable.Observable at
254
277
  * @tsplus location "@fncts/observable/Observable/api"
255
278
  */
256
- export declare function at_<E, A>(fa: Observable<E, A>, index: number): Observable<E, Maybe<A>>;
279
+ export declare function at_<R, E, A>(fa: Observable<R, E, A>, index: number): Observable<R, E, Maybe<A>>;
257
280
  /**
258
281
  * @tsplus fluent fncts.observable.Observable audit
259
282
  * @tsplus location "@fncts/observable/Observable/api"
260
283
  */
261
- export declare function audit_<E, A, E1>(fa: Observable<E, A>, durationSelector: (value: A) => ObservableInput<E1, any>): Observable<E | E1, A>;
284
+ export declare function audit_<R, E, A, R1, E1>(fa: Observable<R, E, A>, durationSelector: (value: A) => ObservableInput<R1, E1, any>): Observable<R | R1, E | E1, A>;
262
285
  /**
263
286
  * @tsplus fluent fncts.observable.Observable auditTime
264
287
  * @tsplus location "@fncts/observable/Observable/api"
265
288
  */
266
- export declare function auditTime_<E, A>(fa: Observable<E, A>, duration: number, scheduler?: SchedulerLike): Observable<E, A>;
289
+ export declare function auditTime_<R, E, A>(fa: Observable<R, E, A>, duration: number, scheduler?: SchedulerLike): Observable<R, E, A>;
267
290
  /**
268
291
  * @tsplus fluent fncts.observable.Observable buffer
269
292
  * @tsplus location "@fncts/observable/Observable/api"
270
293
  */
271
- export declare function buffer_<E, A, E1>(fa: Observable<E, A>, closingNotifier: Observable<E1, any>): Observable<E | E1, ReadonlyArray<A>>;
294
+ export declare function buffer_<R, E, A, R1, E1>(fa: Observable<R, E, A>, closingNotifier: Observable<R1, E1, any>): Observable<R | R1, E | E1, ReadonlyArray<A>>;
272
295
  /**
273
296
  * @tsplus fluent fncts.observable.Observable bufferCount
274
297
  * @tsplus location "@fncts/observable/Observable/api"
275
298
  */
276
- export declare function bufferCount_<E, A>(fa: Observable<E, A>, bufferSize: number, startBufferEvery?: number): Observable<E, ReadonlyArray<A>>;
299
+ export declare function bufferCount_<R, E, A>(fa: Observable<R, E, A>, bufferSize: number, startBufferEvery?: number): Observable<R, E, ReadonlyArray<A>>;
277
300
  export interface BufferTimeConfig {
278
301
  readonly bufferTimeSpan: number;
279
302
  readonly bufferCreationInterval?: number;
@@ -284,200 +307,202 @@ export interface BufferTimeConfig {
284
307
  * @tsplus fluent fncts.observable.Observable bufferTime
285
308
  * @tsplus location "@fncts/observable/Observable/api"
286
309
  */
287
- export declare function bufferTime_<E, A>(fa: Observable<E, A>, config: BufferTimeConfig): Observable<E, ReadonlyArray<A>>;
310
+ export declare function bufferTime_<R, E, A>(fa: Observable<R, E, A>, config: BufferTimeConfig): Observable<R, E, ReadonlyArray<A>>;
288
311
  /**
289
312
  * @tsplus fluent fncts.observable.Observable bufferToggle
290
313
  * @tsplus location "@fncts/observable/Observable/api"
291
314
  */
292
- export declare function bufferToggle_<E, A, E1, B, E2>(fa: Observable<E, A>, openings: ObservableInput<E1, B>, closingSelector: (value: B) => ObservableInput<E2, any>): Observable<E | E1 | E2, ReadonlyArray<A>>;
315
+ export declare function bufferToggle_<R, E, A, R1, E1, B, R2, E2>(fa: Observable<R, E, A>, openings: ObservableInput<R1, E1, B>, closingSelector: (value: B) => ObservableInput<R2, E2, any>): Observable<R | R1 | R2, E | E1 | E2, ReadonlyArray<A>>;
293
316
  /**
294
317
  * @tsplus fluent fncts.observable.Observable bufferWhen
295
318
  * @tsplus location "@fncts/observable/Observable/api"
296
319
  */
297
- export declare function bufferWhen_<E, A, E1>(fa: Observable<E, A>, closingSelector: () => ObservableInput<E1, any>): Observable<E | E1, ReadonlyArray<A>>;
298
- export declare function bufferWhen<E1>(closingSelector: () => ObservableInput<E1, any>): <E, A>(fa: Observable<E, A>) => Observable<E | E1, ReadonlyArray<A>>;
320
+ export declare function bufferWhen_<R, E, A, R1, E1>(fa: Observable<R, E, A>, closingSelector: () => ObservableInput<R1, E1, any>): Observable<R | R1, E | E1, ReadonlyArray<A>>;
299
321
  /**
300
322
  * @tsplus fluent fncts.observable.Observable catchAllCause
301
323
  * @tsplus location "@fncts/observable/Observable/api"
302
324
  */
303
- export declare function catchAllCause<E, A, E1, B>(self: Observable<E, A>, f: (cause: Cause<E>, caught: Observable<E | E1, A | B>) => ObservableInput<E1, B>): Observable<E1, A | B>;
325
+ export declare function catchAllCause<R, E, A, R1, E1, B>(self: Observable<R, E, A>, f: (cause: Cause<E>, caught: Observable<R | R1, E | E1, A | B>) => ObservableInput<R | R1, E1, B>): Observable<R | R1, E1, A | B>;
304
326
  /**
305
327
  * @tsplus getter fncts.observable.Observable concatAll
306
328
  * @tsplus location "@fncts/observable/Observable/api"
307
329
  */
308
- export declare function concatAll<E, E1, A>(ffa: Observable<E, ObservableInput<E1, A>>): Observable<E | E1, A>;
330
+ export declare function concatAll<R, E, R1, E1, A>(ffa: Observable<R, E, ObservableInput<R1, E1, A>>): Observable<R | R1, E | E1, A>;
309
331
  /**
310
332
  * @tsplus fluent fncts.observable.Observable concat
311
333
  * @tsplus location "@fncts/observable/Observable/api"
312
334
  */
313
- export declare function concat_<E, A, O extends ReadonlyArray<ObservableInput<any, any>>>(fa: Observable<E, A>, ...sources: O): Observable<E | Observable.ErrorOf<O[number]>, A | Observable.TypeOf<O[number]>>;
335
+ export declare function concat_<R, E, A, O extends ReadonlyArray<ObservableInput<any, any>>>(fa: Observable<R, E, A>, ...sources: O): Observable<R | Observable.EnvironmentOf<O[number]>, E | Observable.ErrorOf<O[number]>, A | Observable.TypeOf<O[number]>>;
314
336
  /**
315
337
  * @tsplus getter fncts.observable.Observable count
316
338
  * @tsplus location "@fncts/observable/Observable/api"
317
339
  */
318
- export declare function count<E, A>(fa: Observable<E, A>): Observable<E, number>;
340
+ export declare function count<R, E, A>(fa: Observable<R, E, A>): Observable<R, E, number>;
319
341
  /**
320
342
  * @tsplus fluent fncts.observable.Observable countWithIndex
321
343
  * @tsplus location "@fncts/observable/Observable/api"
322
344
  */
323
- export declare function countWithIndex<E, A>(fa: Observable<E, A>, predicate: PredicateWithIndex<number, A>): Observable<E, number>;
345
+ export declare function countWithIndex<R, E, A>(fa: Observable<R, E, A>, predicate: PredicateWithIndex<number, A>): Observable<R, E, number>;
324
346
  /**
325
347
  * @tsplus fluent fncts.observable.Observable countWith
326
348
  * @tsplus location "@fncts/observable/Observable/api"
327
349
  */
328
- export declare function countWith_<E, A>(fa: Observable<E, A>, predicate: Predicate<A>): Observable<E, number>;
350
+ export declare function countWith_<R, E, A>(fa: Observable<R, E, A>, predicate: Predicate<A>): Observable<R, E, number>;
329
351
  /**
330
352
  * @tsplus getter fncts.observable.Observable combineLatestAll
331
353
  * @tsplus location "@fncts/observable/Observable/api"
332
354
  */
333
- export declare function combineLatestAll<E, E1, A>(fa: Observable<E, ObservableInput<E1, A>>): Observable<E | E1, ReadonlyArray<A>>;
355
+ export declare function combineLatestAll<R, E, R1, E1, A>(fa: Observable<R, E, ObservableInput<R1, E1, A>>): Observable<R | R1, E | E1, ReadonlyArray<A>>;
334
356
  /**
335
357
  * @tsplus fluent fncts.observable.Observable combineLatest
336
358
  * @tsplus location "@fncts/observable/Observable/api"
337
359
  */
338
- export declare function combineLatest_<E, A, O extends ReadonlyArray<ObservableInput<any, any>>>(self: ObservableInput<E, A>, ...sources: O): Observable<E | Observable.ErrorOf<O[number]>, [A, ...{
339
- [K in keyof O]: Observable.TypeOf<O[K]>;
340
- }]>;
360
+ export declare function combineLatest_<R, E, A, O extends ReadonlyArray<ObservableInput<any, any, any>>>(self: ObservableInput<R, E, A>, ...sources: O): Observable<R | Observable.EnvironmentOf<O[number]>, E | Observable.ErrorOf<O[number]>, [
361
+ A,
362
+ ...{
363
+ [K in keyof O]: Observable.TypeOf<O[K]>;
364
+ }
365
+ ]>;
341
366
  /**
342
367
  * @tsplus fluent fncts.observable.Observable debounceWith
343
368
  * @tsplus location "@fncts/observable/Observable/api"
344
369
  */
345
- export declare function debounceWith_<E, A, E1>(fa: Observable<E, A>, durationSelector: (value: A) => ObservableInput<E1, any>): Observable<E | E1, A>;
370
+ export declare function debounceWith_<R, E, A, R1, E1>(fa: Observable<R, E, A>, durationSelector: (value: A) => ObservableInput<R1, E1, any>): Observable<R | R1, E | E1, A>;
346
371
  /**
347
372
  * @tsplus fluent fncts.observable.Observable debounce
348
373
  * @tsplus location "@fncts/observable/Observable/api"
349
374
  */
350
- export declare function debounce_<E, A>(fa: Observable<E, A>, dueTime: number, scheduler?: SchedulerLike): Observable<E, A>;
375
+ export declare function debounce_<R, E, A>(fa: Observable<R, E, A>, dueTime: number, scheduler?: SchedulerLike): Observable<R, E, A>;
351
376
  /**
352
377
  * @tsplus getter fncts.observable.Observable either
353
378
  * @tsplus location "@fncts/observable/Observable/api"
354
379
  */
355
- export declare function either<E, A>(fa: Observable<E, A>): Observable<never, Either<E, A>>;
380
+ export declare function either<R, E, A>(fa: Observable<R, E, A>): Observable<R, never, Either<E, A>>;
356
381
  /**
357
382
  * @tsplus fluent fncts.observable.Observable delayWithIndex
358
383
  * @tsplus location "@fncts/observable/Observable/api"
359
384
  */
360
- export declare function delayWithIndex<E, A, E1>(fa: Observable<E, A>, f: (index: number, value: A) => Observable<E1, any>): Observable<E | E1, A>;
385
+ export declare function delayWithIndex<R, E, A, R1, E1>(fa: Observable<R, E, A>, f: (index: number, value: A) => Observable<R1, E1, any>): Observable<R | R1, E | E1, A>;
361
386
  /**
362
387
  * @tsplus fluent fncts.observable.Observable delayWith
363
388
  * @tsplus location "@fncts/observable/Observable/api"
364
389
  */
365
- export declare function delayWith_<E, A, E1>(fa: Observable<E, A>, f: (value: A) => Observable<E1, any>): Observable<E | E1, A>;
390
+ export declare function delayWith_<R, E, A, R1, E1>(fa: Observable<R, E, A>, f: (value: A) => Observable<R1, E1, any>): Observable<R | R1, E | E1, A>;
366
391
  /**
367
392
  * @tsplus fluent fncts.observable.Observable delay
368
393
  * @tsplus location "@fncts/observable/Observable/api"
369
394
  */
370
- export declare function delay_<E, A>(fa: Observable<E, A>, due: number | Date, scheduler?: SchedulerLike): Observable<E, A>;
395
+ export declare function delay_<R, E, A>(fa: Observable<R, E, A>, due: number | Date, scheduler?: SchedulerLike): Observable<R, E, A>;
371
396
  /**
372
397
  * @tsplus getter fncts.observable.Observable dematerialize
373
398
  * @tsplus location "@fncts/observable/Observable/api"
374
399
  */
375
- export declare function dematerialize<E, E1, A>(fa: Observable<E, Notification<E1, A>>): Observable<E | E1, A>;
400
+ export declare function dematerialize<R, E, E1, A>(fa: Observable<R, E, Notification<E1, A>>): Observable<R, E | E1, A>;
376
401
  /**
377
402
  * @tsplus fluent fncts.observable.Observable ensuring
378
403
  * @tsplus location "@fncts/observable/Observable/api"
379
404
  */
380
- export declare function ensuring_<E, A>(fa: Observable<E, A>, finalizer: () => void): Observable<E, A>;
405
+ export declare function ensuring_<R, E, A>(fa: Observable<R, E, A>, finalizer: () => void): Observable<R, E, A>;
381
406
  /**
382
407
  * @tsplus getter fncts.observable.Observable exhaustAll
383
408
  * @tsplus location "@fncts/observable/Observable/api"
384
409
  */
385
- export declare function exhaustAll<E, E1, A>(ffa: Observable<E, ObservableInput<E1, A>>): Observable<E | E1, A>;
410
+ export declare function exhaustAll<R, E, R1, E1, A>(ffa: Observable<R, E, ObservableInput<R1, E1, A>>): Observable<R | R1, E | E1, A>;
386
411
  /**
387
412
  * @tsplus fluent fncts.observable.Observable exhaustMapWithIndex
388
413
  * @tsplus location "@fncts/observable/Observable/api"
389
414
  */
390
- export declare function exhaustMapWithIndex<E, A, E1, B>(self: Observable<E, A>, f: (i: number, a: A) => ObservableInput<E1, B>): Observable<E | E1, B>;
415
+ export declare function exhaustMapWithIndex<R, E, A, R1, E1, B>(self: Observable<R, E, A>, f: (i: number, a: A) => ObservableInput<R1, E1, B>): Observable<R | R1, E | E1, B>;
391
416
  /**
392
417
  * @tsplus fluent fncts.observable.Observable exhaustMap
393
418
  * @tsplus location "@fncts/observable/Observable/api"
394
419
  */
395
- export declare function exhaustMap_<E, A, E1, B>(self: Observable<E, A>, f: (a: A) => ObservableInput<E1, B>): Observable<E | E1, B>;
420
+ export declare function exhaustMap_<R, E, A, R1, E1, B>(self: Observable<R, E, A>, f: (a: A) => ObservableInput<R1, E1, B>): Observable<R | R1, E | E1, B>;
396
421
  /**
397
422
  * @tsplus fluent fncts.observable.Observable expandWithIndex
398
423
  * @tsplus location "@fncts/observable/Observable/api"
399
424
  */
400
- export declare function expandWithIndex<E, A, E1, B>(fa: Observable<E, A>, f: (i: number, a: A) => ObservableInput<E1, B>, concurrent?: number): Observable<E | E1, B>;
425
+ export declare function expandWithIndex<R, E, A, R1, E1, B>(fa: Observable<R, E, A>, f: (i: number, a: A) => ObservableInput<R1, E1, B>, concurrent?: number): Observable<R | R1, E | E1, B>;
401
426
  /**
402
427
  * @tsplus fluent fncts.observable.Observable expand
403
428
  * @tsplus location "@fncts/observable/Observable/api"
404
429
  */
405
- export declare function expand_<E, A, E1, B>(fa: Observable<E, A>, f: (a: A) => ObservableInput<E1, B>, concurrent?: number): Observable<E | E1, B>;
430
+ export declare function expand_<R, E, A, R1, E1, B>(fa: Observable<R, E, A>, f: (a: A) => ObservableInput<R1, E1, B>, concurrent?: number): Observable<R | R1, E | E1, B>;
406
431
  /**
407
432
  * @tsplus fluent fncts.observable.Observable findWithIndex
408
433
  * @tsplus location "@fncts/observable/Observable/api"
409
434
  */
410
- export declare function findWithIndex<E, A, B extends A>(fa: Observable<E, A>, refinement: RefinementWithIndex<number, A, B>): Observable<E, Maybe<B>>;
411
- export declare function findWithIndex<E, A>(fa: Observable<E, A>, predicate: PredicateWithIndex<number, A>): Observable<E, Maybe<A>>;
435
+ export declare function findWithIndex<R, E, A, B extends A>(fa: Observable<R, E, A>, refinement: RefinementWithIndex<number, A, B>): Observable<R, E, Maybe<B>>;
436
+ export declare function findWithIndex<R, E, A>(fa: Observable<R, E, A>, predicate: PredicateWithIndex<number, A>): Observable<R, E, Maybe<A>>;
412
437
  /**
413
438
  * @tsplus fluent fncts.observable.Observable find
414
439
  * @tsplus location "@fncts/observable/Observable/api"
415
440
  */
416
- export declare function find_<E, A, B extends A>(fa: Observable<E, A>, refinement: Refinement<A, B>): Observable<E, Maybe<B>>;
417
- export declare function find_<E, A>(fa: Observable<E, A>, predicate: Predicate<A>): Observable<E, Maybe<A>>;
441
+ export declare function find_<R, E, A, B extends A>(fa: Observable<R, E, A>, refinement: Refinement<A, B>): Observable<R, E, Maybe<B>>;
442
+ export declare function find_<R, E, A>(fa: Observable<R, E, A>, predicate: Predicate<A>): Observable<R, E, Maybe<A>>;
418
443
  /**
419
444
  * @tsplus fluent fncts.observable.Observable findIndexWithIndex
420
445
  * @tsplus location "@fncts/observable/Observable/api"
421
446
  */
422
- export declare function findIndexWithIndex<E, A, B extends A>(fa: Observable<E, A>, refinement: RefinementWithIndex<number, A, B>): Observable<E, number>;
423
- export declare function findIndexWithIndex<E, A>(fa: Observable<E, A>, predicate: PredicateWithIndex<number, A>): Observable<E, number>;
447
+ export declare function findIndexWithIndex<R, E, A, B extends A>(fa: Observable<R, E, A>, refinement: RefinementWithIndex<number, A, B>): Observable<R, E, number>;
448
+ export declare function findIndexWithIndex<R, E, A>(fa: Observable<R, E, A>, predicate: PredicateWithIndex<number, A>): Observable<R, E, number>;
424
449
  /**
425
450
  * @tsplus fluent fncts.observable.Observable findIndex
426
451
  * @tsplus location "@fncts/observable/Observable/api"
427
452
  */
428
- export declare function findIndex_<E, A, B extends A>(fa: Observable<E, A>, refinement: Refinement<A, B>): Observable<E, number>;
429
- export declare function findIndex_<E, A>(fa: Observable<E, A>, predicate: Predicate<A>): Observable<E, number>;
453
+ export declare function findIndex_<R, E, A, B extends A>(fa: Observable<R, E, A>, refinement: Refinement<A, B>): Observable<R, E, number>;
454
+ export declare function findIndex_<R, E, A>(fa: Observable<R, E, A>, predicate: Predicate<A>): Observable<R, E, number>;
430
455
  /**
431
456
  * @tsplus static fncts.observable.ObservableOps forkJoin
432
457
  * @tsplus location "@fncts/observable/Observable/api"
433
458
  */
434
- export declare function forkJoin<S extends Record<string, ObservableInput<any, any>>>(sources: S): Observable<Observable.ErrorOf<S[keyof S]>, {
459
+ export declare function forkJoin<S extends Record<string, ObservableInput<any, any>>>(sources: S): Observable<Observable.EnvironmentOf<S[keyof S]>, Observable.ErrorOf<S[keyof S]>, {
435
460
  [K in keyof S]: Observable.TypeOf<S[K]>;
436
461
  }>;
437
- export declare function forkJoin<A extends ReadonlyArray<ObservableInput<any, any>>>(...sources: A): Observable<Observable.ErrorOf<A[number]>, {
462
+ export declare function forkJoin<A extends ReadonlyArray<ObservableInput<any, any>>>(...sources: A): Observable<Observable.EnvironmentOf<A[number]>, Observable.ErrorOf<A[number]>, {
438
463
  [K in keyof A]: Observable.TypeOf<A[K]>;
439
464
  }>;
440
465
  /**
441
466
  * @tsplus getter fncts.observable.Observable ignore
442
467
  * @tsplus location "@fncts/observable/Observable/api"
443
468
  */
444
- export declare function ignore<E, A>(fa: Observable<E, A>): Observable<E, never>;
469
+ export declare function ignore<R, E, A>(fa: Observable<R, E, A>): Observable<R, E, never>;
445
470
  /**
446
471
  * @tsplus getter fncts.observable.Observable isEmpty
447
472
  * @tsplus location "@fncts/observable/Observable/api"
448
473
  */
449
- export declare function isEmpty<E, A>(fa: Observable<E, A>): Observable<E, boolean>;
474
+ export declare function isEmpty<R, E, A>(fa: Observable<R, E, A>): Observable<R, E, boolean>;
450
475
  /**
451
476
  * @tsplus getter fncts.observable.Observable materialize
452
477
  * @tsplus location "@fncts/observable/Observable/api"
453
478
  */
454
- export declare function materialize<E, A>(fa: Observable<E, A>): Observable<never, Notification<E, A>>;
479
+ export declare function materialize<R, E, A>(fa: Observable<R, E, A>): Observable<R, never, Notification<E, A>>;
455
480
  /**
456
481
  * @tsplus fluent fncts.observable.Observable mergeAll
457
482
  * @tsplus location "@fncts/observable/Observable/api"
458
483
  */
459
- export declare function mergeAll_<E, E1, A>(self: Observable<E, ObservableInput<E1, A>>, concurrent?: number): Observable<E | E1, A>;
484
+ export declare function mergeAll_<R, E, R1, E1, A>(self: Observable<R, E, ObservableInput<R1, E1, A>>, concurrent?: number): Observable<R | R1, E | E1, A>;
460
485
  /**
461
486
  * @tsplus fluent fncts.observable.Observable mergeScanWithIndex
462
487
  * @tsplus location "@fncts/observable/Observable/api"
463
488
  */
464
- export declare function mergeScanWithIndex<E, A, E1, B>(fa: Observable<E, A>, initial: B, f: (index: number, acc: B, value: A) => ObservableInput<E1, B>, concurrent?: number): Observable<E | E1, B>;
489
+ export declare function mergeScanWithIndex<R, E, A, R1, E1, B>(fa: Observable<R, E, A>, initial: B, f: (index: number, acc: B, value: A) => ObservableInput<R1, E1, B>, concurrent?: number): Observable<R | R1, E | E1, B>;
465
490
  /**
466
491
  * @tsplus fluent fncts.observable.Observable mergeScan
467
492
  * @tsplus location "@fncts/observable/Observable/api"
468
493
  */
469
- export declare function mergeScan_<E, A, E1, B>(fa: Observable<E, A>, initial: B, f: (acc: B, value: A) => ObservableInput<E1, B>, concurrent?: number): Observable<E | E1, B>;
470
- export declare function onErrorResumeNext<E, A, O extends ReadonlyArray<ObservableInput<any, any>>>(fa: Observable<E, A>, ...sources: O): Observable<E | Observable.ErrorOf<O[number]>, A | Observable.TypeOf<O[number]>>;
494
+ export declare function mergeScan_<R, E, A, R1, E1, B>(fa: Observable<R, E, A>, initial: B, f: (acc: B, value: A) => ObservableInput<R1, E1, B>, concurrent?: number): Observable<R | R1, E | E1, B>;
495
+ export declare function onErrorResumeNext<R, E, A, O extends ReadonlyArray<ObservableInput<any, any>>>(fa: Observable<R, E, A>, ...sources: O): Observable<R | Observable.EnvironmentOf<O[number]>, E | Observable.ErrorOf<O[number]>, A | Observable.TypeOf<O[number]>>;
471
496
  /**
472
497
  * @tsplus fluent fncts.observable.Observable onEmpty
473
498
  * @tsplus location "@fncts/observable/Observable/api"
474
499
  */
475
- export declare function onEmpty_<E, A, B>(fa: Observable<E, A>, f: Lazy<B>): Observable<E, A | B>;
500
+ export declare function onEmpty_<R, E, A, B>(fa: Observable<R, E, A>, f: Lazy<B>): Observable<R, E, A | B>;
476
501
  /**
477
502
  * @tsplus fluent fncts.observable.Observable repeat
478
503
  * @tsplus location "@fncts/observable/Observable/api"
479
504
  */
480
- export declare function repeat_<E, A>(fa: Observable<E, A>, count?: number): Observable<E, A>;
505
+ export declare function repeat_<R, E, A>(fa: Observable<R, E, A>, count?: number): Observable<R, E, A>;
481
506
  export interface RetryConfig {
482
507
  readonly count: number;
483
508
  readonly resetOnSuccess?: boolean;
@@ -486,115 +511,131 @@ export interface RetryConfig {
486
511
  * @tsplus fluent fncts.observable.Observable retry
487
512
  * @tsplus location "@fncts/observable/Observable/api"
488
513
  */
489
- export declare function retry_<E, A>(fa: Observable<E, A>, count?: number): Observable<E, A>;
490
- export declare function retry_<E, A>(fa: Observable<E, A>, config: RetryConfig): Observable<E, A>;
514
+ export declare function retry_<R, E, A>(fa: Observable<R, E, A>, count?: number): Observable<R, E, A>;
515
+ export declare function retry_<R, E, A>(fa: Observable<R, E, A>, config: RetryConfig): Observable<R, E, A>;
491
516
  /**
492
517
  * @tsplus fluent fncts.observable.Observable sample
493
518
  * @tsplus location "@fncts/observable/Observable/api"
494
519
  */
495
- export declare function sample_<E, A, E1>(fa: Observable<E, A>, notifier: Observable<E1, any>): Observable<E | E1, A>;
520
+ export declare function sample_<R, E, A, R1, E1>(fa: Observable<R, E, A>, notifier: Observable<R1, E1, any>): Observable<R | R1, E | E1, A>;
496
521
  /**
497
522
  * @tsplus fluent fncts.observable.Observable sampleTime
498
523
  * @tsplus location "@fncts/observable/Observable/api"
499
524
  */
500
- export declare function sampleTime_<E, A>(fa: Observable<E, A>, period: number, scheduler?: SchedulerLike): Observable<E, A>;
525
+ export declare function sampleTime_<R, E, A>(fa: Observable<R, E, A>, period: number, scheduler?: SchedulerLike): Observable<R, E, A>;
501
526
  /**
502
527
  * @tsplus fluent fncts.observable.Observable scanLeftWithIndex
503
528
  * @tsplus location "@fncts/observable/Observable/api"
504
529
  */
505
- export declare function scanLeftWithIndex<E, A, B>(fa: Observable<E, A>, initial: B, f: (index: number, acc: B, value: A) => B): Observable<E, B>;
530
+ export declare function scanLeftWithIndex<R, E, A, B>(fa: Observable<R, E, A>, initial: B, f: (index: number, acc: B, value: A) => B): Observable<R, E, B>;
506
531
  /**
507
532
  * @tsplus fluent fncts.observable.Observable scanLeft
508
533
  * @tsplus location "@fncts/observable/Observable/api"
509
534
  */
510
- export declare function scanLeft<E, A, B>(fa: Observable<E, A>, initial: B, f: (acc: B, value: A) => B): Observable<E, B>;
535
+ export declare function scanLeft<R, E, A, B>(fa: Observable<R, E, A>, initial: B, f: (acc: B, value: A) => B): Observable<R, E, B>;
536
+ /**
537
+ * @tsplus static fncts.observable.ObservableOps service
538
+ * @tsplus location "@fncts/observable/Observable/api"
539
+ */
540
+ export declare function service<S>(/** @tsplus auto */ tag: Tag<S>): Observable<S, never, S>;
541
+ /**
542
+ * @tsplus static fncts.observable.ObservableOps serviceWith
543
+ * @tsplus location "@fncts/observable/Observable/api"
544
+ */
545
+ export declare function serviceWith<S, A>(f: (service: S) => A, /** @tsplus auto */ tag: Tag<S>): Observable<S, never, A>;
546
+ /**
547
+ * @tsplus static fncts.observable.ObservableOps serviceWithObservable
548
+ * @tsplus location "@fncts/observable/Observable/api"
549
+ */
550
+ export declare function serviceWithObservable<S, R, E, A>(f: (service: S) => Observable<R, E, A>,
551
+ /** @tsplus auto */ tag: Tag<S>): Observable<S | R, E, A>;
511
552
  /**
512
553
  * @tsplus fluent fncts.observable.Observable skip
513
554
  * @tsplus location "@fncts/observable/Observable/api"
514
555
  */
515
- export declare function skip_<E, A>(fa: Observable<E, A>, count: number): Observable<E, A>;
556
+ export declare function skip_<R, E, A>(fa: Observable<R, E, A>, count: number): Observable<R, E, A>;
516
557
  /**
517
558
  * @tsplus fluent fncts.observable.Observable skipLast
518
559
  * @tsplus location "@fncts/observable/Observable/api"
519
560
  */
520
- export declare function skipLast_<E, A>(fa: Observable<E, A>, skipCount: number): Observable<E, A>;
561
+ export declare function skipLast_<R, E, A>(fa: Observable<R, E, A>, skipCount: number): Observable<R, E, A>;
521
562
  /**
522
563
  * @tsplus fluent fncts.observable.Observable skipUntil
523
564
  * @tsplus location "@fncts/observable/Observable/api"
524
565
  */
525
- export declare function skipUntil_<E, A, E1>(fa: Observable<E, A>, notifier: Observable<E1, any>): Observable<E | E1, A>;
566
+ export declare function skipUntil_<R, E, A, R1, E1>(fa: Observable<R, E, A>, notifier: Observable<R1, E1, any>): Observable<R | R1, E | E1, A>;
526
567
  /**
527
568
  * @tsplus fluent fncts.observable.Observable skipWhile
528
569
  * @tsplus location "@fncts/observable/Observable/api"
529
570
  */
530
- export declare function skipWhile_<E, A>(fa: Observable<E, A>, predicate: PredicateWithIndex<number, A>): Observable<E, A>;
571
+ export declare function skipWhile_<R, E, A>(fa: Observable<R, E, A>, predicate: PredicateWithIndex<number, A>): Observable<R, E, A>;
531
572
  /**
532
573
  * @tsplus fluent fncts.observable.Observable startWith
533
574
  * @tsplus location "@fncts/observable/Observable/api"
534
575
  */
535
- export declare function startWith_<E, A, B extends ReadonlyArray<unknown>>(fa: Observable<E, A>, ...values: B): Observable<E, A | B[number]>;
576
+ export declare function startWith_<R, E, A, B extends ReadonlyArray<unknown>>(fa: Observable<R, E, A>, ...values: B): Observable<R, E, A | B[number]>;
536
577
  /**
537
578
  * @tsplus fluent fncts.observable.Observable subscribeOn
538
579
  * @tsplus location "@fncts/observable/Observable/api"
539
580
  */
540
- export declare function subscribeOn_<E, A>(fa: Observable<E, A>, scheduler: SchedulerLike, delay?: number): Observable<E, A>;
581
+ export declare function subscribeOn_<R, E, A>(fa: Observable<R, E, A>, scheduler: SchedulerLike, delay?: number): Observable<R, E, A>;
541
582
  /**
542
583
  * @tsplus getter fncts.observable.Observable switchAll
543
584
  * @tsplus location "@fncts/observable/Observable/api"
544
585
  */
545
- export declare function switchAll<E, E1, A>(ffa: Observable<E, ObservableInput<E1, A>>): Observable<E | E1, A>;
586
+ export declare function switchAll<R, E, R1, E1, A>(ffa: Observable<R, E, ObservableInput<R1, E1, A>>): Observable<R | R1, E | E1, A>;
546
587
  /**
547
588
  * @tsplus fluent fncts.observable.Observable switchMapWithIndex
548
589
  * @tsplus location "@fncts/observable/Observable/api"
549
590
  */
550
- export declare function switchMapWithIndex<E, A, E1, B>(fa: Observable<E, A>, f: (index: number, value: A) => ObservableInput<E1, B>): Observable<E | E1, B>;
591
+ export declare function switchMapWithIndex<R, E, A, R1, E1, B>(fa: Observable<R, E, A>, f: (index: number, value: A) => ObservableInput<R1, E1, B>): Observable<R | R1, E | E1, B>;
551
592
  /**
552
593
  * @tsplus fluent fncts.observable.Observable switchMap
553
594
  * @tsplus location "@fncts/observable/Observable/api"
554
595
  */
555
- export declare function switchMap_<E, A, E1, B>(fa: Observable<E, A>, f: (value: A) => ObservableInput<E1, B>): Observable<E | E1, B>;
596
+ export declare function switchMap_<R, E, A, R1, E1, B>(fa: Observable<R, E, A>, f: (value: A) => ObservableInput<R1, E1, B>): Observable<R | R1, E | E1, B>;
556
597
  /**
557
598
  * @tsplus fluent fncts.observable.Observable switchScanWithIndex
558
599
  * @tsplus location "@fncts/observable/Observable/api"
559
600
  */
560
- export declare function switchScanWithIndex<E, A, E1, B>(fa: Observable<E, A>, initial: B, f: (index: number, acc: B, value: A) => ObservableInput<E1, B>): Observable<E | E1, B>;
601
+ export declare function switchScanWithIndex<R, E, A, R1, E1, B>(fa: Observable<R, E, A>, initial: B, f: (index: number, acc: B, value: A) => ObservableInput<R1, E1, B>): Observable<R | R1, E | E1, B>;
561
602
  /**
562
603
  * @tsplus fluent fncts.observable.Observable switchScan
563
604
  * @tsplus location "@fncts/observable/Observable/api"
564
605
  */
565
- export declare function switchScan_<E, A, E1, B>(fa: Observable<E, A>, initial: B, f: (acc: B, value: A) => ObservableInput<E1, B>): Observable<E | E1, B>;
606
+ export declare function switchScan_<R, E, A, R1, E1, B>(fa: Observable<R, E, A>, initial: B, f: (acc: B, value: A) => ObservableInput<R1, E1, B>): Observable<R | R1, E | E1, B>;
566
607
  /**
567
608
  * @tsplus fluent fncts.observable.Observable take
568
609
  * @tsplus location "@fncts/observable/Observable/api"
569
610
  */
570
- export declare function take_<E, A>(fa: Observable<E, A>, count: number): Observable<E, A>;
611
+ export declare function take_<R, E, A>(fa: Observable<R, E, A>, count: number): Observable<R, E, A>;
571
612
  /**
572
613
  * @tsplus fluent fncts.observable.Observable takeLast
573
614
  * @tsplus location "@fncts/observable/Observable/api"
574
615
  */
575
- export declare function takeLast_<E, A>(fa: Observable<E, A>, count: number): Observable<E, A>;
616
+ export declare function takeLast_<R, E, A>(fa: Observable<R, E, A>, count: number): Observable<R, E, A>;
576
617
  /**
577
618
  * @tsplus fluent fncts.observable.Observable takeUntil
578
619
  * @tsplus location "@fncts/observable/Observable/api"
579
620
  */
580
- export declare function takeUntil_<E, A, E1>(fa: Observable<E, A>, notifier: ObservableInput<E1, any>): Observable<E | E1, A>;
621
+ export declare function takeUntil_<R, E, A, R1, E1>(fa: Observable<R, E, A>, notifier: ObservableInput<R1, E1, any>): Observable<R | R1, E | E1, A>;
581
622
  /**
582
623
  * @tsplus fluent fncts.observable.Observable takeWhileWithIndex
583
624
  * @tsplus location "@fncts/observable/Observable/api"
584
625
  */
585
- export declare function takeWhileWithIndex<E, A, B extends A>(fa: Observable<E, A>, refinement: RefinementWithIndex<number, A, B>, inclusive?: boolean): Observable<E, B>;
586
- export declare function takeWhileWithIndex<E, A>(fa: Observable<E, A>, predicate: PredicateWithIndex<number, A>, inclusive?: boolean): Observable<E, A>;
626
+ export declare function takeWhileWithIndex<R, E, A, B extends A>(fa: Observable<R, E, A>, refinement: RefinementWithIndex<number, A, B>, inclusive?: boolean): Observable<R, E, B>;
627
+ export declare function takeWhileWithIndex<R, E, A>(fa: Observable<R, E, A>, predicate: PredicateWithIndex<number, A>, inclusive?: boolean): Observable<R, E, A>;
587
628
  /**
588
629
  * @tsplus fluent fncts.observable.Observable takeWhile
589
630
  * @tsplus location "@fncts/observable/Observable/api"
590
631
  */
591
- export declare function takeWhile_<E, A, B extends A>(fa: Observable<E, A>, refinement: Refinement<A, B>, inclusive?: boolean): Observable<E, B>;
592
- export declare function takeWhile_<E, A>(fa: Observable<E, A>, predicate: Predicate<A>, inclusive?: boolean): Observable<E, A>;
632
+ export declare function takeWhile_<R, E, A, B extends A>(fa: Observable<R, E, A>, refinement: Refinement<A, B>, inclusive?: boolean): Observable<R, E, B>;
633
+ export declare function takeWhile_<R, E, A>(fa: Observable<R, E, A>, predicate: Predicate<A>, inclusive?: boolean): Observable<R, E, A>;
593
634
  /**
594
635
  * @tsplus fluent fncts.observable.Observable tap
595
636
  * @tsplus location "@fncts/observable/Observable/api"
596
637
  */
597
- export declare function tap_<E, A>(fa: Observable<E, A>, observer: Partial<Observer<E, A>>): Observable<E, A>;
638
+ export declare function tap_<R, E, A>(fa: Observable<R, E, A>, observer: Partial<Observer<E, A>>): Observable<R, E, A>;
598
639
  export interface ThrottleConfig {
599
640
  readonly leading?: boolean;
600
641
  readonly trailing?: boolean;
@@ -604,13 +645,13 @@ export declare const defaultThrottleConfig: ThrottleConfig;
604
645
  * @tsplus fluent fncts.observable.Observable throttle
605
646
  * @tsplus location "@fncts/observable/Observable/api"
606
647
  */
607
- export declare function throttle_<E, A, E1>(fa: Observable<E, A>, durationSelector: (a: A) => ObservableInput<E1, any>, { leading, trailing }?: ThrottleConfig): Observable<E | E1, A>;
648
+ export declare function throttle_<R, E, A, R1, E1>(fa: Observable<R, E, A>, durationSelector: (a: A) => ObservableInput<R1, E1, any>, { leading, trailing }?: ThrottleConfig): Observable<R | R1, E | E1, A>;
608
649
  /**
609
650
  * @tsplus fluent fncts.observable.Observable throttleTime
610
651
  * @tsplus location "@fncts/observable/Observable/api"
611
652
  */
612
- export declare function throttleTime_<E, A>(fa: Observable<E, A>, duration: number, scheduler?: SchedulerLike, config?: ThrottleConfig): Observable<E, A>;
613
- export declare type TimeoutConfig<A, E, B, M = unknown> = ({
653
+ export declare function throttleTime_<R, E, A>(fa: Observable<R, E, A>, duration: number, scheduler?: SchedulerLike, config?: ThrottleConfig): Observable<R, E, A>;
654
+ export declare type TimeoutConfig<R, E, A, B, M = unknown> = ({
614
655
  readonly each: number;
615
656
  readonly first?: number | Date;
616
657
  } | {
@@ -618,7 +659,7 @@ export declare type TimeoutConfig<A, E, B, M = unknown> = ({
618
659
  readonly first: number | Date;
619
660
  }) & {
620
661
  readonly scheduler?: SchedulerLike;
621
- readonly with?: (info: TimeoutInfo<A, M>) => ObservableInput<E, B>;
662
+ readonly with?: (info: TimeoutInfo<A, M>) => ObservableInput<R, E, B>;
622
663
  meta?: M;
623
664
  };
624
665
  export interface TimeoutInfo<A, M> {
@@ -634,34 +675,34 @@ export declare class TimeoutError<A, M> extends Error {
634
675
  * @tsplus fluent fncts.observable.Observable timeout
635
676
  * @tsplus location "@fncts/observable/Observable/api"
636
677
  */
637
- export declare function timeout_<E, A, E1, B, M = unknown>(fa: Observable<E, A>, config: TimeoutConfig<A, E1, B, M> & {
638
- readonly with: (info: TimeoutInfo<A, M>) => ObservableInput<E1, B>;
639
- }): Observable<E | E1, A | B>;
640
- export declare function timeout_<E, A, M = unknown>(fa: Observable<E, A>, config: Omit<TimeoutConfig<A, never, any, M>, "with">): Observable<E | TimeoutError<A, M>, A>;
678
+ export declare function timeout_<R, E, A, R1, E1, B, M = unknown>(fa: Observable<R, E, A>, config: TimeoutConfig<R1, E1, A, B, M> & {
679
+ readonly with: (info: TimeoutInfo<A, M>) => ObservableInput<R1, E1, B>;
680
+ }): Observable<R | R1, E | E1, A | B>;
681
+ export declare function timeout_<R, E, A, M = unknown>(fa: Observable<R, E, A>, config: Omit<TimeoutConfig<never, never, A, any, M>, "with">): Observable<R, E | TimeoutError<A, M>, A>;
641
682
  /**
642
683
  * @tsplus getter fncts.observable.Observable toArray
643
684
  * @tsplus location "@fncts/observable/Observable/api"
644
685
  */
645
- export declare function toArray<E, A>(fa: Observable<E, A>): Observable<E, ReadonlyArray<A>>;
686
+ export declare function toArray<R, E, A>(fa: Observable<R, E, A>): Observable<R, E, ReadonlyArray<A>>;
646
687
  /**
647
688
  * @tsplus fluent fncts.observable.Observable unique
648
689
  * @tsplus location "@fncts/observable/Observable/api"
649
690
  */
650
- export declare function unique_<E, A, K, E1 = never>(fa: Observable<E, A>, toKey?: (value: A) => K, flushes?: Observable<E1, any>): Observable<E | E1, A>;
691
+ export declare function unique_<R, E, A, K, R1, E1 = never>(fa: Observable<R, E, A>, toKey?: (value: A) => K, flushes?: Observable<R1, E1, any>): Observable<R | R1, E | E1, A>;
651
692
  /**
652
693
  * @tsplus fluent fncts.observable.Observable uniqueUntilChanged
653
694
  * @tsplus location "@fncts/observable/Observable/api"
654
695
  */
655
- export declare function uniqueUntilChanged_<E, A, K>(fa: Observable<E, A>, E: Eq<K>, keySelector: (value: A) => K): Observable<E, A>;
656
- export declare function uniqueUntilChanged_<E, A, K>(fa: Observable<E, A>, equals: (x: K, y: K) => boolean, keySelector: (value: A) => K): Observable<E, A>;
657
- export declare function uniqueUntilChanged_<E, A>(fa: Observable<E, A>, E: Eq<A>): Observable<E, A>;
658
- export declare function uniqueUntilChanged_<E, A>(fa: Observable<E, A>, equals: (x: A, y: A) => boolean): Observable<E, A>;
696
+ export declare function uniqueUntilChanged_<R, E, A, K>(fa: Observable<R, E, A>, E: Eq<K>, keySelector: (value: A) => K): Observable<R, E, A>;
697
+ export declare function uniqueUntilChanged_<R, E, A, K>(fa: Observable<R, E, A>, equals: (x: K, y: K) => boolean, keySelector: (value: A) => K): Observable<R, E, A>;
698
+ export declare function uniqueUntilChanged_<R, E, A>(fa: Observable<R, E, A>, E: Eq<A>): Observable<R, E, A>;
699
+ export declare function uniqueUntilChanged_<R, E, A>(fa: Observable<R, E, A>, equals: (x: A, y: A) => boolean): Observable<R, E, A>;
659
700
  /**
660
701
  * @tsplus fluent fncts.observable.Observable uniqueUntilKeyChanged
661
702
  * @tsplus location "@fncts/observable/Observable/api"
662
703
  */
663
- export declare function uniqueUntilKeyChanged_<E, A, K extends keyof A>(fa: Observable<E, A>, key: K, E: Eq<A[K]>): Observable<E, A>;
664
- export declare function uniqueUntilKeyChanged_<E, A, K extends keyof A>(fa: Observable<E, A>, key: K, equals: (x: A[K], y: A[K]) => boolean): Observable<E, A>;
665
- export declare function joinAllInternal<E, E1, A, E2, B>(fa: Observable<E, ObservableInput<E1, A>>, joiner: (sources: ReadonlyArray<ObservableInput<E1, A>>) => Observable<E2, B>): Observable<E | E1 | E2, B>;
666
- export declare function scanInternal<E, A, B>(f: (index: number, acc: A, value: A) => B, initial: B, hasInitial: false, emitOnNext: boolean, emitBeforeComplete?: undefined | true): (source: Observable<E, A>, subscriber: Subscriber<any, any>) => void;
667
- export declare function scanInternal<E, A, B>(f: (index: number, acc: B, value: A) => B, initial: B, hasInitial: true, emitOnNext: boolean, emitBeforeComplete?: undefined | true): (source: Observable<E, A>, subscriber: Subscriber<any, any>) => void;
704
+ export declare function uniqueUntilKeyChanged_<R, E, A, K extends keyof A>(fa: Observable<R, E, A>, key: K, E: Eq<A[K]>): Observable<R, E, A>;
705
+ export declare function uniqueUntilKeyChanged_<R, E, A, K extends keyof A>(fa: Observable<R, E, A>, key: K, equals: (x: A[K], y: A[K]) => boolean): Observable<R, E, A>;
706
+ export declare function joinAllInternal<R, E, R1, E1, A, R2, E2, B>(fa: Observable<R, E, ObservableInput<R1, E1, A>>, joiner: (sources: ReadonlyArray<ObservableInput<R1, E1, A>>) => Observable<R2, E2, B>): Observable<R | R1 | R2, E | E1 | E2, B>;
707
+ export declare function scanInternal<R, E, A, B>(f: (index: number, acc: A, value: A) => B, initial: B, hasInitial: false, emitOnNext: boolean, emitBeforeComplete?: undefined | true): (source: Observable<R, E, A>, subscriber: Subscriber<any, any>) => void;
708
+ export declare function scanInternal<R, E, A, B>(f: (index: number, acc: B, value: A) => B, initial: B, hasInitial: true, emitOnNext: boolean, emitBeforeComplete?: undefined | true): (source: Observable<R, E, A>, subscriber: Subscriber<any, any>) => void;