module Rx { // Type alias for observables and promises export type ObservableOrPromise = IObservable | Observable | Promise; export type ArrayLike = Array | { length: number;[index: number]: T; }; // Type alias for arrays and array like objects export type ArrayOrIterable = ArrayLike; /** * Promise A+ */ export interface Promise { then(onFulfilled: (value: T) => R|Promise, onRejected: (error: any) => Promise): Promise; then(onFulfilled: (value: T) => R|Promise, onRejected?: (error: any) => R): Promise; } /** * Promise A+ */ export interface IPromise extends Promise { } /** * Represents a push-style collection. */ export interface IObservable { } /** * Represents a push-style collection. */ export interface Observable extends IObservable { } }