declare interface GlobalAPI { cid: number; options: Object; config: Config; util: Object; extend: (options: Object) => Function; set: (target: Object | Array, key: string | number, value: T) => T; delete: (target: Object| Array, key: string | number) => void; nextTick: (fn: Function, context?: Object) => void | Promise<*>; use: (plugin: Function | Object) => GlobalAPI; mixin: (mixin: Object) => GlobalAPI; compile: (template: string) => { render: Function, staticRenderFns: Array }; directive: (id: string, def?: Function | Object) => Function | Object | void; component: (id: string, def?: Class | Object) => Class; filter: (id: string, def?: Function) => Function | void; observable: (value: T) => T; // allow dynamic method registration [key: string]: any };