/** * Transformers change and combine streams, similar to operators. * urx comes with two combinators - [[combineLatest]] and [[merge]], and one convenience filter - [[duc]]. * * @packageDocumentation */ import { Emitter } from './actions'; import { Comparator } from './pipe'; /** * Merges one or more emitters from the same type into a new Emitter which emits values from any of the source emitters. * ```ts * const foo = stream() * const bar = stream() * * subscribe(merge(foo, bar), (value) => console.log(value)) // 42, 43 * * publish(foo, 42) * publish(bar, 43) * ``` */ export declare function merge(...sources: Emitter[]): Emitter; /** * A convenience wrapper that emits only the distinct values from the passed Emitter. Wraps [[pipe]] and [[distinctUntilChanged]]. * * ```ts * const foo = stream() * * // this line... * const a = duc(foo) * * // is equivalent to this * const b = pipe(distinctUntilChanged(foo)) * ``` * * @param source The source emitter. * @param comparator optional custom comparison function for the two values. * * @typeParam T the type of the value emitted by the source. * * @returns the resulting emitter. */ export declare function duc(source: Emitter, comparator?: Comparator): Emitter; /** * Creates an emitter with the latest values from all passed emitters as an array. * * `combineLatest` acts as a Depot. Using it on stateless streams persists the last emitted value of each [[Emitter]]. * Provided that all emitters have emitted at least once, subscribing to the resulting emitter will immediately receive their combined latest values. * * ```ts * const foo = stream() * const bar = stream() * * subscribe(combineLatest(foo, bar), ([foo, bar]) => console.log({ foo, bar })) * * publish(foo, 42) * publish(bar, 43) // { foo: 42, bar: 43 } * publish(foo, 44) // { foo: 44, bar: 43 } * publish(bar, 45) // { foo: 44, bar: 45 } * ``` */ export declare function combineLatest(...emitters: [Emitter, Emitter]): Emitter<[O1, O2]>; export declare function combineLatest(...emitters: [Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3]>; export declare function combineLatest(...emitters: [Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4]>; export declare function combineLatest(...emitters: [Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3]>; export declare function combineLatest(...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5]>; export declare function combineLatest(...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5, O6]>; export declare function combineLatest(...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5, O6, O7]>; export declare function combineLatest(...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8]>; export declare function combineLatest(...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8, O9]>; export declare function combineLatest(...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8, O9, O10]>; export declare function combineLatest(...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11]>;