/** * High-level hook for rendering UI from schema * * Provides information about active toolbars, sidebars, and modals. * Always includes isOpen state so renderers can control animations. * * Use with Svelte's component binding to render toolbars and sidebars. * * @example * ```svelte * * * {#if topMainToolbar} * {@const ToolbarRenderer = topMainToolbar.renderer} * * {/if} * ``` */ export declare function useSchemaRenderer(getDocumentId: () => string | null): { /** * Get toolbar information by placement and slot * * @param placement - 'top' | 'bottom' | 'left' | 'right' * @param slot - Slot name (e.g. 'main', 'secondary') * @returns Toolbar info or null if no toolbar in slot */ getToolbarInfo: (placement: "top" | "bottom" | "left" | "right", slot: string) => { renderer: import('..').ToolbarRenderer; schema: import('../../lib').ToolbarSchema; documentId: string; isOpen: boolean; onClose: (() => void) | undefined; } | null; /** * Get sidebar information by placement and slot * * @param placement - 'left' | 'right' | 'top' | 'bottom' * @param slot - Slot name (e.g. 'main', 'secondary', 'inspector') * @returns Sidebar info or null if no sidebar in slot */ getSidebarInfo: (placement: "left" | "right" | "top" | "bottom", slot: string) => { renderer: import('..').SidebarRenderer; schema: import('../../lib').SidebarSchema; documentId: string; isOpen: boolean; onClose: () => void; sidebarProps: Record | undefined; } | null; /** * Get modal information (if active) * * Supports animation lifecycle: * - isOpen: true = visible * - isOpen: false = animate out (modal still rendered) * - onExited called after animation → modal removed * * @returns Modal info or null if no modal active */ getModalInfo: () => { renderer: import('..').ModalRenderer; schema: import('../../lib').ModalSchema; documentId: string; isOpen: boolean; onClose: () => void; onExited: () => void; modalProps: Record | undefined; } | null; /** * Helper: Get all active toolbars for this document * Useful for batch rendering or debugging */ getActiveToolbars: () => { placement: string; slot: string; toolbarId: string; isOpen: boolean; }[]; /** * Helper: Get all active sidebars for this document * Useful for batch rendering or debugging */ getActiveSidebars: () => { placement: string; slot: string; sidebarId: string; isOpen: boolean; }[]; /** * Get overlay information for all enabled overlays * * Overlays are floating components positioned over the document content. * Unlike modals, multiple overlays can be visible and they don't block interaction. * Overlay visibility is controlled by the enabledOverlays state. * * @example * ```svelte * * * {#each overlays as overlay (overlay.schema.id)} * {@const OverlayRenderer = overlay.renderer} * * {/each} * ``` */ getOverlaysInfo: () => { renderer: import('..').OverlayRenderer; schema: import('../../lib').OverlaySchema; documentId: string; }[]; };