import { ReactNode, ComponentType, HTMLAttributes } from '../react/adapter.ts'; import { BaseComponentProps, UIRenderers } from './types'; /** * UIProvider Props */ export interface UIProviderProps extends HTMLAttributes { children: ReactNode; /** * Document ID for this UI context * Required for menu rendering */ documentId: string; /** * Custom component registry * Maps component IDs to components */ components?: Record>; /** * REQUIRED: User-provided renderers * These define how toolbars, panels, and menus are displayed */ renderers: UIRenderers; /** * Optional: Container for menu portal * Defaults to document.body */ menuContainer?: HTMLElement | null; } /** * UIProvider - Single provider for all UI plugin functionality * * Manages: * - Anchor registry for menu positioning * - Component registry for custom components * - Renderers for toolbars, panels, and menus * - Automatic menu rendering * * @example * ```tsx * * {({ pluginsReady }) => ( * pluginsReady && ( * * {({ activeDocumentId }) => ( * activeDocumentId && ( * * * * ) * )} * * ) * )} * * ``` */ export declare function UIProvider({ children, documentId, components, renderers, menuContainer, ...restProps }: UIProviderProps): import("react/jsx-runtime").JSX.Element;