///
// Type definitions for RxJS-Binding package
// Project: http://rx.codeplex.com/
// Definitions by: Carl de Billy
// Revision by: Igor Oleinikov
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module Rx {
export interface BehaviorSubject extends Subject {
}
interface BehaviorSubjectStatic {
new (initialValue: T): BehaviorSubject;
}
export var BehaviorSubject: BehaviorSubjectStatic;
export interface ReplaySubject extends Subject {
}
interface ReplaySubjectStatic {
new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject;
}
export var ReplaySubject: ReplaySubjectStatic;
interface ConnectableObservable extends Observable {
connect(): IDisposable;
refCount(): Observable;
}
interface ConnectableObservableStatic {
new (): ConnectableObservable;
}
export var ConnectableObservable: ConnectableObservableStatic;
export interface Observable {
publish(): ConnectableObservable;
publish(selector: (item: T) => Observable): ConnectableObservable;
publishLast(): ConnectableObservable;
publishLast(selector: (item: T) => Observable): ConnectableObservable;
publishValue(initialValue: T): ConnectableObservable;
publishValue(selector: (item: T) => TResult, initialValue: TResult): ConnectableObservable;
replay(selector?: (source: Observable) => ReplaySubject, bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject;
}
}