import { Compilation, Compiler } from "webpack";

//#region node_modules/.cache/bundler-plugins-dts/webpack/index.d.ts
type WebpackPluginOptions = {
  outputFolder?: string;
  modulesPath?: string;
  publicPath?: string;
  startupPrefetchMode?: 'eager' | 'idle' | 'manual' | 'off';
};
/**
 * Webpack plugin for host applications.
 * Copies static assets (images, iframe, fonts, monaco workers) to the build output
 * and injects publicPath into the entry module so the editor can locate them at runtime.
 * The thin facade entry is still handled by the consumer bundler, while
 * browser-loaded core assets are copied to the host output and served from publicPath.
 *
 * For plugin development (externals + alias), use a separate plugin
 * from the `webpack/pluginDev` subpath.
 */
declare class WebpackPlugin {
  _outputFolder: string;
  _modulesPath: string;
  _publicPath: string | undefined;
  _startupPrefetchMode: string;
  _sources: Compiler['webpack']['sources'] | null;
  constructor(options?: WebpackPluginOptions);
  addAsset(compilation: Compilation, sourcePath: string, destPath: string): Promise<void>;
  copyFiles(compilation: Compilation, source: string, destination: string): Promise<void>;
  apply(compiler: Compiler): void;
}
//#endregion
export { WebpackPluginOptions, WebpackPlugin as default };