import Vue, { PluginFunction } from 'vue' declare const VueJsBridge:VueJsBridge export default VueJsBridge export interface VueJsBridge { install: PluginFunction version: string } declare module "vue/types/vue" { export interface Vue { $bridge: VueJsBridgePlugin } } interface Bridge

{ registerHandler (name: string, fn: (request:Q) => void): void callHandler (nativeHandler: string, payload: P, callback:(response: R) => void): void } export interface pluginOption

{ debug?: boolean delay?: number nativeHandlerName: string mock?: boolean mockHandler?: (payload: P, next:(response: R) => void) => void } export class VueJsBridgePlugin { constructor (options: pluginOption) private init (callback: (bridge: Bridge) => void) public registerHandler (name: string, fn: (data:D, callback:(payload?:P) => void) => void): void public callHandler (payload: P): Promise }