/** * Shared React Router entry-server handler for agent-native templates. * * Templates can keep the shared behavior while importing `ServerRouter` from * their own app-local `react-router` dependency: * * import { ServerRouter } from "react-router"; * import { createDocumentRequestHandler, streamTimeout } from "@agent-native/core/server/entry-server"; * * const handleDocumentRequest = createDocumentRequestHandler(ServerRouter); * export { streamTimeout }; * export default handleDocumentRequest; * * Keeping `ServerRouter` app-local matters in pnpm/published-package installs: * React Router's ``, ``, and `` read framework * context from the same package singleton that rendered ``. * * The superset behavior covers all variants observed across the template fleet: * - HEAD requests: return early with status/headers, no stream body * - .well-known rejection: 404 before rendering (avoids Chrome DevTools probe noise) * - streamTimeout + AbortController: abort render after 5 s, preserving * partial output already streamed to the client * - bot/allReady detection: wait for full render for bots and SPA mode so * crawlers receive complete HTML * - wrapWithAnalytics: applied unconditionally — it is a plain import (never * conditionally undefined), so the `typeof === "function"` guards that * appeared in older template copies were dead code and are removed here */ import type { ReactElement } from "react"; import type { EntryContext, RouterContextProvider } from "react-router"; export declare const streamTimeout = 5000; type ServerRouterComponent = (props: { context: EntryContext; url: string; }) => ReactElement; export type DocumentRequestHandler = (request: Request, responseStatusCode: number, responseHeaders: Headers, routerContext: EntryContext, loadContext: RouterContextProvider) => Promise; export declare function createDocumentRequestHandler(ServerRouter: ServerRouterComponent): DocumentRequestHandler; /** * Backwards-compatible default for older generated apps. * * New templates should call `createDocumentRequestHandler(ServerRouter)` from * their own `entry.server.tsx` so React Router framework context always comes * from the app-local singleton. */ export declare function handleDocumentRequest(request: Request, responseStatusCode: number, responseHeaders: Headers, routerContext: EntryContext, loadContext: RouterContextProvider): Promise; export default handleDocumentRequest; //# sourceMappingURL=entry-server.d.ts.map