import * as React from "react"; export interface OverlayPortalProviderProps { /** * The element overlays are rendered into. Pass the shadow root, or any element inside it. * `undefined` restores the default, so a subtree can opt back out. */ container: Element | undefined; children: React.ReactNode; } export declare function OverlayPortalProvider({ container, children }: OverlayPortalProviderProps): React.JSX.Element; export interface ThemeScopeProps extends React.HTMLAttributes { children: React.ReactNode; } /** * A themed region whose overlays keep the region's tokens. * * Put the theme on it — `style={tenantTheme(hex).vars}`, `data-tenant="acme"`, `className="dark"` * — or on any ancestor, or in a stylesheet that never mentions React at all. The scope is read * from the DOM, not from props, so all three paths behave the same. * * The element itself is `display: contents` by default, so dropping it into an existing flex or * grid row changes no layout; pass `style={{ display: "block" }}` if you want a box. */ export declare function ThemeScope({ children, style, ...props }: ThemeScopeProps): React.JSX.Element; /** * The container this overlay should render into. An explicit prop wins, so one panel can be placed * elsewhere without unmounting the provider around it. * * Not exported from the public barrel: this is a contract between the provider and the overlays * this library ships, not a knob for consumers — a consumer that needs the value has a provider. * * The effect re-reads the enclosing `ThemeScope` when an overlay mounts. A `MutationObserver` * covers a theme changed by an attribute; this covers the rest — a stylesheet added late, a * `@media` or `@supports` branch that flipped since the snapshot was taken. It costs one enumerate * + diff (1.2ms median over 2087 properties, measured in Chromium) per overlay mount and NOTHING * when no `ThemeScope` is above, because the context is then `undefined`. */ export declare function useOverlayPortalContainer(override?: Element): Element | undefined;