export interface IDataLoader { items: T[]; loading: boolean; /** Loading with nothing to show yet — first load, or a reload after the list was cleared by a reset. */ initialLoading: boolean; /** The last attempt did not deliver a page, whether it returned nothing or threw; cleared when the next attempt starts. */ failed: boolean; /** More pages are reachable. Goes false at the end of the list, and on a failure unless the loader was built with `resumeAfterFailure`. */ canLoadMore: boolean; loadMore: () => Promise; }