export type PromiseState = | { status: "idle"; promise?: Promise; value?: undefined; reason?: undefined; } | { status: "pending"; promise: Promise; value?: undefined; reason?: undefined; } | { status: "fulfilled"; promise: Promise; value: T; reason?: undefined; } | { status: "rejected"; promise: Promise; value?: undefined; reason: E; };