import webpack from 'webpack'; import type { Options, Platform, AppConfig, BuildType, MiniPluginConfig } from '@ray-core/types'; import API from '../API'; import EntryCollection from './EntryCollection'; import ProjectPath from './ProjectPath'; export default abstract class Builder { api: API; options: Options; target: Platform; projectPath: ProjectPath; projectConfig: AppConfig | MiniPluginConfig; entryCollection: EntryCollection; webpackCompiler: webpack.Compiler; buildType: BuildType; webpackConfig: any; constructor(api: API, options: Options, buildType: BuildType); abstract run(): webpack.Compiler; abstract build(): void; abstract watch(): void; abstract createWebpackConfig(): webpack.Configuration; fetchProjectConfig(): AppConfig | MiniPluginConfig; createWebpackCompiler(): webpack.Compiler; }