import { Component } from './define-component'; import { HeadConfig } from './head'; export interface RenderToStringResult { /** HTML del body (lo que va dentro de
). */ html: string; /** HeadConfig agregado por useHead() en cualquier parte del árbol. */ head: HeadConfig; } /** * Renderiza un componente compilado a HTML string. No requiere DOM. * * El `useHead()` que se llame en cualquier parte del árbol acumula su config * en el `head` retornado. Los componentes hijos también se renderean recursivamente. * * @example * import { renderToString } from 'arckode-ui/server' * import AboutPage from './pages/about.ark' * * const { html, head } = renderToString(AboutPage, { initialUserId: '42' }) * // → html = "
...
" * // → head = { title: 'Sobre · App', description: '...', meta: [...], link: [...] } */ export declare function renderToString(component: Component, props?: Record): RenderToStringResult; /** * Inyecta el `head` y `body` resultantes del SSR en un template HTML base. * El template típicamente es el `index.html` del proyecto post-`vite build`. * * Estrategia de inyección: * - ``: si existe, se reemplaza; si no, se inserta antes de `</head>`. * - `<meta name="description">`: sobrescribe si existe, sino lo agrega. * - meta arbitrarios (og, twitter, etc.): se agregan antes de `</head>` (idempotente por name/property). * - link: se agregan antes de `</head>` (idempotente por rel). * - htmlAttrs / bodyAttrs: se mergean en los tags existentes. * - body: reemplaza el contenido de `<div id="app">`. */ export declare function injectHeadAndBody(template: string, head: HeadConfig, body: string, options?: { mountSelector?: string; }): string; //# sourceMappingURL=server-renderer.d.ts.map