import type { StringBuffer, HtmlEscaped, HtmlEscapedString } from '../../utils/html'; declare global { namespace jsx.JSX { interface IntrinsicElements { [tagName: string]: Record; } } } declare type Child = string | number | JSXNode | Child[]; export declare class JSXNode implements HtmlEscaped { tag: string | Function; props: Record; children: Child[]; isEscaped: true; constructor(tag: string | Function, props: Record, children: Child[]); toString(): string; toStringToBuffer(buffer: StringBuffer): void; } export { jsxFn as jsx }; declare const jsxFn: (tag: string | Function, props: Record, ...children: (string | HtmlEscapedString)[]) => JSXNode; declare type FC> = (props: T) => HtmlEscapedString; export declare const memo: (component: FC, propsAreEqual?: (prevProps: Readonly, nextProps: Readonly) => boolean) => FC; export declare const Fragment: (props: { key?: string; children?: any; }) => JSXNode;