/**
 * Create and run a production build
 */
export declare function build(config: ProductionBuildConfig): Promise<BuildResult>;
/**
 * Create a production build instance
 */
export declare function createProductionBuild(config: ProductionBuildConfig): ProductionBuild;
/**
 * Default production config
 */
export declare function defineConfig(config: ProductionBuildConfig): ProductionBuildConfig;
/**
 * Production build configuration
 */
export declare interface ProductionBuildConfig {
  entry: string | string[] | Record<string, string>
  outDir: string
  publicPath?: string
  sourcemaps?: boolean | 'inline' | 'external' | 'hidden'
  minify?: boolean | MinifyOptions
  splitting?: boolean | SplittingOptions
  css?: CssOptions
  assets?: AssetOptions
  compression?: CompressionOptions
  analyze?: boolean | AnalyzeOptions
  target?: string | string[]
  define?: Record<string, string>
  external?: string[]
  plugins?: BuildPlugin[]
}
/**
 * Minification options
 */
export declare interface MinifyOptions {
  js?: boolean
  css?: boolean
  html?: boolean
  dropConsole?: boolean
  dropDebugger?: boolean
  mangle?: boolean
}
/**
 * Code splitting options
 */
export declare interface SplittingOptions {
  vendor?: boolean
  minSize?: number
  maxSize?: number
  chunkNames?: 'hash' | 'named' | 'deterministic'
  manualChunks?: Record<string, string[]>
}
/**
 * CSS options
 */
export declare interface CssOptions {
  extract?: boolean
  modules?: boolean | CssModulesOptions
  postcss?: boolean | object
  minify?: boolean
  filename?: string
}
/**
 * CSS modules options
 */
export declare interface CssModulesOptions {
  pattern?: string
  sourcemap?: boolean
}
/**
 * Asset options
 */
export declare interface AssetOptions {
  inlineLimit?: number
  filename?: string
  hash?: boolean
  hashLength?: number
  include?: string[]
  exclude?: string[]
}
/**
 * Compression options
 */
export declare interface CompressionOptions {
  gzip?: boolean
  brotli?: boolean
  threshold?: number
  deleteOriginal?: boolean
}
/**
 * Bundle analysis options
 */
export declare interface AnalyzeOptions {
  format?: 'html' | 'json' | 'text'
  filename?: string
  open?: boolean
  gzipSize?: boolean
  brotliSize?: boolean
}
/**
 * Build plugin interface
 */
export declare interface BuildPlugin {
  name: string
  setup?: (build: ProductionBuild) => void | Promise<void>
  buildStart?: () => void | Promise<void>
  transform?: (code: string, id: string) => string | Promise<string> | null
  buildEnd?: (result: BuildResult) => void | Promise<void>
}
/**
 * Build result
 */
export declare interface BuildResult {
  outputs: OutputFile[]
  duration: number
  totalSize: number
  gzipSize: number
  chunks: ChunkInfo[]
  assets: AssetInfo[]
  warnings: string[]
  errors: string[]
}
/**
 * Output file info
 */
export declare interface OutputFile {
  path: string
  type: 'js' | 'css' | 'html' | 'asset' | 'map'
  size: number
  gzipSize?: number
  hash?: string
  sources?: string[]
  isEntry?: boolean
}
/**
 * Chunk info
 */
export declare interface ChunkInfo {
  name: string
  file: string
  size: number
  modules: string[]
  isVendor?: boolean
  imports: string[]
  dynamicImports: string[]
}
/**
 * Asset info
 */
export declare interface AssetInfo {
  name: string
  file: string
  size: number
  source: string
  mimeType?: string
}
/**
 * Production Build orchestrator
 */
export declare class ProductionBuild {
  constructor(config: ProductionBuildConfig);
  build(): Promise<BuildResult>;
}
