import { Observable } from '../core/Observable' import { Subscribable } from '../core/types.h' import { Concat } from '../helpers/types/concat' import { ExtractInnerTypes } from '../helpers/types/extractInnnerTypes' import { combineLatest as combineLatestObservable } from '../observable/combineLatest' export function combineLatest>>( ...streams: TS ): (stream: Subscribable) => Observable>> export function combineLatest() { const streams: Array> = Array.prototype.slice.call(arguments) return (stream: Subscribable) => { const allStreams = [stream].concat(streams) return combineLatestObservable.apply(null, allStreams) } }