/// declare namespace Rx { interface ISubject extends Observable, Observer, IDisposable { hasObservers(): boolean; } interface Subject extends ISubject { } interface SubjectStatic { new(): Subject; create(observer?: Observer, observable?: Observable): ISubject; } const Subject: SubjectStatic; interface AsyncSubject extends Subject { } interface AsyncSubjectStatic { new(): AsyncSubject; } const AsyncSubject: AsyncSubjectStatic; interface BehaviorSubject extends Subject { getValue(): T; } interface BehaviorSubjectStatic { new(initialValue: T): BehaviorSubject; } const BehaviorSubject: BehaviorSubjectStatic; interface ReplaySubject extends Subject { } interface ReplaySubjectStatic { new(bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; } const ReplaySubject: ReplaySubjectStatic; interface ConnectableObservable extends Observable { connect(): IDisposable; refCount(): Observable; } interface ConnectableObservableStatic { new(): ConnectableObservable; } const ConnectableObservable: ConnectableObservableStatic; interface Observable { multicast(subject: Observable): ConnectableObservable; multicast( subjectSelector: () => ISubject, selector: (source: ConnectableObservable) => Observable, ): Observable; publish(): ConnectableObservable; publish(selector: (source: ConnectableObservable) => Observable): Observable; /** * Returns an observable sequence that shares a single subscription to the underlying sequence. * This operator is a specialization of publish which creates a subscription when the number of observers goes from zero to one, * then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. * * @example * var res = source.share(); * * @returns An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. */ share(): Observable; publishLast(): ConnectableObservable; publishLast(selector: (source: ConnectableObservable) => Observable): Observable; publishValue(initialValue: T): ConnectableObservable; publishValue( selector: (source: ConnectableObservable) => Observable, initialValue: T, ): Observable; /** * Returns an observable sequence that shares a single subscription to the underlying sequence and starts with an initialValue. * This operator is a specialization of publishValue which creates a subscription when the number of observers goes from zero to one, * then shares that subscription with all subsequent observers until the number of observers returns to zero, at which point the subscription is disposed. * * @example * var res = source.shareValue(42); * * @param initialValue Initial value received by observers upon subscription. * @returns An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. */ shareValue(initialValue: T): Observable; replay( selector?: boolean, bufferSize?: number, window?: number, scheduler?: IScheduler, ): ConnectableObservable; // hack to catch first omitted parameter replay( selector: (source: ConnectableObservable) => Observable, bufferSize?: number, window?: number, scheduler?: IScheduler, ): Observable; shareReplay(bufferSize?: number, window?: number, scheduler?: IScheduler): Observable; } } declare module "rx-core-binding" { export = Rx; }