import { Observable, ObservableInput } from '../Observable'; import { zip as higherOrder } from '../operators/zip'; /* tslint:disable:max-line-length */ export function zipProto(this: Observable, project: (v1: T) => R): Observable; export function zipProto(this: Observable, v2: ObservableInput, project: (v1: T, v2: T2) => R): Observable; export function zipProto(this: Observable, v2: ObservableInput, v3: ObservableInput, project: (v1: T, v2: T2, v3: T3) => R): Observable; export function zipProto(this: Observable, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): Observable; export function zipProto(this: Observable, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): Observable; export function zipProto(this: Observable, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): Observable ; export function zipProto(this: Observable, v2: ObservableInput): Observable<[T, T2]>; export function zipProto(this: Observable, v2: ObservableInput, v3: ObservableInput): Observable<[T, T2, T3]>; export function zipProto(this: Observable, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable<[T, T2, T3, T4]>; export function zipProto(this: Observable, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable<[T, T2, T3, T4, T5]>; export function zipProto(this: Observable, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable<[T, T2, T3, T4, T5, T6]> ; export function zipProto(this: Observable, ...observables: Array>): Observable; export function zipProto(this: Observable, ...observables: Array | ((...values: Array) => R)>): Observable; export function zipProto(this: Observable, array: Array>): Observable; export function zipProto(this: Observable, array: Array>, project: (v1: T, ...values: Array) => R): Observable; /* tslint:enable:max-line-length */ /** * @param observables * @return {Observable} * @method zip * @owner Observable */ export function zipProto(this: Observable, ...observables: Array | ((...values: Array) => R)>): Observable { return higherOrder(...observables)(this); }