import { VNode, RendererElement, RendererNode, VNodeProps } from './vnode'; export type Data = Record; export interface RendererOptions { patchProp(el: RendererElement, key: string, prevValue: any, nextValue: any, isSVG?: boolean, prevChildren?: VNode[], parentComponent?: null, parentSuspense?: null, unmountChildren?: UnmountChildrenFn): void; insert(el: RendererNode, parent: RendererElement, anchor?: RendererNode | null): void; remove?(el: RendererNode): void; createElement(type: string, isSVG?: boolean, isCustomizedBuiltIn?: string, vnodeProps?: (VNodeProps & { [key: string]: any; }) | null): RendererElement; createText(text: string): RendererNode; createComment?(text: string): RendererNode; setText?(node: RendererNode, text: string): void; setElementText?(node: RendererElement, text: string): void; parentNode?(node: RendererNode): RendererElement | null; nextSibling?(node: RendererNode): RendererElement | null; } type UnmountChildrenFn = (children: VNode[], parentComponent: null, parentSuspense: null, doRemove?: boolean, optimized?: boolean, start?: number) => void; export declare const enum MoveType { ENTER = 0, LEAVE = 1, REORDER = 2 } export declare function createRenderer(options: RendererOptions): { render: (vnode: VNode, container: RendererElement, isSVG?: boolean) => void; }; export {};