///
// Type definitions for RxJS "Aggregates"
// Project: http://rx.codeplex.com/
// Definitions by: Carl de Billy
// Definitions: https://github.com/borisyankov/DefinitelyTyped
//
// Dependencies:
// -> rx.js
// -> rx.time.js
declare module Rx {
interface ITimeInterval {
value: any;
interval: number;
}
interface ITimestamp {
value: any;
interval: number;
}
interface IObservable {
ifThen(condition: () => boolean, thenSource: IObservable): IObservable;
ifThen(condition: () => boolean, thenSource: IObservable, elseSource: IObservable): IObservable;
ifThen(condition: () => boolean, thenSource: IObservable, scheduler: IScheduler): IObservable;
delay(dueTime: number, scheduler?: IScheduler): IObservable;
throttle(dueTime: number, scheduler?: IScheduler): IObservable;
windowWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): IObservable;
windowWithTime(timeSpan: number, scheduler?: IScheduler): IObservable;
windowWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): IObservable;
bufferWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): IObservable;
bufferWithTime(timeSpan: number, scheduler?: IScheduler): IObservable;
bufferWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): IObservable;
timeInterval(scheduler?: IScheduler): IObservable;
timestamp(scheduler?: IScheduler): IObservable;
sample(interval: number, scheduler?: IScheduler): IObservable;
sample(sampler: IObservable, scheduler?: IScheduler): IObservable;
timeout(dueTime: Date, other?: IObservable, scheduler?: IScheduler): IObservable;
timeout(dueTime: number, other?: IObservable, scheduler?: IScheduler): IObservable;
delaySubscription(dueTime: number, scheduler?: IScheduler): IObservable;
delayWithSelector(delayDurationSelector: (T) => number): IObservable;
delayWithSelector(subscriptionDelay: number, delayDurationSelector: (T) => number): IObservable;
timeoutWithSelector(firstTimeout: IObservable, timeoutdurationSelector?: (T) => IObservable, other?: IObservable): IObservable;
throttleWithSelector(throttleDurationSelector: (T) => IObservable): IObservable;
skipLastWithTime(duration: number, scheduler?: IScheduler): IObservable;
takeLastWithTime(duration: number, timerScheduler?: IScheduler, loopScheduler?: IScheduler): IObservable;
takeLastBufferWithTime(duration: number, scheduler?: IScheduler): IObservable;
takeWithTime(duration: number, scheduler?: IScheduler): IObservable;
skipWithTime(duration: number, scheduler?: IScheduler): IObservable;
skipUntilWithTime(startTime: Date, scheduler?: IScheduler): IObservable;
takeUntilWithTime(endTime: Date, scheduler?: IScheduler): IObservable;
}
interface Observable {
interval(period: number, scheduler?: IScheduler): IObservable;
interval(dutTime: number, period: number, scheduler?: IScheduler): IObservable;
timer(dueTime: Date, period: number, scheduler: IScheduler): IObservable;
timer(dueTime: Date, scheduler: IScheduler): IObservable;
timer(dueTime: number, period: number, scheduler: IScheduler): IObservable;
timer(dueTime: number, scheduler: IScheduler): IObservable;
generateWithAbsoluteTime(
initialState: TState,
condition: (TState) => boolean,
iterate: (TState) => TState,
resultSelector: (TState) => TResult,
timeSelector: (TState) => Date,
scheduler?: IScheduler): IObservable;
generateWithRelativeTime(
initialState: TState,
condition: (TState) => boolean,
iterate: (TState) => TState,
resultSelector: (TState) => TResult,
timeSelector: (TState) => number,
scheduler?: IScheduler): IObservable;
}
}