/// import { App } from './index.js'; import type { IncomingMessage, ServerResponse } from 'node:http'; import type { RouteData } from '../../@types/astro.js'; import type { RenderOptions } from './index.js'; import type { SSRManifest } from './types.js'; export { apply as applyPolyfills } from '../polyfill.js'; /** * Allow the request body to be explicitly overridden. For example, this * is used by the Express JSON middleware. */ interface NodeRequest extends IncomingMessage { body?: unknown; } export declare class NodeApp extends App { match(req: NodeRequest | Request): RouteData | undefined; render(request: NodeRequest | Request, options?: RenderOptions): Promise; /** * @deprecated Instead of passing `RouteData` and locals individually, pass an object with `routeData` and `locals` properties. * See https://github.com/withastro/astro/pull/9199 for more information. */ render(request: NodeRequest | Request, routeData?: RouteData, locals?: object): Promise; /** * Converts a NodeJS IncomingMessage into a web standard Request. * ```js * import { NodeApp } from 'astro/app/node'; * import { createServer } from 'node:http'; * * const server = createServer(async (req, res) => { * const request = NodeApp.createRequest(req); * const response = await app.render(request); * await NodeApp.writeResponse(response, res); * }) * ``` */ static createRequest(req: NodeRequest, { skipBody }?: { skipBody?: boolean | undefined; }): Request; /** * Streams a web-standard Response into a NodeJS Server Response. * ```js * import { NodeApp } from 'astro/app/node'; * import { createServer } from 'node:http'; * * const server = createServer(async (req, res) => { * const request = NodeApp.createRequest(req); * const response = await app.render(request); * await NodeApp.writeResponse(response, res); * }) * ``` * @param source WhatWG Response * @param destination NodeJS ServerResponse */ static writeResponse(source: Response, destination: ServerResponse): Promise; } export declare function loadManifest(rootFolder: URL): Promise; export declare function loadApp(rootFolder: URL): Promise;