import type { EcoPagesAppConfig, IHmrManager } from '../../../types/internal-types.js'; import type { ProjectWatcher } from '../../../watchers/project-watcher.js'; /** * Copies source `public/` into dist and ensures the resolved assets directory exists. */ export declare function prepareRuntimePublicDir(appConfig: EcoPagesAppConfig): void; /** * Attaches the shared HMR manager to every integration exactly once per app config. * * @remarks * Runtime plugin setup must not call `integration.setHmrManager()` directly. Adapters invoke * this after the manager is enabled so late plugin init cannot double-bind integrations. */ export declare function attachHmrToIntegrations(appConfig: EcoPagesAppConfig, hmrManager: IHmrManager): void; /** * Starts background activation of every configured integration after watch-mode HMR is ready. * * @remarks * Fire-and-forget: overlaps with watcher setup so first-page render can join the same * coalesced {@link ensureIntegrationRuntimeReady} promise instead of paying a cold vendor build. * Failures are logged and do not crash the server. */ export declare function startDevWarmup(options: { appConfig: EcoPagesAppConfig; runtimeOrigin: string; }): void; /** * Releases shared dev resources in a consistent order across server adapters. * * @remarks * Bun calls `buildRuntime()` during `initialize()` when watch is enabled; Node defers * runtime creation to `completeInitialization()`. Transport-specific setup stays in * each adapter — only shared teardown lives here. */ export declare function disposeDevResources(options: { projectWatcher: ProjectWatcher | null | undefined; appConfig: EcoPagesAppConfig; hmrManager: IHmrManager | null | undefined; bridge: { destroy(): void; } | null | undefined; previewHost: { stop(): Promise; }; }): Promise;