///
///
module Rx {
export interface Observable {
/**
* Ignores values from an observable sequence which are followed by another value before dueTime.
* @param {Number} dueTime Duration of the debounce period for each value (specified as an integer denoting milliseconds).
* @param {Scheduler} [scheduler] Scheduler to run the debounce timers on. If not specified, the timeout scheduler is used.
* @returns {Observable} The debounced sequence.
*/
debounce(dueTime: number, scheduler?: IScheduler): Observable;
/**
* Ignores values from an observable sequence which are followed by another value within a computed throttle duration.
* @param {Function} durationSelector Selector function to retrieve a sequence indicating the throttle duration for each given element.
* @returns {Observable} The debounced sequence.
*/
debounce(debounceDurationSelector: (item: T) => ObservableOrPromise): Observable;
}
}
(function () {
var o: Rx.Observable;
o.debounce(100);
o.debounce(100, Rx.Scheduler.async);
o.debounce(x => Rx.Observable.just(x.length));
});