export interface ModuleInfo { libraryPath: string; version: string; } export interface ModuleCollectorOptions { include?: RegExp[]; exclude?: RegExp[]; } export interface ModuleSnapshot { [key: string]: ModuleInfo; } declare class ModuleCollector { private _include; private _exclude; private _modules; private _changed; constructor(options: ModuleCollectorOptions); shouldCollect({ request, context, resource, }: { request: string; context: string; resource: string; }): boolean; hasChanged(): boolean; add(id: string, { libraryPath, version }: ModuleInfo): void; snapshot(): ModuleSnapshot; } export type { ModuleCollector }; export declare function getModuleCollector(options: ModuleCollectorOptions): ModuleCollector;