import type { EcoPagesAppConfig } from '../../types/internal-types.js'; import { type BuildExecutor } from '../build-adapter.js'; export type BuildProfile = 'server-entry' | 'route-module' | 'browser-hmr'; export interface BuildRuntime { getProfile(profile: BuildProfile): BuildExecutor; dispose(): Promise; } export declare function getBuildRuntime(appConfig: EcoPagesAppConfig): BuildRuntime | undefined; /** * Returns the installed build runtime, installing it when missing. */ export declare function requireBuildRuntime(appConfig: EcoPagesAppConfig): BuildRuntime; /** * Installs profile-based build executors for one app instance. * * @remarks * For Rolldown ownership, server-entry stays serialized single-flight while * route-module and browser-HMR run in parallel one-shot builds. Vite-host * profiles wrap a boundary marker and reject framework-owned build attempts. * Profiles do not inject app plugins — assemble complete * {@link BuildOptions} with {@link createServerBuildRequest} / * {@link createBrowserBuildRequest} (or {@link BrowserBundleService}) first. */ export declare function installBuildRuntime(appConfig: EcoPagesAppConfig): BuildRuntime; /** * No-op retained for server teardown call sites. */ export declare function disposeAppBuildRuntime(appConfig: EcoPagesAppConfig): Promise;