import { Observable } from 'rxjs'; import Vue from 'vue'; import { WatchOptions } from 'vue'; export type Observables = Record>; declare module 'vue/types/options' { interface ComponentOptions { subscriptions?: Observables | ((this: V) => Observables); domStreams?: string[]; observableMethods?: string[] | Record; } } export interface WatchObservable { newValue: T; oldValue: T; } declare module 'vue/types/vue' { interface Vue { $observables: Observables; $watchAsObservable(expr: string, options?: WatchOptions): Observable>; $watchAsObservable(fn: (this: this) => T, options?: WatchOptions): Observable>; $eventToObservable(event: string): Observable<{name: string, msg: any}>; $subscribeTo( observable: Observable, next: (t: T) => void, error?: (e: any) => void, complete?: () => void): void; $fromDOMEvent(selector: string | null, event: string): Observable; $createObservableMethod(methodName: string): Observable; } } export default function VueRx(V: typeof Vue): void;