import type { ICssOption } from './css/index.js'; import type { IResolverOption } from './resolver/index.js'; import type { IServerOption } from './server/index.js'; export type ModuleType = 'cjs' | 'esm' | 'iife' | 'umd'; export type Charset = 'ascii' | 'utf8'; export type Platform = 'browser' | 'node' | 'neutral'; export interface IBundlerGeneralOption { root: string; } export interface IBundlerEntry { in: string; out: string; } export interface IBundlerOutputOption { charset: Charset; formats: Array; globalName?: string; publicPath: string; outDir?: string; outBase?: string; assetDir?: string; entryName?: string; assetName?: string; chunkName?: string; } export interface IBundlerOptimizationOption { minify: boolean; define?: Record; } export interface IUserBundlerOption extends Partial { entry?: Array; output?: IBundlerOutputOption; optimization?: IBundlerOptimizationOption; resolve?: IResolverOption; css?: ICssOption; server?: IServerOption; platform?: Platform; } export interface IBundlerOption extends IBundlerGeneralOption { entry: Array | Array; output: IBundlerOutputOption; optimization: IBundlerOptimizationOption; plugins?: Array; resolve?: IResolverOption; css?: ICssOption; server?: IServerOption; sourcemap?: boolean | 'inline'; platform?: Platform; }