///
module Rx {
export interface ObservableStatic {
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
* @param arguments Observable sources.
* @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources.
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
*/
zip(sources: ObservableOrPromise[], resultSelector?: (item1: T1, ...right: T2[]) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
* @param arguments Observable sources.
* @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources.
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
*/
zip(source1: ObservableOrPromise, ObservableOrPromise: Observable, resultSelector?: (item1: T1, item2: T2) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
* @param arguments Observable sources.
* @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources.
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
*/
zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
* @param arguments Observable sources.
* @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources.
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
*/
zip(source1: Observable, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
* @param arguments Observable sources.
* @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources.
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
*/
zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
* @param arguments Observable sources.
* @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources.
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
*/
zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
* @param arguments Observable sources.
* @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources.
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
*/
zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
* @param arguments Observable sources.
* @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources.
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
*/
zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index.
* @param arguments Observable sources.
* @param {Function} resultSelector Function to invoke for each series of elements at corresponding indexes in the sources.
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
*/
zip(source1: ObservableOrPromise, source2: ObservableOrPromise, source3: ObservableOrPromise, source4: ObservableOrPromise, source5: ObservableOrPromise, source6: ObservableOrPromise, source7: ObservableOrPromise, source8: ObservableOrPromise, source9: ObservableOrPromise, resultSelector?: (item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7, item8: T8, item9: T9) => TResult): Observable;
}
export interface Observable {
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index.
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args.
* @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function.
*/
zip(second: ObservableOrPromise, resultSelector?: (v1: T, v2: T2) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index.
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args.
* @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function.
*/
zip(second: ObservableOrPromise, third: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index.
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args.
* @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function.
*/
zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index.
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args.
* @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function.
*/
zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index.
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args.
* @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function.
*/
zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index.
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args.
* @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function.
*/
zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index.
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args.
* @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function.
*/
zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index.
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args.
* @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function.
*/
zip(second: ObservableOrPromise, third: ObservableOrPromise, fourth: ObservableOrPromise, fifth: ObservableOrPromise, sixth: ObservableOrPromise, seventh: ObservableOrPromise, eighth: ObservableOrPromise, ninth: ObservableOrPromise, resultSelector?: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8, v9: T9) => TResult): Observable;
/**
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index.
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args.
* @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function.
*/
zip(souces: ObservableOrPromise[], resultSelector?: (firstValue: T, ...otherValues: TOther[]) => TResult): Observable;
}
}