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" | "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 FRAMEWORKS: readonly FrameworkDescriptor[]; export declare const FRAMEWORK_KEYS: ("bun" | "nextjs" | "nuxt" | "astro" | "hono" | "nestjs" | "tanstack-start")[]; /** * Build types whose preview build consumes committed build settings. The * others (nuxt, astro) run their framework CLI and stage fixed output, so a * config `build` block has nothing to apply to. */ export declare const CONFIG_BACKED_BUILD_TYPES: readonly ["nextjs", "tanstack-start", "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