import { Module, ModuleExports, WebpackRequire } from "@vencord/discord-types/webpack"; import { SYM_ORIGINAL_FACTORY, SYM_PATCHED_BY, SYM_PATCHED_SOURCE } from "./patchWebpack"; export type AnyWebpackRequire = ((moduleId: PropertyKey) => ModuleExports) & Partial> & { /** The module factories, where all modules that have been loaded are stored (pre-loaded or loaded by lazy chunks) */ m: Record; }; /** exports can be anything, however initially it is always an empty object */ export type AnyModuleFactory = ((this: ModuleExports, module: Module, exports: ModuleExports, require: AnyWebpackRequire) => void) & { [SYM_PATCHED_SOURCE]?: string; [SYM_PATCHED_BY]?: Set; }; export type PatchedModuleFactory = AnyModuleFactory & { [SYM_ORIGINAL_FACTORY]: AnyModuleFactory; [SYM_PATCHED_SOURCE]?: string; [SYM_PATCHED_BY]?: Set; }; export type MaybePatchedModuleFactory = PatchedModuleFactory | AnyModuleFactory;