import { DiagnosticsTabId } from '../packages/doenetml/doenetml-inline-worker.js/dist';
import { DoenetEditor } from '../packages/doenetml/doenetml-inline-worker.js/dist';
import { DoenetViewer } from '../packages/doenetml/doenetml-inline-worker.js/dist';
import { default as React_2 } from 'react';
import { default as ReactDOM_2 } from 'react-dom/client';

export { DoenetEditor }

export { DoenetViewer }

export { React_2 as React }

export { ReactDOM_2 as ReactDOM }

/**
 * Render DoenetEditor to a container element. If `doenetMLSource` is not provided,
 * it is assumed that `container` has a `<script type="text/doenetml">` child which
 * stores the source.
 *
 * Repeat calls with the same `container` element re-render in place against a
 * cached React root, and return the *same* handle object across calls — the
 * handle's methods are stable for the lifetime of the container so callers can
 * cache it. The cache lives in a `WeakMap` keyed by container, so it releases
 * automatically once the container is GC'd. Two consumers rendering different
 * logical editor instances into the same container will therefore share state;
 * detach and re-create the container element if a fresh instance is needed.
 */
export declare function renderDoenetEditorToContainer(container: Element, doenetMLSource?: string, config?: object): {
    openDiagnosticsTab: (tabId: DiagnosticsTabId) => void;
    closeDiagnosticsPanel: () => void;
    updateRenderedView: () => void;
};

/**
 * Render DoenetViewer to a container element. If `doenetMLSource` is not provided,
 * it is assumed that `container` has a `<script type="text/doenetml">` child which
 * stores the source.
 *
 * Repeat calls with the same `container` element re-render in place against a
 * cached React root rather than mounting a competing root. The cache lives in
 * a `WeakMap`, so it releases automatically once the container is GC'd, but it
 * is *not* keyed on `doenetMLSource` or `config` — passing different values
 * across calls is treated as an update of the same logical instance, not as a
 * remount. Callers that need a fresh root should detach and re-create the
 * container element.
 */
export declare function renderDoenetViewerToContainer(container: Element, doenetMLSource?: string, config?: object): void;

export declare const version: string;

export { }
