import type { SSRResult } from '../../../../types/public/internal.js'; import type { RenderQueue, StackItem, QueueNode } from './types.js'; import type { NodePool } from './pool.js'; /** * Get JSX queue rendering statistics */ export declare function getJSXQueueStats(): { vnodeCount: number; elementCount: number; componentCount: number; hasLogged: boolean; }; /** * Reset JSX queue rendering statistics */ export declare function resetJSXQueueStats(): void; /** * Processes JSX VNodes and adds them to the render queue. * Unlike renderJSX(), this doesn't build strings recursively - * it pushes nodes directly to the queue for batching and memory efficiency. * * This function handles JSX created by astro:jsx (JSX in .astro files). * It converts VNodes to queue nodes, enabling content-aware pooling and batching. * * @param vnode - JSX VNode to process * @param result - SSR result context * @param queue - Queue to append nodes to * @param pool - Node pool for memory efficiency * @param stack - Stack for depth-first traversal * @param parent - Parent queue node (for tracking) * @param metadata - Metadata passed through stack (props, slots, displayName) */ export declare function renderJSXToQueue(vnode: any, result: SSRResult, queue: RenderQueue, pool: NodePool, stack: StackItem[], parent: QueueNode | null, metadata?: StackItem['metadata']): void;