Construct this with the callback progress events are forwarded to.
The consumer callback.
Minimum milliseconds between throttled events.
The currently reporting phase, if any.
The current phase.
Begin a phase, emitting an unthrottled zero-progress event.
The phase being entered.
The unit completed/total are measured in for this phase.
Optionaltotal: numberThe total units for this phase, when known up front.
Throttled fan-in point for progress ticks during a load.
Hot loops call update() as often as they like (it is cheap); events are only materialized and forwarded at most once per minIntervalMs, plus unthrottled events at phase begin/end so consumers always see phase boundaries. Memory is sampled only when an event is actually emitted.