export type HMRPayload = | ConnectedPayload | UpdatePayload | FullReloadPayload | CustomPayload | ErrorPayload | PrunePayload; export interface ConnectedPayload { type: 'connected'; } export interface UpdatePayload { type: 'update'; updates: Update[]; } export interface Update { type: 'js-update' | 'css-update'; path: string; acceptedPath: string; timestamp: number; /** * @experimental internal */ explicitImportRequired?: boolean | undefined; } export interface PrunePayload { type: 'prune'; paths: string[]; } export interface FullReloadPayload { type: 'full-reload'; path?: string; } export interface CustomPayload { type: 'custom'; event: string; data?: any; } export interface ErrorPayload { type: 'error'; err: { [name: string]: any; message: string; stack: string; id?: string; frame?: string; plugin?: string; pluginCode?: string; loc?: { file?: string; line: number; column: number; }; }; }