/// import type { CancelableAbortSignal } from './CancelableAbortController'; import type { CancelablePromise } from './CancelablePromise'; export type PromiseStatus = 'canceled' | 'pending' | 'resolved' | 'rejected'; export type ResolveCallback = (value?: TResult | PromiseLike) => void; export type RejectCallback = (reason?: unknown) => void; export type CancelCallback = (reason?: unknown) => void; /** Parameters for event subscriptions with optional AbortSignal. */ export type SubscriptionParams = { signal?: CancelableAbortSignal | AbortSignal; }; export type Subscription = () => void; export type CancelablePromiseUtils = { /** Cancel the promise with an optional reason */ cancel: (reason?: unknown) => CancelablePromise; /** Subscribe to cancellation events */ onCancel: (callback: CancelCallback) => Subscription; onProgress: (callback: OnProgressCallback) => Subscription; reportProgress: (percentage: number, metadata?: unknown) => void; status: () => PromiseStatus; isCanceled: () => boolean; isPending: () => boolean; }; export type CancelablePromiseCallback = (resolve: ResolveCallback, reject: RejectCallback, utils: CancelablePromiseUtils) => void; export type OnProgressCallback = (progress: number, metadata?: unknown) => void;