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;