import { BundleToolkit, ID } from './stats'; export interface Size { raw: number; gzip: number; brotli: number; } export declare enum AssetTypeEnum { Js = "js", Css = "css", Image = "image", Font = "font", Html = "html", Media = "media", Other = "other" } export interface Asset { ref: number; name: string; type: AssetTypeEnum; size: Size; path?: string; packageRefs: Array<{ ref: number; size: Size; }>; moduleRefs: ID[]; } export interface Chunk { ref: number; entry: boolean; async: boolean; assetRefs: number[]; exclusive?: boolean; } export declare type NoteType = { type: 'concat'; targetRef: number; }; export interface BasePackage { ref: number; name: string; path: string; version?: string; } export interface PackageAppendix { ref: number; size: Size; issuerRefs: number[]; assetRefs: number[]; notes: NoteType[]; } export interface DuplicatePackage { name: string; versions: string[]; } declare type TableItemType = 'text' | 'size' | 'list' | 'link' | 'trace' | 'sideEffects'; declare type TableDetail = { type: 'table'; headings: { key: string; name: string; itemType: TableItemType; }[]; items: Record[]; }; declare type ListDetail = { type: 'list'; items: Array; }; export declare type BundleAuditDetail = TableDetail | ListDetail; export declare enum BundleAuditScore { Bad = 0, Warn = 1, Notice = 2, Good = 3 } export interface BundleAuditResult { id: string; title: string; desc: string; score: BundleAuditScore; weight: number; link?: string; detail?: BundleAuditDetail; numericScore?: { value: number; absoluteWarningThrottle: number; relativeWarningThrottle?: number; }; count?: number; size?: Size; } export interface BundleAuditWarning { rule: string; score: string; throttle: string; } export interface EntryPoint { name: string; size: Size; initialSize: Size; chunkRefs: number[]; initialChunkRefs: number[]; assetRefs: number[]; packageAppendixes: PackageAppendix[]; audits: BundleAuditResult[]; score?: number; } export interface BundleResult { score?: number; entryPoints: EntryPoint[]; assets: Asset[]; chunks: Chunk[]; packages: BasePackage[]; repoPath?: string; buildPath?: string; buildTool?: BundleToolkit; } export declare type ModuleSource = Record; export interface ModuleMap { [moduleId: string]: { path: string; packageRef: number; concatenatingLength: number; }; } export interface ModuleTreeNodeUnit { label: string; statSize: number; parsedSize: number; gzipSize: number; inaccurateSizes?: boolean; groups?: ModuleTreeNodeUnit[]; concatenated?: boolean; id?: string; path?: string; isAsset?: boolean; } export interface ModuleTreeNode { name: string; value: number; gzip: number; brotli: number; children?: ModuleTreeNode[]; modules?: string[]; concatenated?: boolean; entryPoints?: string[]; dynamic?: boolean; unused?: number; esm?: boolean; sideEffects?: boolean | 'implicitly'; baseline?: { size: Size; name?: string; } | null; } export {};