import { Observer } from './Observer'; import { Operator } from './Operator'; import { Scheduler } from './Scheduler'; import { Subscriber } from './Subscriber'; import { Subscription } from './Subscription'; import { CoreOperators } from './CoreOperators'; import { GroupedObservable } from './operator/groupBy-support'; import { ConnectableObservable } from './observable/ConnectableObservable'; import { Subject } from './Subject'; import { Notification } from './Notification'; /** * A representation of any set of values over any amount of time. This the most basic building block * of RxJS. * * @class Observable */ export declare class Observable implements CoreOperators { source: Observable; operator: Operator; _isScalar: boolean; /** * @constructor * @param {Function} subscribe the function that is * called when the Observable is initially subscribed to. This function is given a Subscriber, to which new values * can be `next`ed, or an `error` method can be called to raise an error, or `complete` can be called to notify * of a successful completion. */ constructor(subscribe?: (subscriber: Subscriber) => Subscription | Function | void); /** * @static * @method create * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor * @returns {Observable} a new cold observable * @description creates a new cold Observable by calling the Observable constructor */ static create: Function; /** * @method lift * @param {Operator} operator the operator defining the operation to take on the observable * @returns {Observable} a new observable with the Operator applied * @description creates a new Observable, with this Observable as the source, and the passed * operator defined as the new observable's operator. */ lift(operator: Operator): Observable; /** * @method subscribe * @param {Observer|Function} observerOrNext (optional) either an observer defining all functions to be called, * or the first of three possible handlers, which is the handler for each value emitted from the observable. * @param {Function} error (optional) a handler for a terminal event resulting from an error. If no error handler is provided, * the error will be thrown as unhandled * @param {Function} complete (optional) a handler for a terminal event resulting from successful completion. * @returns {Subscription} a subscription reference to the registered handlers * @description registers handlers for handling emitted values, error and completions from the observable, and * executes the observable's subscriber function, which will take action to set up the underlying data stream */ subscribe(observerOrNext?: Observer | ((value: T) => void), error?: (error: T) => void, complete?: () => void): Subscription; /** * @method forEach * @param {Function} next a handler for each value emitted by the observable * @param {PromiseConstructor} PromiseCtor? a constructor function used to instantiate the Promise * @returns {Promise} a promise that either resolves on observable completion or * rejects with the handled error */ forEach(next: (value: T) => void, PromiseCtor?: PromiseConstructor): Promise; _subscribe(subscriber: Subscriber): Subscription | Function | void; static bindCallback: (callbackFunc: Function, selector?: Function, scheduler?: Scheduler) => Function; static combineLatest: (...observables: Array | Array> | ((...values: Array) => T) | Scheduler>) => Observable; static concat: (...observables: Array | Scheduler>) => Observable; static defer: (observableFactory: () => Observable) => Observable; static empty: (scheduler?: Scheduler) => Observable; static forkJoin: (...sources: Array | Array> | Promise | ((...values: Array) => any)>) => Observable; static from: (iterable: any, scheduler?: Scheduler) => Observable; static fromArray: (array: T[], scheduler?: Scheduler) => Observable; static fromEvent: (element: any, eventName: string, selector?: (...args: Array) => T) => Observable; static fromEventPattern: (addHandler: (handler: Function) => void, removeHandler: (handler: Function) => void, selector?: (...args: Array) => T) => Observable; static fromPromise: (promise: Promise, scheduler?: Scheduler) => Observable; static interval: (interval: number, scheduler?: Scheduler) => Observable; static merge: (...observables: Array | Scheduler | number>) => Observable; static never: () => Observable; static of: (...values: Array) => Observable; static range: (start: number, end: number, scheduler?: Scheduler) => Observable; static throw: (error: T) => Observable; static timer: (dueTime?: number | Date, period?: number | Scheduler, scheduler?: Scheduler) => Observable; static zip: (...observables: Array | ((...values: Array) => T)>) => Observable; buffer: (closingNotifier: Observable) => Observable; bufferCount: (bufferSize: number, startBufferEvery: number) => Observable; bufferTime: (bufferTimeSpan: number, bufferCreationInterval?: number, scheduler?: Scheduler) => Observable; bufferToggle: (openings: Observable, closingSelector?: (openValue: O) => Observable) => Observable; bufferWhen: (closingSelector: () => Observable) => Observable; catch: (selector: (err: any, source: Observable, caught: Observable) => Observable) => Observable; combineAll: (project?: (...values: Array) => R) => Observable; combineLatest: (...observables: Array | Array> | ((...values: Array) => R)>) => Observable; concat: (...observables: (Observable | Scheduler)[]) => Observable; concatAll: () => Observable; concatMap: (project: ((x: T, ix: number) => Observable), projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable; concatMapTo: (observable: Observable, projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable; count: (predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any) => Observable; dematerialize: () => Observable; debounce: (durationSelector: (value: T) => Observable | Promise) => Observable; debounceTime: (dueTime: number, scheduler?: Scheduler) => Observable; defaultIfEmpty: (defaultValue?: T | R) => Observable | Observable; delay: (delay: number, scheduler?: Scheduler) => Observable; distinctUntilChanged: (compare?: (x: T, y: T) => boolean, thisArg?: any) => Observable; do: (next?: (x: T) => void, error?: (e: any) => void, complete?: () => void) => Observable; expand: (project: (x: T, ix: number) => Observable) => Observable; filter: (predicate: (x: T) => boolean, ix?: number, thisArg?: any) => Observable; finally: (ensure: () => void, thisArg?: any) => Observable; first: (predicate?: (value: T, index: number, source: Observable) => boolean, resultSelector?: (value: T, index: number) => R, thisArg?: any, defaultValue?: any) => Observable | Observable; flatMap: (project: ((x: T, ix: number) => Observable), projectResult?: (x: T, y: any, ix: number, iy: number) => R, concurrent?: number) => Observable; flatMapTo: (observable: Observable, projectResult?: (x: T, y: any, ix: number, iy: number) => R, concurrent?: number) => Observable; groupBy: (keySelector: (value: T) => string, elementSelector?: (value: T) => R, durationSelector?: (group: GroupedObservable) => Observable) => Observable>; ignoreElements: () => Observable; last: (predicate?: (value: T, index: number) => boolean, resultSelector?: (value: T, index: number) => R, thisArg?: any, defaultValue?: any) => Observable | Observable; every: (predicate: (value: T, index: number) => boolean, thisArg?: any) => Observable; map: (project: (x: T, ix?: number) => R, thisArg?: any) => Observable; mapTo: (value: R) => Observable; materialize: () => Observable>; merge: (...observables: any[]) => Observable; mergeAll: (concurrent?: any) => Observable; mergeMap: (project: ((x: T, ix: number) => Observable), projectResult?: (x: T, y: any, ix: number, iy: number) => R, concurrent?: number) => Observable; mergeMapTo: (observable: Observable, projectResult?: (x: T, y: any, ix: number, iy: number) => R, concurrent?: number) => Observable; multicast: (subjectFactory: () => Subject) => ConnectableObservable; observeOn: (scheduler: Scheduler, delay?: number) => Observable; partition: (predicate: (x: T) => boolean) => Observable[]; publish: () => ConnectableObservable; publishBehavior: (value: any) => ConnectableObservable; publishReplay: (bufferSize?: number, windowTime?: number, scheduler?: Scheduler) => ConnectableObservable; publishLast: () => ConnectableObservable; reduce: (project: (acc: R, x: T) => R, seed?: R) => Observable; repeat: (count?: number) => Observable; retry: (count?: number) => Observable; retryWhen: (notifier: (errors: Observable) => Observable) => Observable; sample: (notifier: Observable) => Observable; sampleTime: (delay: number, scheduler?: Scheduler) => Observable; scan: (accumulator: (acc: R, x: T) => R, seed?: T | R) => Observable; share: () => Observable; single: (predicate?: (value: T, index: number) => boolean, thisArg?: any) => Observable; skip: (count: number) => Observable; skipUntil: (notifier: Observable) => Observable; skipWhile: (predicate: (x: T, index: number) => boolean, thisArg?: any) => Observable; startWith: (x: T) => Observable; subscribeOn: (scheduler: Scheduler, delay?: number) => Observable; switch: () => Observable; switchFirst: () => Observable; switchMap: (project: ((x: T, ix: number) => Observable), projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable; switchMapFirst: (project: (x: T, ix: number) => Observable, rSelector?: (x: T, y: R, ix: number, iy: number) => R2) => Observable; switchMapTo: (observable: Observable, projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable; take: (count: number) => Observable; takeUntil: (notifier: Observable) => Observable; takeWhile: (predicate: (value: T, index: number) => boolean) => Observable; throttle: (durationSelector: (value: T) => Observable | Promise) => Observable; throttleTime: (delay: number, scheduler?: Scheduler) => Observable; timeout: (due: number | Date, errorToSend?: any, scheduler?: Scheduler) => Observable; timeoutWith: (due: number | Date, withObservable: Observable, scheduler?: Scheduler) => Observable | Observable; toArray: () => Observable; toPromise: (PromiseCtor?: PromiseConstructor) => Promise; window: (closingNotifier: Observable) => Observable>; windowCount: (windowSize: number, startWindowEvery: number) => Observable>; windowTime: (windowTimeSpan: number, windowCreationInterval?: number, scheduler?: Scheduler) => Observable>; windowToggle: (openings: Observable, closingSelector?: (openValue: O) => Observable) => Observable>; windowWhen: (closingSelector: () => Observable) => Observable>; withLatestFrom: (...observables: Array | ((...values: Array) => R)>) => Observable; zip: (...observables: Array | ((...values: Array) => R)>) => Observable; zipAll: (project?: (...values: Array) => R) => Observable; }