import { Component } from "./component"; import { IObject } from "./pview.model"; export declare type CustomComponent = { (...args: any[]): IVnode; new (...args: any[]): T; }; export interface IVnode { nodeName: string | CustomComponent | Component; attributes: IObject; children: Array | Array | null; class?: CustomComponent; } export interface IComponent { node: SVGElement | HTMLElement | Text; children: IComponent[]; eventStack: { (data?: unknown): unknown; }[]; self?: Component; } export interface IReferenceNode { node: SVGElement | HTMLElement | Text; children: Array; self?: Component; } export interface IComponentProps extends IObject { extChildren?: IVnode[]; }