define(["require", "exports", './combineLatest-support'], function (require, exports, combineLatest_support_1) {
    /**
     * Takes an Observable of Observables, and collects all observables from it. Once the outer observable
     * completes, it subscribes to all collected observables and "combines" their values, such that:
     *  - every time an observable emits, the returned observable emits
     *  - when the returned observable emits, it emits all of the most recent values by:
     *    - if a `project` function is provided, it is called with each recent value from each observable in whatever order they arrived,
     *      and the result of the `project` function is what is emitted by the returned observable
     *    - if there is no `project` function, an array of all of the most recent values is emitted by the returned observable.
     * @param {function} [project] an optional function to map the most recent values from each observable into a new result. Takes each of the
     *   most recent values from each collected observable as arguments, in order.
     * @returns {Observable} an observable of projected results or arrays of recent values.
     */
    function combineAll(project) {
        return this.lift(new combineLatest_support_1.CombineLatestOperator(project));
    }
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.default = combineAll;
});
//# sourceMappingURL=combineAll.js.map