import type { ManifestData, RouteData, SSRManifest } from '../../@types/astro.js';
import { AstroIntegrationLogger } from '../logger/core.js';
export { deserializeManifest } from './common.js';
export interface RenderOptions {
    routeData?: RouteData;
    locals?: object;
}
export interface RenderErrorOptions {
    routeData?: RouteData;
    response?: Response;
    status: 404 | 500;
    /**
     * Whether to skip onRequest() while rendering the error page. Defaults to false.
     */
    skipMiddleware?: boolean;
}
export declare class App {
    #private;
    constructor(manifest: SSRManifest, streaming?: boolean);
    getAdapterLogger(): AstroIntegrationLogger;
    set setManifestData(newManifestData: ManifestData);
    removeBase(pathname: string): string;
    match(request: Request): RouteData | undefined;
    render(request: Request, options?: RenderOptions): Promise<Response>;
    /**
     * @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: Request, routeData?: RouteData, locals?: object): Promise<Response>;
    setCookieHeaders(response: Response): Generator<string, string[], unknown>;
}
