import VNode from "../src/core/vdom/vnode"; import { Component } from "./component"; declare type VNodeChildren = | Array | string; declare type VNodeComponentOptions = { Ctor: Component; propsData?: Object; listeners?: Record; children?: Array; tag?: string; }; declare type MountedComponentVNode = VNode & { context: Component; componentOptions: VNodeComponentOptions; componentInstance: Component; parent: VNode; data: VNodeData; }; // interface for vnodes in update modules declare type VNodeWithData = VNode & { tag: string; data: VNodeData; children: Array; text: void; elm: any; ns: string | void; context: Component; key: string | number | undefined; parent?: VNodeWithData; componentOptions?: VNodeComponentOptions; componentInstance?: Component; isRootInsert: boolean; }; // // interface for vnodes in update modules // declare type VNodeWithData = { // tag: string; // data: VNodeData; // children: Array; // text: void; // elm: any; // ns: string | void; // context: Component; // key: string | number | undefined; // parent?: VNodeWithData; // componentOptions?: VNodeComponentOptions; // componentInstance?: Component; // isRootInsert: boolean; // }; declare interface VNodeData { key?: string | number; slot?: string; ref?: string; is?: string; pre?: boolean; tag?: string; staticClass?: string; class?: any; staticStyle?: { [key: string]: any }; style?: string | Array | Object; normalizedStyle?: Object; props?: { [key: string]: any }; attrs?: { [key: string]: string }; domProps?: { [key: string]: any }; hook?: { [key: string]: Function }; on?: { [key: string]: Function | Array }; nativeOn?: { [key: string]: Function | Array }; transition?: Object; show?: boolean; // marker for v-show inlineTemplate?: { render: Function; staticRenderFns: Array; }; directives?: Array; keepAlive?: boolean; scopedSlots?: { [key: string]: Function }; model?: { value: any; callback: Function; }; [key: string]: any; } declare type VNodeDirective = { name: string; rawName: string; value?: any; oldValue?: any; arg?: string; oldArg?: string; modifiers?: ASTModifiers; def?: Object; }; declare type ScopedSlotsData = Array< { key: string; fn: Function } | ScopedSlotsData >;