import type { BuildSettings } from "./build-settings.ts"; import type { BuildStrategy } from "./build-strategy.ts"; import { type FrameworkBuildType } from "./config/frameworks.ts"; import type { BuildCommandIo } from "./workspace.ts"; /** A concrete framework build type, or `"auto"` to detect it. */ export type BuildType = FrameworkBuildType | "auto"; /** * Consumer hooks shared across `createBuildStrategy` / `resolveBuildStrategy`. * All optional: the CLI passes none, while a headless consumer injects build * `env`, taps output, and requires standalone Next output. */ export interface BuildStrategyHooks { /** Build `env` and per-line output tap, forwarded to the build command. */ io?: BuildCommandIo; /** Fail instead of falling back to the full-tree Next `next start` artifact. */ requireStandalone?: boolean; } /** * Constructs the build strategy for an explicit framework build type, wiring * through optional committed build settings and (for bun) the entrypoint. */ export declare function createBuildStrategy(options: { appPath: string; buildType: FrameworkBuildType; entrypoint?: string; buildSettings?: BuildSettings; } & BuildStrategyHooks): BuildStrategy; /** * Resolves the build strategy and the concrete build type for an app. With an * explicit `buildType` the matching strategy is returned directly; with * `"auto"` (or omitted) each framework is tried in detection order and the * first match wins, with bun as the fallback. Returning the resolved build * type lets a consumer report what it detected. */ export declare function resolveBuildStrategy(options: { appPath: string; buildType?: BuildType; entrypoint?: string; buildSettings?: BuildSettings; signal?: AbortSignal; } & BuildStrategyHooks): Promise<{ strategy: BuildStrategy; buildType: FrameworkBuildType; }>; //# sourceMappingURL=build.d.ts.map