declare namespace Async { type State = "loading" | "succeeded" | "failed" | "dirty" | "uninitialized"; type IdType = number | string; type Base = { state: State; content: T; error: string | null; }; type List = Base & { keyName: keyof T; dirtyEntities: string[]; didLoaded: string[]; }; type Item = Base; type Entity = Base> & { dirtyEntities: string[]; didLoaded: string[]; }; }