import webpack from "webpack"; import WebpackChain from "webpack-chain"; import Bundler from "./interfaces/Bundler"; import { DeepPartial } from "ts-essentials"; import BundlerConfig from "./interfaces/BundlerConfig"; import { EnvironmentTypes } from "./types/EnvironmentTypes"; import BundlerEnvironment from "./interfaces/BundlerEnvironment"; import { BrowserSyncPluginConfig } from "./interfaces/plugin-config-interfaces/BrowserSyncPluginConfig"; import { Options as ESLintOptions } from "eslint-webpack-plugin"; export default abstract class AbstractBundler { config: BundlerConfig; env: BundlerEnvironment; webpackChain: WebpackChain; bundles: Array; constructor(mode?: EnvironmentTypes, config?: DeepPartial); aliases(aliases: { [key: string]: string; }): this; aggressiveVendorSplitting(): this; build(): Array; browserSync(options?: BrowserSyncPluginConfig): this; chainWebpack(callback: (webpackChain: WebpackChain, env: BundlerEnvironment) => any): this; copy(from: string, to?: string): this; dontClean(exclude: Array | string): this; eslint(options?: ESLintOptions): this; html(): this; htmlVariables(variables: any): this; plugin(Plugin: { new (Bundler: Bundler, options?: U): T; }, options?: U): this; proxy(from: string, to: string, options?: { changeOrigin: boolean; }): this; purgeCss(paths: Array, config?: { whiteListPatterns?: Array; whitelistSelectors?: Array; whitelistPatternsChildren?: Array; }): this; globalSassIncludes(filePaths: any, rx?: RegExp): this; varieConfig(variables: Record): this; webWorkers(): this; private addBundle; private argumentsHas; private bundle; private inspect; private setupConfig; private setupEnv; private presets; protected updateJavascriptLoaders(): void; }