import { type RuntimeAdapter } from "../../../src/platform/index.js"; import { type VeryfrontConfig } from "../../../src/config/index.js"; import type { BuildOptions } from "./types.js"; /** @internal */ export declare function runWithBundlerShutdown(operation: () => Promise, stopBundler?: () => Promise): Promise; /** * Release the extensions composed for this build. * * Extensions can hold timers and other resources, and `teardownAll()` also * clears the process-global contract registry that `orchestrateExtensions` * populated. `veryfront eval` and `veryfront serve` already do this; the build * did not, so a command that composes extensions left them running. * * A teardown failure never changes the build's outcome. The build has already * produced its result by this point, and `runWithBundlerShutdown` sets the * same precedent by preserving the build error over a shutdown one. * * @internal */ export declare function releaseBuildExtensions(loader: { teardownAll: () => Promise; } | undefined): Promise; export declare function formatBuildOutputPath(projectDir: string, outputDir: string): string; /** * Decide where the build writes. * * `-o/--output` wins, then `build.outDir` from veryfront.config.ts, then * `dist`. `build.outDir` used to be read into the config object and dropped: * the build wrote (and cleared) `dist` regardless, with no warning, so the * documented way to keep the framework out of a project's own `dist/` did * nothing. A relative `outDir` resolves against the project directory, which * is how a config file naturally reads. */ export declare function resolveBuildOutputDir(projectDir: string, explicitOutputDir: string | undefined, config: Pick, options?: { clearsOutputDir?: boolean; }): string; /** * Verify configured production output containment against physical paths. * * The configured directory can be absent before the first build, so its * nearest existing ancestor is canonicalized. This exposes an intermediate * symlink before build setup can follow it while creating or clearing output. * Embedded builds do not clear or serve this directory and retain their * intentional external-output support. * * @internal */ export declare function assertConfiguredBuildOutputPhysicallyContained(adapter: Pick, projectDir: string, config: Pick, options?: { clearsOutputDir?: boolean; }): Promise; export declare function buildCommand(options: BuildOptions): Promise; //# sourceMappingURL=command.d.ts.map