import type { BuildMode } from './build-mode-detector';
import type { ProductionBuildOptions, ProductionBuildResult } from './production-builder';
import type { SSGConfig, SSGResult } from './ssg';
/**
 * Unified build entry point for stx applications.
 *
 * Build mode is determined by the `ssr` field in `stx.config.ts`:
 *
 * - **`ssr: false`** (default) → SSG → `dist/` (flat HTML files for S3 + CloudFront).
 *   `<script server>` blocks are executed at build time and their output is
 *   baked into the static HTML. The server block is stripped from the output.
 *
 * - **`ssr: true`** → SSR → `.output/` (server bundle for EC2 behind CloudFront).
 *   `<script server>` blocks run per-request on the Bun server.
 *
 * `<script server>` works in both modes — the `ssr` flag controls *when* it
 * runs (build time vs request time), not whether it's allowed.
 */
export declare function buildApp(options?: UnifiedBuildOptions): Promise<UnifiedBuildResult>;
export declare interface UnifiedBuildOptions {
  root?: string
  debug?: boolean
  ssg?: Partial<SSGConfig>
  ssr?: Partial<ProductionBuildOptions>
}
export declare interface UnifiedBuildResult {
  mode: BuildMode
  ssg?: SSGResult
  ssr?: ProductionBuildResult
  duration: number
}
