import webpack from 'webpack'; import { Log } from '@spine/logger'; import { AppClientBundle, AppBundle, Bundle } from '@erect/core/config'; import { BuildOptionsHookFilterValue } from '../hooks/buildOptions'; import './plugins/offlineServiceWorker'; export interface WebpackConfigFilterHandler { (config: webpack.Configuration): webpack.Configuration; } export interface WebpackFactory { register(handler: WebpackConfigFilterHandler): this; compile(): webpack.Compiler; log: Log; } export interface BundleCaller { (target: 'client'): AppClientBundle; (target: 'server'): AppBundle; (target: string): Bundle; } export declare const getBundle: BundleCaller; export declare function webpackConfigEnv(buildOptions: BuildOptionsHookFilterValue): import("../hooks/buildEnv").BuildEnvHookFilterValue; /** * Generates a webpack configuration for the target configuration. * * This function has been configured to support one "client/web" bundle, and any * number of additional "node" bundles (el.g. our "server"). You can define * additional node bundles by editing the project confuguration. * * @param {Object} buildOptions - The build options. * @param {target} buildOptions.target - The bundle target (el.g 'clinet' || 'server'). * @param {target} buildOptions.optimize - Build an optimised version of the bundle? * * @return {Object} The webpack configuration. */ export declare function webpackConfigFactory(buildOptions: BuildOptionsHookFilterValue, log: Log): WebpackFactory;