import { container, Configuration, WebpackPluginInstance, Compiler } from 'webpack'; export interface IMFWebpack { configure(): Configuration; } export interface MFConfiguration extends Configuration { configPath?: string; webpack?: any; plugins?: any; devServer?: any; eslint?: any; babel?: any; typescript?: any; style?: any; isShell?: boolean; } export interface RemotesConfig { external: string | string[]; shareScope?: string; } export interface DependencyConfig { external?: string | string[]; shareScope?: string; host?: string; main?: string; } export type ModuleFederationPluginOptions = ConstructorParameters[0]; export interface IMFConfig extends Pick> { name: string; main?: string; exports?: string[]; dependencies?: Record; version?: string; registry?: string; } export type OverridePlugins = { webpackConfig: Configuration; context: { paths: { publicUrlOrPath: string; }; }; }; export type Plugins = ((this: Compiler, compiler: Compiler) => void) | WebpackPluginInstance; export interface IPlugins { plugins(): Plugins; }