// Type definitions for RxJS-Time v2.2.28
// Project: http://rx.codeplex.com/
// Definitions by: Carl de Billy , Igor Oleinikov
// Definitions: https://github.com/borisyankov/DefinitelyTyped
///
///
declare module Rx {
export interface Observable {
delaySubscription(dueTime: number, scheduler?: IScheduler): Observable;
delayWithSelector(delayDurationSelector: (item: T) => number): Observable;
delayWithSelector(subscriptionDelay: number, delayDurationSelector: (item: T) => number): Observable;
timeoutWithSelector(firstTimeout: Observable, timeoutdurationSelector?: (item: T) => Observable, other?: Observable): Observable;
throttleWithSelector(throttleDurationSelector: (item: T) => Observable): Observable;
skipLastWithTime(duration: number, scheduler?: IScheduler): Observable;
takeLastWithTime(duration: number, timerScheduler?: IScheduler, loopScheduler?: IScheduler): Observable;
takeLastBufferWithTime(duration: number, scheduler?: IScheduler): Observable;
takeWithTime(duration: number, scheduler?: IScheduler): Observable;
skipWithTime(duration: number, scheduler?: IScheduler): Observable;
skipUntilWithTime(startTime: Date, scheduler?: IScheduler): Observable;
skipUntilWithTime(duration: number, scheduler?: IScheduler): Observable;
takeUntilWithTime(endTime: Date, scheduler?: IScheduler): Observable;
takeUntilWithTime(duration: number, scheduler?: IScheduler): Observable;
windowWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): Observable>;
windowWithTime(timeSpan: number, scheduler?: IScheduler): Observable>;
windowWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): Observable>;
bufferWithTime(timeSpan: number, timeShift: number, scheduler?: IScheduler): Observable;
bufferWithTime(timeSpan: number, scheduler?: IScheduler): Observable;
bufferWithTimeOrCount(timeSpan: number, count: number, scheduler?: IScheduler): Observable;
}
interface ObservableStatic {
timer(dueTime: Date, period: number, scheduler?: IScheduler): Observable;
timer(dueTime: Date, scheduler?: IScheduler): Observable;
generateWithRelativeTime(
initialState: TState,
condition: (state: TState) => boolean,
iterate: (state: TState) => TState,
resultSelector: (state: TState) => TResult,
timeSelector: (state: TState) => number,
scheduler?: IScheduler): Observable;
generateWithAbsoluteTime(
initialState: TState,
condition: (state: TState) => boolean,
iterate: (state: TState) => TState,
resultSelector: (state: TState) => TResult,
timeSelector: (state: TState) => Date,
scheduler?: IScheduler): Observable;
}
}
declare module "rx.time" {
export = Rx;
}