/// /// /// import type * as http from 'node:http'; import type { AddressInfo } from 'node:net'; import type { AstroSettings, AstroUserConfig } from '../../@types/astro'; import nodeFs from 'node:fs'; import * as vite from 'vite'; import type { LogOptions } from '../logger/core.js'; export interface Container { fs: typeof nodeFs; logging: LogOptions; settings: AstroSettings; viteConfig: vite.InlineConfig; viteServer: vite.ViteDevServer; resolvedRoot: string; configFlag: string | undefined; configFlagPath: string | undefined; restartInFlight: boolean; handle: (req: http.IncomingMessage, res: http.ServerResponse) => void; close: () => Promise; } export interface CreateContainerParams { isRestart?: boolean; logging?: LogOptions; userConfig?: AstroUserConfig; settings?: AstroSettings; fs?: typeof nodeFs; root?: string | URL; configFlag?: string; configFlagPath?: string; } export declare function createContainer(params?: CreateContainerParams): Promise; export declare function startContainer({ settings, viteServer, logging, }: Container): Promise; export declare function isStarted(container: Container): boolean; /** * Only used in tests */ export declare function runInContainer(params: CreateContainerParams, callback: (container: Container) => Promise | void): Promise;