/// declare namespace Rx { interface TestScheduler extends VirtualTimeScheduler { createColdObservable(...records: Recorded[]): Observable; createHotObservable(...records: Recorded[]): Observable; createObserver(): MockObserver; startWithTiming( create: () => Observable, createdAt: number, subscribedAt: number, disposedAt: number, ): MockObserver; startWithDispose(create: () => Observable, disposedAt: number): MockObserver; startWithCreate(create: () => Observable): MockObserver; } const TestScheduler: { new(): TestScheduler; }; class Recorded { constructor(time: number, value: any, equalityComparer?: (x: any, y: any) => boolean); equals(other: Recorded): boolean; toString(): string; time: number; value: any; } const ReactiveTest: { created: number; subscribed: number; disposed: number; onNext(ticks: number, value: any): Recorded; onError(ticks: number, exception: any): Recorded; onCompleted(ticks: number): Recorded; subscribe(subscribeAt: number, unsubscribeAt?: number): Subscription; }; class Subscription { constructor(subscribeAt: number, unsubscribeAt?: number); equals(other: Subscription): boolean; } interface MockObserver extends Observer { messages: Recorded[]; } interface MockObserverStatic extends ObserverStatic { new(scheduler: IScheduler): MockObserver; } const MockObserver: MockObserverStatic; } declare module "rx-lite-testing" { export = Rx; }