import * as _hooks from '../../hooks'; // Intentionally not using a relative path to take advantage of // the TS version resolution mechanism import * as preact from 'preact'; import { JSXInternal } from '../../src/jsx'; import * as _Suspense from './suspense'; import * as _SuspenseList from './suspense-list'; // export default React; export = React; export as namespace React; declare namespace React { // Export JSX export import JSX = JSXInternal; // Hooks export import CreateHandle = _hooks.CreateHandle; export import EffectCallback = _hooks.EffectCallback; export import Inputs = _hooks.Inputs; export import PropRef = _hooks.PropRef; export import Reducer = _hooks.Reducer; export import Dispatch = _hooks.Dispatch; export import SetStateAction = _hooks.StateUpdater; export import useCallback = _hooks.useCallback; export import useContext = _hooks.useContext; export import useDebugValue = _hooks.useDebugValue; export import useEffect = _hooks.useEffect; export import useImperativeHandle = _hooks.useImperativeHandle; export import useId = _hooks.useId; export import useLayoutEffect = _hooks.useLayoutEffect; export import useMemo = _hooks.useMemo; export import useReducer = _hooks.useReducer; export import useRef = _hooks.useRef; export import useState = _hooks.useState; // React 18 hooks export import useInsertionEffect = _hooks.useLayoutEffect; export function useTransition(): [false, typeof startTransition]; export function useDeferredValue(val: T): T; export function useSyncExternalStore( subscribe: (flush: () => void) => () => void, getSnapshot: () => T ): T; // Preact Defaults export import Context = preact.Context; export import ContextType = preact.ContextType; export import RefObject = preact.RefObject; export import Component = preact.Component; export import FunctionComponent = preact.FunctionComponent; export import ComponentType = preact.ComponentType; export import ComponentClass = preact.ComponentClass; export import FC = preact.FunctionComponent; export import createContext = preact.createContext; export import Ref = preact.Ref; export import createRef = preact.createRef; export import Fragment = preact.Fragment; export import createElement = preact.createElement; export import cloneElement = preact.cloneElement; export import ComponentProps = preact.ComponentProps; export import ReactNode = preact.ComponentChild; export import ReactElement = preact.VNode; export import Consumer = preact.Consumer; export import ErrorInfo = preact.ErrorInfo; // Suspense export import Suspense = _Suspense.Suspense; export import lazy = _Suspense.lazy; export import SuspenseList = _SuspenseList.SuspenseList; // Compat export import StrictMode = preact.Fragment; export const version: string; export function startTransition(cb: () => void): void; // HTML export interface HTMLAttributes extends JSXInternal.HTMLAttributes {} export interface HTMLProps extends JSXInternal.AllHTMLAttributes, preact.ClassAttributes {} export interface AllHTMLAttributes extends JSXInternal.AllHTMLAttributes {} export import DetailedHTMLProps = JSXInternal.DetailedHTMLProps; export import CSSProperties = JSXInternal.CSSProperties; export interface SVGProps extends JSXInternal.SVGAttributes, preact.ClassAttributes {} interface SVGAttributes extends JSXInternal.SVGAttributes {} interface ReactSVG extends JSXInternal.IntrinsicSVGElements {} export import AriaAttributes = JSXInternal.AriaAttributes; export import HTMLAttributeReferrerPolicy = JSXInternal.HTMLAttributeReferrerPolicy; export import HTMLAttributeAnchorTarget = JSXInternal.HTMLAttributeAnchorTarget; export import HTMLInputTypeAttribute = JSXInternal.HTMLInputTypeAttribute; export import HTMLAttributeCrossOrigin = JSXInternal.HTMLAttributeCrossOrigin; export import AnchorHTMLAttributes = JSXInternal.AnchorHTMLAttributes; export import AudioHTMLAttributes = JSXInternal.AudioHTMLAttributes; export import AreaHTMLAttributes = JSXInternal.AreaHTMLAttributes; export import BaseHTMLAttributes = JSXInternal.BaseHTMLAttributes; export import BlockquoteHTMLAttributes = JSXInternal.BlockquoteHTMLAttributes; export import ButtonHTMLAttributes = JSXInternal.ButtonHTMLAttributes; export import CanvasHTMLAttributes = JSXInternal.CanvasHTMLAttributes; export import ColHTMLAttributes = JSXInternal.ColHTMLAttributes; export import ColgroupHTMLAttributes = JSXInternal.ColgroupHTMLAttributes; export import DataHTMLAttributes = JSXInternal.DataHTMLAttributes; export import DetailsHTMLAttributes = JSXInternal.DetailsHTMLAttributes; export import DelHTMLAttributes = JSXInternal.DelHTMLAttributes; export import DialogHTMLAttributes = JSXInternal.DialogHTMLAttributes; export import EmbedHTMLAttributes = JSXInternal.EmbedHTMLAttributes; export import FieldsetHTMLAttributes = JSXInternal.FieldsetHTMLAttributes; export import FormHTMLAttributes = JSXInternal.FormHTMLAttributes; export import IframeHTMLAttributes = JSXInternal.IframeHTMLAttributes; export import ImgHTMLAttributes = JSXInternal.ImgHTMLAttributes; export import InsHTMLAttributes = JSXInternal.InsHTMLAttributes; export import InputHTMLAttributes = JSXInternal.InputHTMLAttributes; export import KeygenHTMLAttributes = JSXInternal.KeygenHTMLAttributes; export import LabelHTMLAttributes = JSXInternal.LabelHTMLAttributes; export import LiHTMLAttributes = JSXInternal.LiHTMLAttributes; export import LinkHTMLAttributes = JSXInternal.LinkHTMLAttributes; export import MapHTMLAttributes = JSXInternal.MapHTMLAttributes; export import MenuHTMLAttributes = JSXInternal.MenuHTMLAttributes; export import MediaHTMLAttributes = JSXInternal.MediaHTMLAttributes; export import MetaHTMLAttributes = JSXInternal.MetaHTMLAttributes; export import MeterHTMLAttributes = JSXInternal.MeterHTMLAttributes; export import QuoteHTMLAttributes = JSXInternal.QuoteHTMLAttributes; export import ObjectHTMLAttributes = JSXInternal.ObjectHTMLAttributes; export import OlHTMLAttributes = JSXInternal.OlHTMLAttributes; export import OptgroupHTMLAttributes = JSXInternal.OptgroupHTMLAttributes; export import OptionHTMLAttributes = JSXInternal.OptionHTMLAttributes; export import OutputHTMLAttributes = JSXInternal.OutputHTMLAttributes; export import ParamHTMLAttributes = JSXInternal.ParamHTMLAttributes; export import ProgressHTMLAttributes = JSXInternal.ProgressHTMLAttributes; export import SlotHTMLAttributes = JSXInternal.SlotHTMLAttributes; export import ScriptHTMLAttributes = JSXInternal.ScriptHTMLAttributes; export import SelectHTMLAttributes = JSXInternal.SelectHTMLAttributes; export import SourceHTMLAttributes = JSXInternal.SourceHTMLAttributes; export import StyleHTMLAttributes = JSXInternal.StyleHTMLAttributes; export import TableHTMLAttributes = JSXInternal.TableHTMLAttributes; export import TextareaHTMLAttributes = JSXInternal.TextareaHTMLAttributes; export import TdHTMLAttributes = JSXInternal.TdHTMLAttributes; export import ThHTMLAttributes = JSXInternal.ThHTMLAttributes; export import TimeHTMLAttributes = JSXInternal.TimeHTMLAttributes; export import TrackHTMLAttributes = JSXInternal.TrackHTMLAttributes; export import VideoHTMLAttributes = JSXInternal.VideoHTMLAttributes; // Events export import TargetedEvent = JSXInternal.TargetedEvent; export import ChangeEvent = JSXInternal.TargetedEvent; export import ClipboardEvent = JSXInternal.TargetedClipboardEvent; export import CompositionEvent = JSXInternal.TargetedCompositionEvent; export import DragEvent = JSXInternal.TargetedDragEvent; export import PointerEvent = JSXInternal.TargetedPointerEvent; export import FocusEvent = JSXInternal.TargetedFocusEvent; export import FormEvent = JSXInternal.TargetedEvent; export import InvalidEvent = JSXInternal.TargetedEvent; export import KeyboardEvent = JSXInternal.TargetedKeyboardEvent; export import MouseEvent = JSXInternal.TargetedMouseEvent; export import TouchEvent = JSXInternal.TargetedTouchEvent; export import UIEvent = JSXInternal.TargetedUIEvent; export import AnimationEvent = JSXInternal.TargetedAnimationEvent; export import TransitionEvent = JSXInternal.TargetedTransitionEvent; // Event Handler Types export import EventHandler = JSXInternal.EventHandler; export import ChangeEventHandler = JSXInternal.GenericEventHandler; export import ClipboardEventHandler = JSXInternal.ClipboardEventHandler; export import CompositionEventHandler = JSXInternal.CompositionEventHandler; export import DragEventHandler = JSXInternal.DragEventHandler; export import PointerEventHandler = JSXInternal.PointerEventHandler; export import FocusEventHandler = JSXInternal.FocusEventHandler; export import FormEventHandler = JSXInternal.GenericEventHandler; export import InvalidEventHandler = JSXInternal.GenericEventHandler; export import KeyboardEventHandler = JSXInternal.KeyboardEventHandler; export import MouseEventHandler = JSXInternal.MouseEventHandler; export import TouchEventHandler = JSXInternal.TouchEventHandler; export import UIEventHandler = JSXInternal.UIEventHandler; export import AnimationEventHandler = JSXInternal.AnimationEventHandler; export import TransitionEventHandler = JSXInternal.TransitionEventHandler; export function createPortal( vnode: preact.ComponentChildren, container: preact.ContainerNode ): preact.VNode; export function render( vnode: preact.ComponentChild, parent: preact.ContainerNode, callback?: () => void ): Component | null; export function hydrate( vnode: preact.ComponentChild, parent: preact.ContainerNode, callback?: () => void ): Component | null; export function unmountComponentAtNode( container: preact.ContainerNode ): boolean; export function createFactory( type: preact.VNode['type'] ): ( props?: any, ...children: preact.ComponentChildren[] ) => preact.VNode; export function isValidElement(element: any): boolean; export function isFragment(element: any): boolean; export function isMemo(element: any): boolean; export function findDOMNode( component: preact.Component | Element ): Element | null; export abstract class PureComponent< P = {}, S = {}, SS = any > extends preact.Component { isPureReactComponent: boolean; } export type MemoExoticComponent> = preact.FunctionComponent> & { readonly type: C; }; export function memo

( component: preact.FunctionalComponent

, comparer?: (prev: P, next: P) => boolean ): preact.FunctionComponent

; export function memo>( component: C, comparer?: ( prev: preact.ComponentProps, next: preact.ComponentProps ) => boolean ): C; export interface RefAttributes extends preact.Attributes { ref?: preact.Ref | undefined; } /** * @deprecated Please use `ForwardRefRenderFunction` instead. */ export interface ForwardFn

{ (props: P, ref: ForwardedRef): preact.ComponentChild; displayName?: string; } export interface ForwardRefRenderFunction { (props: P, ref: ForwardedRef): preact.ComponentChild; displayName?: string; } export interface ForwardRefExoticComponent

extends preact.FunctionComponent

{ defaultProps?: Partial

| undefined; } export function forwardRef( fn: ForwardRefRenderFunction ): preact.FunctionalComponent & { ref?: preact.Ref }>; export type PropsWithoutRef

= Omit; interface MutableRefObject { current: T; } export type ForwardedRef = | ((instance: T | null) => void) | MutableRefObject | null; export type ElementType< P = any, Tag extends keyof JSX.IntrinsicElements = keyof JSX.IntrinsicElements > = | { [K in Tag]: P extends JSX.IntrinsicElements[K] ? K : never }[Tag] | ComponentType

; export type ComponentPropsWithoutRef = PropsWithoutRef< ComponentProps >; export type ComponentPropsWithRef = C extends new ( props: infer P ) => Component ? PropsWithoutRef

& RefAttributes> : ComponentProps; export type ElementRef< C extends | ForwardRefExoticComponent | { new (props: any): Component } | ((props: any) => ReactNode) | keyof JSXInternal.IntrinsicElements > = 'ref' extends keyof ComponentPropsWithRef ? NonNullable['ref']> extends RefAttributes< infer Instance >['ref'] ? Instance : never : never; export function flushSync(fn: () => R): R; export function flushSync(fn: (a: A) => R, a: A): R; export function unstable_batchedUpdates( callback: (arg?: any) => void, arg?: any ): void; export type PropsWithChildren

= P & { children?: preact.ComponentChildren | undefined; }; export const Children: { map( children: T | T[], fn: (child: T, i: number) => R ): R[]; forEach( children: T | T[], fn: (child: T, i: number) => void ): void; count: (children: preact.ComponentChildren) => number; only: (children: preact.ComponentChildren) => preact.ComponentChild; toArray: (children: preact.ComponentChildren) => preact.VNode<{}>[]; }; // scheduler export const unstable_ImmediatePriority: number; export const unstable_UserBlockingPriority: number; export const unstable_NormalPriority: number; export const unstable_LowPriority: number; export const unstable_IdlePriority: number; export function unstable_runWithPriority( priority: number, callback: () => void ): void; export const unstable_now: () => number; }