import { Reason } from './stats-parser/types'; import { ModuleSource } from './types'; export declare type ID = number | string; export declare const SOURCE_CODE_PATH = "(Source Code)"; export declare const WEBPACK_INTERNAL_PATH = "(Webpack Internal)"; export declare const OLD_SOURCE_CODE_PATH = "."; export declare const OLD_WEBPACK_INTERNAL_PATH = "(webpack)"; export declare enum BundleToolkit { Webpack = "webpack", Esbuild = "esbuild", Rollup = "rollup", Rspack = "rspack" } export interface BundleChunkGroup { assets: string[]; chunks: Array; children: Record; name: string; }>; childAssets: Record; } export interface BundleAsset { name: string; size: number; emitted: boolean; chunks: Array; chunkNames: Array; } export declare const ModuleReasonTypes: readonly ["amd define", "amd require array", "amd require context", "amd require", "cjs require context", "cjs require", "context element", "delegated exports", "delegated source", "dll entry", "accepted harmony modules", "harmony accept", "harmony export expression", "harmony export header", "harmony export imported specifier", "harmony export specifier", "harmony import specifier", "harmony side effect evaluation", "harmony init", "import() context development", "import() context production", "import() eager", "import() weak", "import()", "json exports", "loader", "module.hot.accept", "module.hot.decline", "multi entry", "null", "prefetch", "require.context", "require.ensure", "require.ensure item", "require.include", "require.resolve", "single entry", "wasm export import", "wasm import", "new URL()", "cjs export require", "cjs self exports reference", "module decorator"]; export declare const dynamicModuleReasonTypes: string[]; export declare type ModuleReasonType = typeof ModuleReasonTypes[number]; export interface ModuleReason { moduleId: ID | null; moduleIdentifier: string | null; module: string | null; moduleName: string | null; resolvedModule?: string; type: ModuleReasonType; explanation?: string; userRequest: string; loc: string; } export interface BundleModule { assets?: string[]; chunks: Array; size?: number; id: ID; identifier: string; issuer: string | undefined; issuerId: ID | undefined; issuerName: string | undefined; issuerPath: Array<{ id: ID; identifier: string; name: string; }>; modules: BundleModule[]; name: string; nameForCondition?: string; providedExports?: string[]; reasons?: ModuleReason[]; usedExports?: boolean | string[]; source?: string; optimizationBailout?: string[]; } export interface BundleChunk { id: ID; entry: boolean; initial: boolean; children: number[]; files: string[]; auxiliaryFiles?: string[]; modules?: BundleModule[]; names: string[]; origins?: Array<{ moduleId?: ID; module: string; moduleName: string; request: string; reasons: string[]; }>; reason?: string; rendered: boolean; size: number; siblings: number[]; } export interface WebpackStats { outputPath?: string; publicPath?: string; hash?: string; version?: string; entrypoints?: Record; assets?: BundleAsset[]; chunks?: BundleChunk[]; } export declare type EsbuildImportKind = 'entry-point' | 'import-statement' | 'require-call' | 'dynamic-import' | 'require-resolve' | 'import-rule' | 'url-token'; export interface ESBuildMetafile { inputs: { [path: string]: { bytes: number; imports: { path: string; kind: EsbuildImportKind; }[]; }; }; outputs: { [path: string]: { bytes: number; inputs: { [path: string]: { bytesInOutput: number; }; }; imports: { path: string; kind: EsbuildImportKind | 'file-loader'; }[]; exports: string[]; entryPoint?: string; }; }; } export interface RollupRenderedModule { code: string | null; originalLength: number; removedExports: string[]; renderedExports: string[]; renderedLength: number; } export interface ModuleReasons { moduleReasons?: Record; moduleSource?: ModuleSource; packageReasons?: Record; sideEffects?: Record; } export interface PerfseeReportStats extends WebpackStats { packageVersions?: { name: string; version: string; sideEffects?: boolean | string[] | 'implicitly'; }[]; repoPath?: string; buildPath?: string; buildTool?: BundleToolkit; metafile?: ESBuildMetafile; outputBundle?: Record; }>; rules?: string[]; includeAuxiliary?: boolean; htmlExclusive?: boolean; moduleReasons?: ModuleReasons; strictChunkRelations?: boolean; }