import ChainableWebpackConfig from 'webpack-chain'; import { Configuration as WebpackOptions } from 'webpack'; declare type PageEntry = string | string[]; interface PageConfig { [key: string]: any; } interface LoaderOptions { css?: object; sass?: object; less?: object; stylus?: object; postcss?: object; } interface ExtractOptions { filename?: string; chunkFilename?: string; } interface CSSOptions { requireModuleExtension?: boolean; extract?: boolean | ExtractOptions; sourceMap?: boolean; loaderOptions?: LoaderOptions; } interface ProjectOptions { publicPath?: string; outputDir?: string; assetsDir?: string; indexPath?: string; filenameHashing?: boolean; runtimeCompiler?: boolean; transpileDependencies?: boolean | Array; productionSourceMap?: boolean; parallel?: boolean | number; devServer?: object; pages?: { [key: string]: PageEntry | PageConfig; }; crossorigin?: '' | 'anonymous' | 'use-credentials'; integrity?: boolean; css?: CSSOptions; chainWebpack?: (config: ChainableWebpackConfig) => void; configureWebpack?: WebpackOptions | ((config: WebpackOptions) => WebpackOptions | void); lintOnSave?: boolean | 'default' | 'warning' | 'error'; pwa?: object; pluginOptions?: object; } declare type ConfigFunction = () => ProjectOptions; export { ProjectOptions, ConfigFunction, PageConfig };