/**
* 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