export interface JSXElement { type: string | symbol | ((props?: any) => JSXNode); props: Record; key?: string | null; } export type JSXNode = | JSXElement | string | number | boolean | null | undefined | JSXNode[]; export type RenderableNode = JSXElement | string | number; export type JSXElementConstructor

= (props: P) => JSXNode; export type ComponentType

= JSXElementConstructor>; export type WithChildren = T & { children?: JSXNode; };