/** @noSelfInFile */ import { FunctionComponent as FunctionalComponentType } from "./Component"; import { Children, NodeProps, VNode } from "./element"; import { Context } from "./createContext"; /** * A fleshed out vdom, with pointers to instantiated components or frames. */ export interface Instance { vnode: VNode

; childInstances: Instance[]; component?: ClassComponent

| undefined; hostFrame?: T; } export declare function render(vnode: VNode

, container: T): void; export declare function reconcile(parentFrame: T | undefined, instance: Instance | null, vnode: null, contexts?: Contexts): null; export declare function reconcile(parentFrame: T | undefined, instance: Instance | null, vnode: VNode, contexts?: Contexts): Instance; export declare const scheduleUpdate: (instance: Instance) => void; export declare type Contexts = { [contextId: number]: InstanceType["Provider"]> | undefined; }; export declare abstract class ClassComponent { props: NodeProps

; static context?: Context; state: S; contexts: Contexts; componentWillUnmount?: () => void; componentDidCatch?: (error: unknown) => void; constructor(props: NodeProps

); setState(partialState: Partial): void; set instance(instance: Instance); get instance(): Instance; abstract render(props: NodeProps

, contexts: Contexts): Children; } export declare type ComponentClass

= { new (props: NodeProps

): ClassComponent & E; context?: Context; }; export declare const flushUpdates: () => void; export declare const test: { functionalComponentClasses: WeakMap, ComponentClass>; };