import type { ComputeFramework } from "./types.ts";
/**
 * Framework capability registry — the single source of truth for what each
 * supported framework is and can do. Commands, config validation, detection,
 * and prompts all query this table; adding a framework means adding one
 * entry here plus its build/run strategy implementation.
 */
export type FrameworkBuildType = "nextjs" | "nuxt" | "astro" | "nestjs" | "tanstack-start" | "custom" | "bun";
export interface FrameworkDescriptor {
    readonly key: ComputeFramework;
    readonly displayName: string;
    /** Build/deploy strategy this framework uses. */
    readonly buildType: FrameworkBuildType;
    /** Accepted user-facing spellings, lowercased, including the key. */
    readonly aliases: readonly string[];
    /** Dependencies whose presence detects this framework. */
    readonly detectPackages: readonly string[];
    /** Config files whose presence detects this framework. */
    readonly detectConfigFiles: readonly string[];
    /** Consumes a user-provided source entrypoint instead of build output. */
    readonly usesEntrypoint: boolean;
    /** Entrypoint assumed when the package defines none. */
    readonly defaultEntrypoint: string | null;
    /** Has a local dev server (`app run`) in the current preview. */
    readonly hasLocalDevServer: boolean;
    /** Port the framework's built app listens on by default; the gateway routes here unless overridden. */
    readonly defaultHttpPort: number;
}
export declare const NEXT_CONFIG_FILENAMES: readonly ["next.config.js", "next.config.mjs", "next.config.ts", "next.config.mts"];
export declare const NUXT_CONFIG_FILENAMES: readonly ["nuxt.config.js", "nuxt.config.mjs", "nuxt.config.cjs", "nuxt.config.ts", "nuxt.config.mts"];
export declare const ASTRO_CONFIG_FILENAMES: readonly ["astro.config.js", "astro.config.mjs", "astro.config.cjs", "astro.config.ts", "astro.config.mts"];
export declare const SVELTE_CONFIG_FILENAMES: readonly ["svelte.config.js", "svelte.config.mjs", "svelte.config.cjs", "svelte.config.ts"];
export declare const FRAMEWORKS: readonly FrameworkDescriptor[];
export declare const FRAMEWORK_KEYS: ("nextjs" | "nuxt" | "astro" | "hono" | "nestjs" | "tanstack-start" | "sveltekit" | "elysia" | "express" | "fastify" | "custom" | "bun")[];
/** Build types whose preview build consumes committed build settings. */
export declare const CONFIG_BACKED_BUILD_TYPES: readonly ["nextjs", "nuxt", "astro", "nestjs", "tanstack-start", "custom", "bun"];
export type ConfigBackedBuildType = (typeof CONFIG_BACKED_BUILD_TYPES)[number];
/** Build types that consume a user-provided source entrypoint. */
export declare const ENTRYPOINT_BUILD_TYPES: readonly FrameworkBuildType[];
/** Build types `app run` can start a local dev server for. */
export declare const LOCAL_DEV_BUILD_TYPES: readonly FrameworkBuildType[];
/**
 * Default HTTP port for a build type, sourced from the framework registry so
 * build strategies and deploy front doors agree on where the gateway routes.
 */
export declare function defaultHttpPortForBuildType(buildType: FrameworkBuildType): number;
export declare function frameworkByKey(key: ComputeFramework): FrameworkDescriptor;
export declare function frameworkFromAlias(value: string): FrameworkDescriptor | null;
export declare function isConfigBackedBuildType(value: string): value is ConfigBackedBuildType;
//# sourceMappingURL=frameworks.d.ts.map