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 ``.
* - ``: sobrescribe si existe, sino lo agrega.
* - meta arbitrarios (og, twitter, etc.): se agregan antes de `` (idempotente por name/property).
* - link: se agregan antes de `` (idempotente por rel).
* - htmlAttrs / bodyAttrs: se mergean en los tags existentes.
* - body: reemplaza el contenido de ``.
*/
export declare function injectHeadAndBody(template: string, head: HeadConfig, body: string, options?: {
mountSelector?: string;
}): string;
//# sourceMappingURL=server-renderer.d.ts.map