import * as Rx from "rx"; import IViewModel from "../viewmodels/IViewModel"; declare abstract class ObservableViewModel implements IViewModel { "force nominal type for IViewModel": T; private subject; private subscription; observe(observable: Rx.IObservable): void; protected abstract onData(data: T): void; subscribe(observer: Rx.IObserver): Rx.IDisposable; subscribe(onNext?: (value: void) => void, onError?: (exception: any) => void, onCompleted?: () => void): Rx.IDisposable; protected onError(error: any): void; dispose(): void; private notifyChanged(); } export default ObservableViewModel;