import type { ComponentInstance, MiddlewareHandler, RouteData, RouteType, RuntimeMode, SSRLoadedRenderer, SSRManifest, SSRResult, AstroUserConfig } from '../@types/astro.js';
/**
 * Options to be passed when rendering a route
 */
export type ContainerRenderOptions = {
    /**
     * If your component renders slots, that's where you want to fill the slots
     */
    slots?: Record<string, any>;
    request?: Request;
    params?: string[];
    locals?: App.Locals;
    status?: number;
    routeType?: RouteType;
};
type AstroContainerOptions = {
    mode?: RuntimeMode;
    streaming?: boolean;
    renderers?: SSRLoadedRenderer[];
    astroConfig?: AstroUserConfig;
    middleware?: MiddlewareHandler;
    resolve?: SSRResult['resolve'];
    manifest?: SSRManifest;
};
export declare class unstable_AstroContainer {
    #private;
    private constructor();
    containerResolve(_specifier: string): Promise<string>;
    static create(containerOptions?: AstroContainerOptions): Promise<unstable_AstroContainer>;
    insertRoute({ path, componentInstance, params, type, }: {
        path: string;
        componentInstance: ComponentInstance;
        params?: string[];
        type?: RouteType;
    }): RouteData;
    renderToString(component: ComponentInstance, options?: ContainerRenderOptions): Promise<string>;
    renderToResponse(component: ComponentInstance, options?: ContainerRenderOptions): Promise<Response>;
    createRoute(url: URL, params: string[], type: RouteType): RouteData;
}
export {};
