1/* tslint:disable:no-unused-variable */
2// Subject imported before Observable to bypass circular dependency issue since
3// Subject extends Observable and Observable references Subject in it's
4// definition
5export {Subject, AnonymousSubject} from './Subject';
6/* tslint:enable:no-unused-variable */
7export {Observable} from './Observable';
8
9export { config } from './config';
10
11// statics
12/* tslint:disable:no-use-before-declare */
13import 'rxjs-compat/add/observable/bindCallback';
14import 'rxjs-compat/add/observable/bindNodeCallback';
15import 'rxjs-compat/add/observable/combineLatest';
16import 'rxjs-compat/add/observable/concat';
17import 'rxjs-compat/add/observable/defer';
18import 'rxjs-compat/add/observable/empty';
19import 'rxjs-compat/add/observable/forkJoin';
20import 'rxjs-compat/add/observable/from';
21import 'rxjs-compat/add/observable/fromEvent';
22import 'rxjs-compat/add/observable/fromEventPattern';
23import 'rxjs-compat/add/observable/fromPromise';
24import 'rxjs-compat/add/observable/generate';
25import 'rxjs-compat/add/observable/if';
26import 'rxjs-compat/add/observable/interval';
27import 'rxjs-compat/add/observable/merge';
28import 'rxjs-compat/add/observable/race';
29import 'rxjs-compat/add/observable/never';
30import 'rxjs-compat/add/observable/of';
31import 'rxjs-compat/add/observable/onErrorResumeNext';
32import 'rxjs-compat/add/observable/pairs';
33import 'rxjs-compat/add/observable/range';
34import 'rxjs-compat/add/observable/using';
35import 'rxjs-compat/add/observable/throw';
36import 'rxjs-compat/add/observable/timer';
37import 'rxjs-compat/add/observable/zip';
38
39//dom
40import 'rxjs-compat/add/observable/dom/ajax';
41import 'rxjs-compat/add/observable/dom/webSocket';
42
43//internal/operators
44import 'rxjs-compat/add/operator/buffer';
45import 'rxjs-compat/add/operator/bufferCount';
46import 'rxjs-compat/add/operator/bufferTime';
47import 'rxjs-compat/add/operator/bufferToggle';
48import 'rxjs-compat/add/operator/bufferWhen';
49import 'rxjs-compat/add/operator/catch';
50import 'rxjs-compat/add/operator/combineAll';
51import 'rxjs-compat/add/operator/combineLatest';
52import 'rxjs-compat/add/operator/concat';
53import 'rxjs-compat/add/operator/concatAll';
54import 'rxjs-compat/add/operator/concatMap';
55import 'rxjs-compat/add/operator/concatMapTo';
56import 'rxjs-compat/add/operator/count';
57import 'rxjs-compat/add/operator/dematerialize';
58import 'rxjs-compat/add/operator/debounce';
59import 'rxjs-compat/add/operator/debounceTime';
60import 'rxjs-compat/add/operator/defaultIfEmpty';
61import 'rxjs-compat/add/operator/delay';
62import 'rxjs-compat/add/operator/delayWhen';
63import 'rxjs-compat/add/operator/distinct';
64import 'rxjs-compat/add/operator/distinctUntilChanged';
65import 'rxjs-compat/add/operator/distinctUntilKeyChanged';
66import 'rxjs-compat/add/operator/do';
67import 'rxjs-compat/add/operator/exhaust';
68import 'rxjs-compat/add/operator/exhaustMap';
69import 'rxjs-compat/add/operator/expand';
70import 'rxjs-compat/add/operator/elementAt';
71import 'rxjs-compat/add/operator/filter';
72import 'rxjs-compat/add/operator/finally';
73import 'rxjs-compat/add/operator/find';
74import 'rxjs-compat/add/operator/findIndex';
75import 'rxjs-compat/add/operator/first';
76import 'rxjs-compat/add/operator/groupBy';
77import 'rxjs-compat/add/operator/ignoreElements';
78import 'rxjs-compat/add/operator/isEmpty';
79import 'rxjs-compat/add/operator/audit';
80import 'rxjs-compat/add/operator/auditTime';
81import 'rxjs-compat/add/operator/last';
82import 'rxjs-compat/add/operator/let';
83import 'rxjs-compat/add/operator/every';
84import 'rxjs-compat/add/operator/map';
85import 'rxjs-compat/add/operator/mapTo';
86import 'rxjs-compat/add/operator/materialize';
87import 'rxjs-compat/add/operator/max';
88import 'rxjs-compat/add/operator/merge';
89import 'rxjs-compat/add/operator/mergeAll';
90import 'rxjs-compat/add/operator/mergeMap';
91import 'rxjs-compat/add/operator/mergeMapTo';
92import 'rxjs-compat/add/operator/mergeScan';
93import 'rxjs-compat/add/operator/min';
94import 'rxjs-compat/add/operator/multicast';
95import 'rxjs-compat/add/operator/observeOn';
96import 'rxjs-compat/add/operator/onErrorResumeNext';
97import 'rxjs-compat/add/operator/pairwise';
98import 'rxjs-compat/add/operator/partition';
99import 'rxjs-compat/add/operator/pluck';
100import 'rxjs-compat/add/operator/publish';
101import 'rxjs-compat/add/operator/publishBehavior';
102import 'rxjs-compat/add/operator/publishReplay';
103import 'rxjs-compat/add/operator/publishLast';
104import 'rxjs-compat/add/operator/race';
105import 'rxjs-compat/add/operator/reduce';
106import 'rxjs-compat/add/operator/repeat';
107import 'rxjs-compat/add/operator/repeatWhen';
108import 'rxjs-compat/add/operator/retry';
109import 'rxjs-compat/add/operator/retryWhen';
110import 'rxjs-compat/add/operator/sample';
111import 'rxjs-compat/add/operator/sampleTime';
112import 'rxjs-compat/add/operator/scan';
113import 'rxjs-compat/add/operator/sequenceEqual';
114import 'rxjs-compat/add/operator/share';
115import 'rxjs-compat/add/operator/shareReplay';
116import 'rxjs-compat/add/operator/single';
117import 'rxjs-compat/add/operator/skip';
118import 'rxjs-compat/add/operator/skipLast';
119import 'rxjs-compat/add/operator/skipUntil';
120import 'rxjs-compat/add/operator/skipWhile';
121import 'rxjs-compat/add/operator/startWith';
122import 'rxjs-compat/add/operator/subscribeOn';
123import 'rxjs-compat/add/operator/switch';
124import 'rxjs-compat/add/operator/switchMap';
125import 'rxjs-compat/add/operator/switchMapTo';
126import 'rxjs-compat/add/operator/take';
127import 'rxjs-compat/add/operator/takeLast';
128import 'rxjs-compat/add/operator/takeUntil';
129import 'rxjs-compat/add/operator/takeWhile';
130import 'rxjs-compat/add/operator/throttle';
131import 'rxjs-compat/add/operator/throttleTime';
132import 'rxjs-compat/add/operator/timeInterval';
133import 'rxjs-compat/add/operator/timeout';
134import 'rxjs-compat/add/operator/timeoutWith';
135import 'rxjs-compat/add/operator/timestamp';
136import 'rxjs-compat/add/operator/toArray';
137import 'rxjs-compat/add/operator/toPromise';
138import 'rxjs-compat/add/operator/window';
139import 'rxjs-compat/add/operator/windowCount';
140import 'rxjs-compat/add/operator/windowTime';
141import 'rxjs-compat/add/operator/windowToggle';
142import 'rxjs-compat/add/operator/windowWhen';
143import 'rxjs-compat/add/operator/withLatestFrom';
144import 'rxjs-compat/add/operator/zip';
145import 'rxjs-compat/add/operator/zipAll';
146
147/* tslint:disable:no-unused-variable */
148export {Operator} from './Operator';
149export {Observer} from './types';
150export {Subscription} from './Subscription';
151export {Subscriber} from './Subscriber';
152export {AsyncSubject} from './AsyncSubject';
153export {ReplaySubject} from './ReplaySubject';
154export {BehaviorSubject} from './BehaviorSubject';
155export {ConnectableObservable} from './observable/ConnectableObservable';
156export {Notification, NotificationKind} from './Notification';
157export {EmptyError} from './util/EmptyError';
158export {ArgumentOutOfRangeError} from './util/ArgumentOutOfRangeError';
159export {ObjectUnsubscribedError} from './util/ObjectUnsubscribedError';
160export {TimeoutError} from './util/TimeoutError';
161export {UnsubscriptionError} from './util/UnsubscriptionError';
162export {TimeInterval} from './operators/timeInterval';
163export {Timestamp} from './operators/timestamp';
164export {TestScheduler} from './testing/TestScheduler';
165export {VirtualTimeScheduler} from './scheduler/VirtualTimeScheduler';
166export {AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError} from './observable/dom/AjaxObservable';
167export { pipe } from './util/pipe';
168
169import { asap } from './scheduler/asap';
170import { async } from './scheduler/async';
171import { queue } from './scheduler/queue';
172import { animationFrame } from './scheduler/animationFrame';
173import { AsapScheduler } from './scheduler/AsapScheduler';
174import { AsyncScheduler } from './scheduler/AsyncScheduler';
175import { QueueScheduler } from './scheduler/QueueScheduler';
176import { AnimationFrameScheduler } from './scheduler/AnimationFrameScheduler';
177import { rxSubscriber } from './symbol/rxSubscriber';
178import { iterator } from './symbol/iterator';
179import { observable } from './symbol/observable';
180
181import * as _operators from './operators/index';
182
183export const operators = _operators;
184
185/* tslint:enable:no-unused-variable */
186
187/**
188 * @typedef {Object} Rx.Scheduler
189 * @property {SchedulerLike} asap Schedules on the micro task queue, which is the same
190 * queue used for promises. Basically after the current job, but before the next job.
191 * Use this for asynchronous conversions.
192 * @property {SchedulerLike} queue Schedules on a queue in the current event frame
193 * (trampoline scheduler). Use this for iteration operations.
194 * @property {SchedulerLike} animationFrame Schedules work with `requestAnimationFrame`.
195 * Use this for synchronizing with the platform's painting.
196 * @property {SchedulerLike} async Schedules work with `setInterval`. Use this for
197 * time-based operations.
198 */
199let Scheduler = {
200  asap,
201  queue,
202  animationFrame,
203  async
204};
205
206/**
207 * @typedef {Object} Rx.Symbol
208 * @property {Symbol|string} rxSubscriber A symbol to use as a property name to
209 * retrieve an "Rx safe" Observer from an object. "Rx safety" can be defined as
210 * an object that has all of the traits of an Rx Subscriber, including the
211 * ability to add and remove subscriptions to the subscription chain and
212 * guarantees involving event triggering (can't "next" after unsubscription,
213 * etc).
214 * @property {Symbol|string} observable A symbol to use as a property name to
215 * retrieve an Observable as defined by the [ECMAScript "Observable" spec](https://github.com/zenparsing/es-observable).
216 * @property {Symbol|string} iterator The ES6 symbol to use as a property name
217 * to retrieve an iterator from an object.
218 */
219let Symbol = {
220  rxSubscriber,
221  observable,
222  iterator
223};
224
225export {
226    Scheduler,
227    Symbol
228};
229