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 } } }