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;