// Type definitions for React (react-dom) 16.9 // Project: http://facebook.github.io/react/ // Definitions by: Asana // AssureSign // Microsoft // MartynasZilinskas // Josh Rutherford // Jessica Franco // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 export as namespace ReactDOM; import { ReactInstance, Component, ComponentState, ReactElement, SFCElement, CElement, DOMAttributes, DOMElement, ReactNode, ReactPortal } from 'react'; export function findDOMNode(instance: ReactInstance | null | undefined): Element | null | Text; export function unmountComponentAtNode(container: Element): boolean; export function createPortal(children: ReactNode, container: Element, key?: null | string): ReactPortal; export const version: string; export const render: Renderer; export const hydrate: Renderer; export function unstable_batchedUpdates(callback: (a: A, b: B) => any, a: A, b: B): void; export function unstable_batchedUpdates(callback: (a: A) => any, a: A): void; export function unstable_batchedUpdates(callback: () => any): void; export function unstable_renderSubtreeIntoContainer( parentComponent: Component, element: DOMElement, T>, container: Element, callback?: (element: T) => any): T; export function unstable_renderSubtreeIntoContainer>( parentComponent: Component, element: CElement, container: Element, callback?: (component: T) => any): T; export function unstable_renderSubtreeIntoContainer

( parentComponent: Component, element: ReactElement

, container: Element, callback?: (component?: Component | Element) => any): Component | Element | void; export interface Renderer { // Deprecated(render): The return value is deprecated. // In future releases the render function's return type will be void. ( element: DOMElement, T>, container: Element | null, callback?: () => void ): T; ( element: Array, any>>, container: Element | null, callback?: () => void ): Element; ( element: SFCElement | Array>, container: Element | null, callback?: () => void ): void; >( element: CElement, container: Element | null, callback?: () => void ): T; ( element: Array>>, container: Element | null, callback?: () => void ): Component;

( element: ReactElement

, container: Element | null, callback?: () => void ): Component | Element | void; ( element: ReactElement[], container: Element | null, callback?: () => void ): Component | Element | void; } export interface Work { then(onCommit?: () => void): void; } export interface Batch { commit(): void; render(children: React.ReactNode): Work; then(onComplete?: () => void): void; } export interface RootOptions { hydrate?: boolean; } export interface SyncRoot { render(children: React.ReactNode, callback?: () => void): Work; unmount(callback?: () => void): void; } export function unstable_createSyncRoot(container: Element, options?: RootOptions): SyncRoot; export interface Root extends SyncRoot { createBatch(): Batch; } export function unstable_createRoot( container: Element, options?: RootOptions ): Root;