import { RunnableLoader } from '../runs/RunnableLoader'; import { Observable } from '../message/Observable'; export type StoreLoadedState = { state: 'loaded'; data: T; }; export type StoreErrorState = { state: 'error'; data: any; }; export type StoreLoaderState = | { state: 'ready' | 'loading' | 'unloaded'; } | StoreLoadedState | StoreErrorState | { state: 'unloaded'; }; export abstract class StoreLoader { public abstract observable: Observable>; }