type HTMLTags = HTMLElementTagNameMap & Omit type AttrProps = { [K in keyof Tag]?: Tag[K] extends Function ? never : string | number | boolean | null | undefined } & { children?: JSX.Child[], class?: string } declare global { namespace JSX { type Component

= (props: P) => Element | null type Element

= { type: string | Component

, props: P } type Child = Child[] | Iterable | Element | string | number | boolean | null | undefined type IntrinsicElements = { [node: string]: { class?: { [className: string]: any } | string | false | null | undefined, style?: { [styleName: string]: any } | string | false | null | undefined, children?: Child [attr: string]: object | string | number | boolean | null | undefined } } interface ElementAttributesProperty { props: {}; } interface ElementChildrenAttribute { children: {}; } } } /** * Modern transform. Also exported via hyperjsx/jsx-runtime. */ export function jsx

(type: string | JSX.Component

, props: P): JSX.Element /** * Classic transform. */ export function h

(type: string | JSX.Component

, ...children: JSX.Child[]): JSX.Element export function h

(type: string | JSX.Component

, props: Omit | null, ...children: JSX.Child[]): JSX.Element /** * Fragment */ export function Fragment(props?: { children?: JSX.Child }): JSX.Element /** * Error boundary */ export const ErrorBoundary: JSX.Component<{ fallback?: JSX.Child | ((data: { error: any }) => JSX.Child) onError?: (error: any) => any children?: JSX.Child }> /** * Basic context provider */ export type ContextComponent = JSX.Component<{ value: T, children?: JSX.Child }> export function createContext(defaultValue: T): ContextComponent export function useContext(context: ContextComponent): T export function useId(): string /** * Render to string */ export function render(root: JSX.Element, options?: Options): string export interface Options { indent?: string | false xml?: boolean }