// Type definitions for rx-lite-aggregates 4.0 // Project: https://github.com/Reactive-Extensions/RxJS // Definitions by: Carl de Billy , Igor Oleinikov // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// declare namespace Rx { interface Observable { finalValue(): Observable; aggregate(accumulator: (acc: T, value: T) => T): Observable; aggregate(seed: TAcc, accumulator: (acc: TAcc, value: T) => TAcc): Observable; reduce(accumulator: (acc: T, value: T) => T): Observable; reduce(accumulator: (acc: TAcc, value: T) => TAcc, seed: TAcc): Observable; any(predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable; some(predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable; // alias for any isEmpty(): Observable; all(predicate?: (value: T) => boolean, thisArg?: any): Observable; every(predicate?: (value: T) => boolean, thisArg?: any): Observable; // alias for all contains(value: T): Observable; contains(value: TOther, comparer: (value1: T, value2: TOther) => boolean): Observable; count(predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable; sum(keySelector?: (value: T, index: number, source: Observable) => number, thisArg?: any): Observable; minBy(keySelector: (item: T) => TKey, comparer: (value1: TKey, value2: TKey) => number): Observable; minBy(keySelector: (item: T) => number): Observable; min(comparer?: (value1: T, value2: T) => number): Observable; maxBy(keySelector: (item: T) => TKey, comparer: (value1: TKey, value2: TKey) => number): Observable; maxBy(keySelector: (item: T) => number): Observable; max(comparer?: (value1: T, value2: T) => number): Observable; average(keySelector?: (value: T, index: number, source: Observable) => number, thisArg?: any): Observable; sequenceEqual(second: Observable, comparer: (value1: T, value2: TOther) => number): Observable; sequenceEqual(second: IPromise, comparer: (value1: T, value2: TOther) => number): Observable; sequenceEqual(second: Observable): Observable; sequenceEqual(second: IPromise): Observable; sequenceEqual(second: TOther[], comparer: (value1: T, value2: TOther) => number): Observable; sequenceEqual(second: T[]): Observable; elementAt(index: number): Observable; single(predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable; first(predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable; last(predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable; find(predicate: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable; findIndex(predicate: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable; } } declare module "rx-lite-aggregates" { export = Rx; }