UNPKG

4.22 kBTypeScriptView Raw
1// Type definitions for rx-core 4.0
2// Project: https://github.com/Reactive-Extensions/RxJS
3// Definitions by: gsino <http://www.codeplex.com/site/users/view/gsino>, Igor Oleinikov <https://github.com/Igorbek>, Mizunashi Mana <https://github.com/mizunashi-mana>
4// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5
6declare namespace Rx {
7 /**
8 * Promise A+
9 */
10 interface IPromise<T> {
11 then<R>(onFulfilled: (value: T) => IPromise<R>, onRejected: (reason: any) => IPromise<R>): IPromise<R>;
12 then<R>(onFulfilled: (value: T) => IPromise<R>, onRejected?: (reason: any) => R): IPromise<R>;
13 then<R>(onFulfilled: (value: T) => R, onRejected: (reason: any) => IPromise<R>): IPromise<R>;
14 then<R>(onFulfilled?: (value: T) => R, onRejected?: (reason: any) => R): IPromise<R>;
15 }
16
17 interface IDisposable {
18 dispose(): void;
19 }
20
21 interface IScheduler {
22 catch(handler: (exception: any) => boolean): IScheduler;
23 catchException(handler: (exception: any) => boolean): IScheduler;
24 }
25
26 // Observer
27 interface Observer<T> {
28 checked(): Observer<any>;
29 }
30
31 interface ObserverStatic {
32 /**
33 * Schedules the invocation of observer methods on the given scheduler.
34 * @param scheduler Scheduler to schedule observer messages on.
35 * @returns Observer whose messages are scheduled on the given scheduler.
36 */
37 notifyOn<T>(scheduler: IScheduler): Observer<T>;
38 }
39
40 interface Observable<T> {
41 observeOn(scheduler: IScheduler): Observable<T>;
42 subscribeOn(scheduler: IScheduler): Observable<T>;
43
44 amb(rightSource: IPromise<T> | Observable<T>): Observable<T>;
45 onErrorResumeNext(second: IPromise<T> | Observable<T>): Observable<T>;
46 bufferWithCount(count: number, skip?: number): Observable<T[]>;
47 windowWithCount(count: number, skip?: number): Observable<Observable<T>>;
48 defaultIfEmpty(defaultValue?: T): Observable<T>;
49 distinct(skipParameter: boolean, valueSerializer: (value: T) => string): Observable<T>;
50 distinct<TKey>(keySelector?: (value: T) => TKey, keySerializer?: (key: TKey) => string): Observable<T>;
51 groupBy<TKey, TElement>(keySelector: (value: T) => TKey, skipElementSelector?: boolean, keySerializer?: (key: TKey) => string): Observable<GroupedObservable<TKey, T>>;
52 groupBy<TKey, TElement>(keySelector: (value: T) => TKey, elementSelector: (value: T) => TElement, keySerializer?: (key: TKey) => string): Observable<GroupedObservable<TKey, TElement>>;
53 groupByUntil<TKey, TDuration>(
54 keySelector: (value: T) => TKey,
55 skipElementSelector: boolean,
56 durationSelector: (group: GroupedObservable<TKey, T>) => Observable<TDuration>,
57 keySerializer?: (key: TKey) => string): Observable<GroupedObservable<TKey, T>>;
58 groupByUntil<TKey, TElement, TDuration>(
59 keySelector: (value: T) => TKey,
60 elementSelector: (value: T) => TElement,
61 durationSelector: (group: GroupedObservable<TKey, TElement>) => Observable<TDuration>,
62 keySerializer?: (key: TKey) => string): Observable<GroupedObservable<TKey, TElement>>;
63 }
64
65 interface ObservableStatic {
66 using<TSource, TResource extends IDisposable>(resourceFactory: () => TResource, observableFactory: (resource: TResource) => Observable<TSource>): Observable<TSource>;
67 amb<T>(...sources: Array<IPromise<T>>): Observable<T>;
68 amb<T>(...sources: Array<Observable<T>>): Observable<T>;
69 amb<T>(sources: Array<IPromise<T>> | Array<Observable<T>>): Observable<T>;
70 onErrorResumeNext<T>(...sources: Array<IPromise<T>>): Observable<T>;
71 onErrorResumeNext<T>(...sources: Array<Observable<T>>): Observable<T>;
72 onErrorResumeNext<T>(sources: Array<IPromise<T>> | Array<Observable<T>>): Observable<T>;
73 }
74
75 interface GroupedObservable<TKey, TElement> extends Observable<TElement> {
76 key: TKey;
77 underlyingObservable: Observable<TElement>;
78 }
79}
80
81declare module "rx-core" {
82 export = Rx;
83}
84
\No newline at end of file