| import './vue' | 
| import Vue, { ComponentOptions, PluginFunction } from 'vue' | 
|   | 
| type Component = ComponentOptions<Vue> | typeof Vue | 
| type CallbackFn = () => void | 
| type elements = HTMLElement[] | 
|   | 
| export interface VueMetaOptionsRuntime { | 
|   refreshOnceOnNavigation?: boolean | 
|   debounceWait?: number | 
|   waitOnDestroyed?: boolean | 
| } | 
|   | 
| export interface VueMetaOptions extends VueMetaOptionsRuntime { | 
|   keyName: string, // the component option name that vue-meta looks for meta info on. | 
|   attribute: string, // the attribute name vue-meta adds to the tags it observes | 
|   ssrAppId: string, // the app id used for ssr app | 
|   ssrAttribute: string, // the attribute name that lets vue-meta know that meta info has already been server-rendered | 
|   tagIDKeyName: string // the property name that vue-meta uses to determine whether to overwrite or append a tag | 
| } | 
|   | 
| export declare class VueMeta { | 
|   static version: string | 
|   static install(vue: typeof Vue, options?: VueMetaOptions): PluginFunction<never> | 
|   static hasMetaInfo(vm: Component): boolean | 
|   static generate(metaInfo: MetaInfo, options?: Object): MetaInfoSSR | 
| } | 
|   | 
| interface RefreshedTags { | 
|   addedTags: elements | 
|   removedTags: elements | 
| } | 
|   | 
| interface Refreshed { | 
|   vm: Component, | 
|   metaInfo: MetaInfoOutput, | 
|   tags: RefreshedTags | 
| } | 
|   | 
| interface VueMetaApp { | 
|   set(metaInfo: MetaInfo): void | RefreshedTags | 
|   remove(): void | 
| } | 
|   | 
| export interface VueMetaPlugin { | 
|   getOptions(): VueMetaOptions | 
|   setOptions(runtimeOptions: VueMetaOptionsRuntime): VueMetaOptions | 
|   addApp(appName: string): VueMetaApp | 
|   refresh(): Refreshed | 
|   inject(): MetaInfoSSR | 
|   pause(refresh: true): () => Refreshed | 
|   pause(refresh?: boolean): () => void | 
|   resume(refresh: true): Refreshed | 
|   resume(refresh?: boolean): void | 
| } | 
|   | 
| export interface AttributeProperty { | 
|   [key: string]: string | string[] | 
| } | 
|   | 
| export interface MetaDataProperty { | 
|   vmid?: string, | 
|   once?: boolean, | 
|   skip?: boolean, | 
|   body?: boolean, | 
|   pbody?: boolean, | 
|   [key: string]: any | 
| } | 
|   | 
| export interface MetaPropertyCharset extends MetaDataProperty { | 
|   charset: string, | 
| } | 
|   | 
| export interface MetaPropertyEquiv extends MetaDataProperty { | 
|   httpEquiv: string, | 
|   content: string, | 
|   template?: (chunk: string) => string | 
| } | 
|   | 
| export interface MetaPropertyName extends MetaDataProperty { | 
|   name: string, | 
|   content: string, | 
|   template?: (chunk: string) => string | 
| } | 
|   | 
| export interface MetaPropertyMicrodata extends MetaDataProperty { | 
|   itemprop: string, | 
|   content: string, | 
|   template?: (chunk: string) => string | 
| } | 
|   | 
| // non-w3c interface | 
| export interface MetaPropertyProperty extends MetaDataProperty { | 
|   property: string, | 
|   content: string, | 
|   template?: (chunk: string) => string | 
| } | 
|   | 
| export interface LinkPropertyBase extends MetaDataProperty { | 
|   rel: string, | 
|   crossOrigin?: string | null, | 
|   media?: string, | 
|   nonce?: string, | 
|   referrerPolicy?: string, | 
|   rev?: string, | 
|   type?: string | 
| } | 
|   | 
| export interface LinkPropertyHref extends LinkPropertyBase { | 
|   href?: string, | 
|   hreflang?: string, | 
|   callback?: void | 
| } | 
|   | 
| export interface LinkPropertyHrefCallback extends LinkPropertyBase { | 
|   vmid: string, | 
|   callback: CallbackFn, | 
|   href?: string, | 
|   hreflang?: string | 
| } | 
|   | 
| export interface StyleProperty extends MetaDataProperty { | 
|   cssText: string, | 
|   callback?: CallbackFn | 
|   media?: string, | 
|   nonce?: string, | 
|   type?: string, | 
| } | 
|   | 
| export interface ScriptPropertyBase extends MetaDataProperty { | 
|   type?: string, | 
|   charset?: string, | 
|   async?: boolean, | 
|   defer?: boolean, | 
|   crossOrigin?: string, | 
|   nonce?: string | 
| } | 
|   | 
| export interface ScriptPropertyText extends ScriptPropertyBase { | 
|   innerHTML: string | 
| } | 
|   | 
| export interface ScriptPropertySrc extends ScriptPropertyBase { | 
|   src: string, | 
|   callback?: void | 
| } | 
|   | 
| export interface ScriptPropertySrcCallback extends ScriptPropertyBase { | 
|   vmid: string, | 
|   callback: CallbackFn | 
| } | 
|   | 
| type JsonVal = string | number | boolean | JsonObj | JsonObj[] | null | 
|   | 
| interface JsonObj { | 
|   [key: string]: JsonVal | JsonVal[] | 
| } | 
|   | 
| export interface ScriptPropertyJson extends ScriptPropertyBase { | 
|   json: JsonObj | 
| } | 
|   | 
| export interface NoScriptProperty extends MetaDataProperty { | 
|   innerHTML: string, | 
| } | 
|   | 
| export interface MetaInfo { | 
|   title?: string | 
|   titleTemplate?: string | ((titleChunk: string) => string), | 
|   | 
|   htmlAttrs?: AttributeProperty | 
|   headAttrs?: AttributeProperty | 
|   bodyAttrs?: AttributeProperty | 
|   | 
|   base?: { | 
|     target: string, | 
|     href: string | 
|   } | 
|   | 
|   meta?: (MetaPropertyCharset | MetaPropertyEquiv | MetaPropertyName | MetaPropertyMicrodata | MetaPropertyProperty)[] | 
|   link?: (LinkPropertyBase | LinkPropertyHref | LinkPropertyHrefCallback)[] | 
|   style?: StyleProperty[] | 
|   script?: (ScriptPropertyText | ScriptPropertySrc | ScriptPropertySrcCallback | ScriptPropertyJson)[] | 
|   noscript?: NoScriptProperty[] | 
|   | 
|   __dangerouslyDisableSanitizers?: string[] | 
|   __dangerouslyDisableSanitizersByTagID?: { | 
|     [key: string]: string[] | 
|   } | 
|   | 
|   changed?: <T extends MetaInfoOutput>(newInfo: T, addedTags: elements, removedTags: elements) => void | 
|   afterNavigation?: <T extends MetaInfoOutput>(newInfo: T) => void | 
| } | 
|   | 
| export interface MetaInfoOutput extends MetaInfo { | 
|   titleChunk?: string | 
| } | 
|   | 
| export type MetaInfoComputed = () => MetaInfo | 
|   | 
| interface ToText { | 
|   text(): string | 
| } | 
|   | 
| interface ToTextBooleanArg { | 
|   text(addSrrAttribute?: boolean): string | 
| } | 
|   | 
| interface AddLineBreakOption { | 
|   ln: boolean | 
| } | 
|   | 
| interface ToBodyTextOption { | 
|   body: boolean | 
| } | 
|   | 
| interface ToPbodyTextOption { | 
|   pbody: boolean | 
| } | 
|   | 
| interface ToBodyText { | 
|   text(options?: (ToBodyTextOption | ToPbodyTextOption | AddLineBreakOption)): string | 
| } | 
|   | 
| export interface MetaInfoSSR { | 
|   head(ln?: boolean): string | 
|   bodyPrepend(ln?: boolean): string | 
|   bodyAppend(ln?: boolean): string | 
|   title?: ToText | 
|   htmlAttrs?: ToTextBooleanArg | 
|   headAttrs?: ToText | 
|   bodyAttrs?: ToText | 
|   base?: ToBodyText | 
|   meta?: ToBodyText | 
|   link?: ToBodyText | 
|   style?: ToBodyText | 
|   script?: ToBodyText | 
|   noscript?: ToBodyText | 
| } |