import type { Compilation, Compiler, NormalModule } from 'webpack'; import type { HtmlWebpackPluginAfterEmitPayload, HtmlWebpackPluginConstructor, Sprite, SpriteManifest, Svgs, SvgsData, SvgstoreConfig } from './types.js'; declare class SvgChunkWebpackPlugin { options: { filename: string; svgstoreConfig: SvgstoreConfig; generateSpritesManifest: boolean; generateSpritesPreview: boolean; injectSpritesInTemplates: boolean; }; PLUGIN_NAME: "svg-chunk-webpack-plugin"; static loader: string; /** * Instanciate the constructor * @param {options} */ constructor(options?: {}); /** * Apply function is automatically called by the Webpack main compiler * @param {Compiler} compiler The Webpack compiler variable */ apply(compiler: Compiler): void; /** * Hook expose by the Webpack compiler * @async * @param {Compilation} compilation The Webpack compilation variable */ hookCallback(compilation: Compilation): Promise; /** * Add assets * The hook is triggered by webpack * @async * @param {Compilation} compilation Webpack compilation * @returns {Promise} */ addAssets(compilation: Compilation): Promise; /** * Injects the sprite map related to the entry in the related html generated by html-webpack-plugin or html-rspack-plugin * @param {Compilation} compilation Webpack or Rspack compilation * @param {Sprite[]} options.sprites Sprites */ handleHtmlWebpackPlugin(compilation: Compilation, sprites: Array): Promise; /** * Get HtmlWebpackPlugin or HtmlRspackPlugin instance from compiler data * @param {Compilation} compilation Webpack or Rspack compilation * @returns HtmlWebpackPlugin or HtmlRspackPlugin constructor or null */ getHtmlWebpackPluginInstance(compilation: Compilation): HtmlWebpackPluginConstructor | null; /** * Inject sprite HTML into HtmlWebpackPlugin or HtmlRspackPlugin templates * @param {Compilation} compilation Webpack or Rspack compilation * @param {Sprite[]} options.sprites Sprites * @param data HtmlWebpackPlugin or HtmlRspackPlugin data * @param callback Callback function */ injectSpriteInHtmlWebpackPluginTemplate(_compilation: Compilation, sprites: Array, data: HtmlWebpackPluginAfterEmitPayload, callback: (err: null, data: HtmlWebpackPluginAfterEmitPayload) => void): void; /** * Get SVGs filtered by entrypoints * @param {Object} options * @param {Compilation} options.compilation Webpack or Rspack compilation * @param {String} options.entryName Entrypoint name * @returns {NormalModule[]} Svgs list */ getSvgsDependenciesByEntrypoint({ compilation, entryName }: { compilation: Compilation; entryName: string; }): NormalModule[]; /** * Get SVGs dependencies for Webpack using chunk graph * @param {Object} options * @param {Compilation} options.compilation Webpack compilation * @param {Entrypoint} options.entry Entry object from entrypoints * @returns {NormalModule[]} Svgs list (unsorted, will be sorted by parent function) */ getSvgsDependenciesByEntrypointWebpack({ compilation, entry }: { compilation: Compilation; entry: NonNullable>; }): NormalModule[]; /** * Get SVGs dependencies for Rspack using module graph traversal * @param {Object} options * @param {Compilation} options.compilation Rspack compilation * @param {String} options.entryName Entrypoint name * @returns {NormalModule[]} Svgs list (unsorted, will be sorted by parent function) */ getSvgsDependenciesByEntrypointRspack({ compilation, entryName }: { compilation: Compilation; entryName: string; }): NormalModule[]; /** * Get SVG data * @param {Compilation} options * @param {Compilation} options.compilation Webpack compilation * @param {String} options.entryName Entrypoint name * @returns {SvgsData} SVG data (paths, names and content) */ getSvgsData({ compilation, svgsDependencies }: { compilation: Compilation; svgsDependencies: NormalModule[]; }): SvgsData; /** * Generate the SVG sprite with Svgstore * @param {Svgs[]} svgs SVGs list * @returns {String} Sprite string */ generateSprite(svgs: Svgs[]): string; /** * Get the filename for the asset compilation * Placeholder [name], [hash], [chunkhash], [content] are automatically replaced * @param {Object} options * @param {Compilation} options.compilation Webpack compilation * @param {String} options.entryName Entrypoint name * @param {String} options.sprite Sprite content * @returns {String} Sprite filename */ getFilename({ compilation, entryName, sprite }: { compilation: Compilation; entryName: string; sprite: string; }): string; /** * Create sprite manifest with Webpack compilation * Expose the manifest file into the assets compilation * The file is automatically created by the compiler * @async * @param {Object} options * @param {Compilation} options.compilation Webpack compilation * @param {any} options.cache Webpack cache * @param {any} options.eTag Webpack eTag * @param {SpriteManifest} options.spritesManifest ETag * @returns {String} Sprite filename */ createSpritesManifest({ compilation, cache, eTag, spritesManifest }: { compilation: Compilation; cache: any; eTag: any; spritesManifest: SpriteManifest; }): Promise; /** * Create sprites preview * @async * @param {Object} options * @param {Compilation} options.compilation Webpack compilation * @param {any} options.cache Webpack cache * @param {any} options.eTag Webpack eTag * @param {Sprite[]} options.sprites Sprites * @returns {String} Sprite filename */ createSpritesPreview({ compilation, cache, eTag, sprites }: { compilation: Compilation; cache: any; eTag: any; sprites: Sprite[]; }): Promise; } export default SvgChunkWebpackPlugin;