import type * as React from "react";
/** Identical to `import("react-dom").Container`, copied here to avoid an unncessary type dependency. */
type Container = Element | Document | DocumentFragment;
/**
 * Generic options interface for Blueprint APIs which imperatively mount a React component to the
 * DOM using `"react-dom"`: `OverlayToaster.create`, `showContextMenu`, etc.
 *
 * The `domRenderer` currently defaults to React 16's `ReactDOM.render()`; a future version of Blueprint
 * will default to using React 18's `createRoot()` instead, but it's possible to configure this
 * function to use the newer API by overriding the default.
 */
export interface DOMMountOptions<P> {
    /**
     * A new DOM element will be created and appended to this container.
     *
     * @default document.body
     */
    container?: HTMLElement;
    /**
     * A function to render the React component onto a newly created DOM element.
     *
     * @default ReactDOM.render
     */
    domRenderer?: (element: React.ReactElement<P>, container: Container | null) => React.Component<P, any> | Element | void;
    /**
     * A function to unmount the React component from its DOM element.
     *
     * @default ReactDOM.unmountComponentAtNode
     */
    domUnmounter?: (container: Element | DocumentFragment) => void;
}
export {};
