/** * @module * This module provides APIs for `hono/jsx/dom`. */ import { isValidElement, reactAPICompatVersion } from '../base'; import type { Child, DOMAttributes, JSX, JSXNode, Props, FC } from '../base'; import { Children } from '../children'; import { useContext } from '../context'; import { createRef, forwardRef, startTransition, startViewTransition, use, useCallback, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore, useTransition, useViewTransition } from '../hooks'; import { ErrorBoundary, Suspense } from './components'; import { createContext } from './context'; import { useActionState, useFormStatus, useOptimistic } from './hooks'; import { Fragment } from './jsx-runtime'; import { createPortal, flushSync } from './render'; export { render } from './render'; declare const createElement: (tag: string | ((props: Props) => JSXNode), props: Props | null, ...children: Child[]) => JSXNode; declare const cloneElement: (element: T, props: Props, ...children: Child[]) => T; declare const memo: (component: FC, propsAreEqual?: (prevProps: Readonly, nextProps: Readonly) => boolean) => FC; export { reactAPICompatVersion as version, createElement as jsx, useState, useEffect, useRef, useCallback, use, startTransition, useTransition, useDeferredValue, startViewTransition, useViewTransition, useMemo, useLayoutEffect, useInsertionEffect, useReducer, useId, useDebugValue, createRef, forwardRef, useImperativeHandle, useSyncExternalStore, useFormStatus, useActionState, useOptimistic, Suspense, ErrorBoundary, createContext, useContext, memo, isValidElement, createElement, cloneElement, Children, Fragment, Fragment as StrictMode, DOMAttributes, flushSync, createPortal, }; declare const _default: { version: string; useState: { (initialState: T | (() => T)): [T, (newState: T | ((currentState: T) => T)) => void]; (): [T | undefined, (newState: T | ((currentState: T | undefined) => T | undefined) | undefined) => void]; }; useEffect: (effect: () => void | (() => void), deps?: readonly unknown[]) => void; useRef: (initialValue: T | null) => import("..").RefObject; useCallback: (callback: T, deps: readonly unknown[]) => T; use: (promise: Promise) => T; startTransition: (callback: () => void) => void; useTransition: () => [boolean, (callback: () => void | Promise) => void]; useDeferredValue: (value: T, initialValue?: T) => T; startViewTransition: (callback: () => void) => void; useViewTransition: () => [boolean, (callback: () => void) => void]; useMemo: (factory: () => T, deps: readonly unknown[]) => T; useLayoutEffect: (effect: () => void | (() => void), deps?: readonly unknown[]) => void; useInsertionEffect: (effect: () => void | (() => void), deps?: readonly unknown[]) => void; useReducer: (reducer: (state: T, action: A) => T, initialArg: T, init?: (initialState: T) => T) => [T, (action: A) => void]; useId: () => string; useDebugValue: (_value: unknown, _formatter?: (value: unknown) => string) => void; createRef: () => import("..").RefObject; forwardRef: (Component: (props: P, ref?: import("..").RefObject) => JSX.Element) => ((props: P & { ref?: import("..").RefObject; }) => JSX.Element); useImperativeHandle: (ref: import("..").RefObject, createHandle: () => T, deps: readonly unknown[]) => void; useSyncExternalStore: (subscribe: (callback: () => void) => () => void, getSnapshot: () => T, getServerSnapshot?: () => T) => T; useFormStatus: () => { pending: false; data: null; method: null; action: null; } | { pending: true; data: FormData; method: "get" | "post"; action: string | ((formData: FormData) => void | Promise); }; useActionState: (fn: Function, initialState: T, permalink?: string) => [T, Function]; useOptimistic: (state: T, updateState: (currentState: T, action: N) => T) => [T, (action: N) => void]; Suspense: FC>; ErrorBoundary: FC>; createContext: (defaultValue: T) => import("..").Context; useContext: (context: import("..").Context) => T; memo: (component: FC, propsAreEqual?: (prevProps: Readonly, nextProps: Readonly) => boolean) => FC; isValidElement: (element: unknown) => element is JSXNode; createElement: (tag: string | ((props: Props) => JSXNode), props: Props | null, ...children: Child[]) => JSXNode; cloneElement: (element: T, props: Props, ...children: Child[]) => T; Children: { map: (children: Child[], fn: (child: Child, index: number) => Child) => Child[]; forEach: (children: Child[], fn: (child: Child, index: number) => void) => void; count: (children: Child[]) => number; only: (_children: Child[]) => Child; toArray: (children: Child) => Child[]; }; Fragment: (props: Record) => JSXNode; StrictMode: (props: Record) => JSXNode; flushSync: (callback: () => void) => void; createPortal: (children: Child, container: HTMLElement, key?: string) => Child; }; export default _default; export type { Context } from '../context'; export type * from '../types';