import type { FrameworkBuildType } from "./config/frameworks.ts";
/**
 * The build command and output directory for a framework build, with a
 * human-readable source for each value (for display by a consumer). Resolving
 * settings is location-agnostic: package manager and binaries come from the
 * app's workspace, not the current working directory.
 */
export interface BuildSettings {
    buildCommand: string | null;
    buildCommandSource: string | null;
    outputDirectory: string;
    outputDirectorySource: string | null;
    entrypoint?: string;
    entrypointSource?: string | null;
}
/**
 * Resolves build settings from framework inference: the user's
 * `package.json` build script (run via the detected package manager) over the
 * framework default, plus the framework's output directory (reading
 * `next.config` `distDir` for Next.js).
 */
export declare function resolveBuildSettings(options: {
    appPath: string;
    buildType: FrameworkBuildType;
    signal?: AbortSignal;
}): Promise<BuildSettings>;
/**
 * Build settings when committed config owns them: configured fields win,
 * omitted fields fall back to framework inference. `source` labels configured
 * values with the config filename so a consumer can show provenance.
 */
export declare function resolveConfiguredBuildSettings(options: {
    appPath: string;
    buildType: FrameworkBuildType;
    configured: {
        command: string | null | undefined;
        outputDirectory: string | undefined;
        entrypoint?: string | undefined;
    };
    /** Label for configured values, e.g. the config file basename. */
    source: string;
    signal?: AbortSignal;
}): Promise<BuildSettings>;
/** Joins posix-style path segments, collapsing duplicate separators. */
export declare function joinPosix(...parts: string[]): string;
/**
 * Maps a Next.js standalone output directory (e.g. ".next/standalone") back to
 * its output root (".next"), so static assets can be staged alongside it.
 */
export declare function nextOutputRootFromStandaloneDirectory(outputDirectory: string): string;
interface StaticNextConfig {
    distDir?: string;
    output?: "standalone" | "export";
}
/** Best-effort static read of `distDir`/`output` from a next.config source. */
export declare function readStaticNextConfig(content: string): StaticNextConfig;
export {};
//# sourceMappingURL=build-settings.d.ts.map