/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ export type APICall = | { status: "complete"; request: Request; response: Response; } | { status: "request-error"; request: Request; response?: undefined; } | { status: "invalid"; request?: undefined; response?: undefined; }; export class APIPromise implements Promise { readonly #promise: Promise<[T, APICall]>; readonly #unwrapped: Promise; readonly [Symbol.toStringTag] = "APIPromise"; constructor(p: [T, APICall] | Promise<[T, APICall]>) { this.#promise = p instanceof Promise ? p : Promise.resolve(p); this.#unwrapped = p instanceof Promise ? this.#promise.then(([value]) => value) : Promise.resolve(p[0]); } then( onfulfilled?: | ((value: T) => TResult1 | PromiseLike) | null | undefined, onrejected?: | ((reason: any) => TResult2 | PromiseLike) | null | undefined, ): Promise { return this.#promise.then( onfulfilled ? ([value]) => onfulfilled(value) : void 0, onrejected, ); } catch( onrejected?: | ((reason: any) => TResult | PromiseLike) | null | undefined, ): Promise { return this.#unwrapped.catch(onrejected); } finally(onfinally?: (() => void) | null | undefined): Promise { return this.#unwrapped.finally(onfinally); } $inspect(): Promise<[T, APICall]> { return this.#promise; } }