import { VNode } from 'vue'; import { TeleportManagerHandle } from './teleport-manager'; /** * Register (or unregister) a TeleportManager for a specific grid element. * Called from TbwGrid on mount/unmount. * * @param gridEl - The `` DOM element that owns the TeleportManager. * @param tm - The TeleportManager handle, or `null` to unregister. */ export declare function setTeleportManager(gridEl: HTMLElement, tm: TeleportManagerHandle | null): void; /** * Get the TeleportManager handle for a specific grid element. * If no grid element is provided, returns the first available handle * (single-grid convenience). */ export declare function getTeleportManager(gridEl?: HTMLElement): TeleportManagerHandle | null; /** * Render a Vue VNode into a DOM container. * * - If a TeleportManager is available for the owning grid, creates a teleport * (context-preserving). * - Otherwise, falls back to `createApp()` (isolated tree, no context). * * @param container - The DOM element to render into. * @param vnode - The Vue VNode to render. * @param existingKey - Reuse a previously-returned key for updates. * @param gridEl - Explicit grid element (avoids DOM traversal). * @returns The teleport key (for future updates or removal). */ export declare function renderToContainer(container: HTMLElement, vnode: VNode, existingKey?: string, gridEl?: HTMLElement): string; /** * Remove a teleport (or fallback app) by key. */ export declare function removeFromContainer(key: string): void; /** * Remove all teleports and fallback apps for a specific grid. * Preferred over `clearAllContainers()` in multi-grid scenarios. */ export declare function clearContainersForGrid(gridEl: HTMLElement): void; /** * Remove all teleports and fallback apps across all grids. * Use `clearContainersForGrid()` in multi-grid scenarios instead. */ export declare function clearAllContainers(): void; /** * Wrap a Vue-returning render function as a vanilla `(ctx) => HTMLElement | null` * suitable for any grid renderer slot (cell renderer, group header, pinned-row * panel, etc.). Returns `null` when the Vue function returns `null` / * `undefined`, so built-in conditional renderers can opt out. * * The wrapper is a `
` so it imposes no layout. * Each call mounts a fresh teleport entry — call sites that need to update the * same container instead should use `renderToContainer` directly with * `existingKey`. */ export declare function createNodeBridge(vueFn: (ctx: TCtx) => VNode | null | undefined): (ctx: TCtx) => HTMLElement | null; /** * Reset the key counter. Only use in tests. * @internal */ export declare function resetKeyCounter(): void; /** * Reset all bridge state. Only use in tests. * Clears all TeleportManager registrations, key mappings, and fallback apps. * @internal */ export declare function resetBridge(): void; //# sourceMappingURL=teleport-bridge.d.ts.map