interface UntrackedReactPromise extends PromiseLike { status?: undefined; } interface PendingReactPromise extends PromiseLike { status: 'pending'; } interface FulfilledReactPromise extends PromiseLike { status: 'fulfilled'; value: T; } interface RejectedReactPromise extends PromiseLike { status: 'rejected'; reason: unknown; } /** * A thenable whose settled state React's `use()` reads synchronously, off the * `status` / `value` / `reason` properties React attaches while tracking it. */ type ReactPromise = UntrackedReactPromise | PendingReactPromise | FulfilledReactPromise | RejectedReactPromise; declare const use: (usable: ReactPromise) => T; export { use }; export type { FulfilledReactPromise, PendingReactPromise, ReactPromise, RejectedReactPromise, UntrackedReactPromise };