import { type CSSProperties } from 'react';
/**
* Id of the element Primer portals render under.
*
* Exported because a host may need to mark that element as its own — the
* JupyterLab theming of jupyter-react adds `jp-ThemedContainer` to it, so
* the rules JupyterLab scopes to that class reach portaled content too.
*/
export declare const PRIMER_PORTAL_ROOT_ID = "__primerPortalRoot__";
type Colormode = 'light' | 'dark' | 'auto';
/**
* Ensure we define a root for Primer portal root.
*
* Creates a dedicated `
` appended to `` with a high z-index
* so that portaled content (overlays, tooltips, action menus) renders
* above other positioned UI elements such as chat panels.
*
* @see https://github.com/primer/react/blob/main/packages/react/src/Portal/Portal.tsx#L23
* @see https://github.com/primer/react/blob/030fe020b48b7f12c2994c6614e5d4191fe764ee/src/Portal/Portal.tsx#L33
*/
export declare const setupPrimerPortals: (colormode?: Colormode) => void;
/**
* The element Primer portals render under, when it has been set up.
*
* `setupPrimerPortals` creates it; before that call there is none, and this
* answers `null` rather than inventing one.
*/
export declare const getPrimerPortalRoot: () => HTMLElement | null;
/**
* Sync a set of CSS properties (including CSS custom properties) to
* `document.body` so that Primer portal content — which is a DOM child
* of ``, not of the React-tree `` element — inherits
* the same theme tokens and cascade properties (font, color, background)
* as the rest of the application.
*
* This function is **idempotent**: calling it again replaces the
* properties from the previous call and removes any stale ones.
*
* Typical usage: call from `DatalayerThemeProvider`'s `useEffect` so
* portals stay in sync whenever theme or color-mode changes.
*/
export declare function syncPortalThemeStyles(styles: CSSProperties): void;
export default setupPrimerPortals;