The most recently loaded value, or null before the first successful load.
Preserved when a refresh fails so stale data is never blanked out.
The most recent fetch error, if any. Cleared on the next successful load.
Whether the initial load (or a reload) is currently in flight.
Whether a pull-to-refresh request is currently in flight.
Runs a refresh with pull-to-refresh semantics: data stays visible while
isRefreshing is true, and a failure keeps the stale data on screen.
Runs a full reload with isLoading = true. Aborts any in-flight request.
Used to implement retry buttons.
Direct state setter for data.
Return type of useAsyncData.