49 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import { type OpenAI } from "../client.mjs"; | ||
|  | import { type PromiseOrValue } from "../internal/types.mjs"; | ||
|  | import { type APIResponseProps, type WithRequestID } from "../internal/parse.mjs"; | ||
|  | /** | ||
|  |  * A subclass of `Promise` providing additional helper methods | ||
|  |  * for interacting with the SDK. | ||
|  |  */ | ||
|  | export declare class APIPromise<T> extends Promise<WithRequestID<T>> { | ||
|  |     #private; | ||
|  |     private responsePromise; | ||
|  |     private parseResponse; | ||
|  |     private parsedPromise; | ||
|  |     constructor(client: OpenAI, responsePromise: Promise<APIResponseProps>, parseResponse?: (client: OpenAI, props: APIResponseProps) => PromiseOrValue<WithRequestID<T>>); | ||
|  |     _thenUnwrap<U>(transform: (data: T, props: APIResponseProps) => U): APIPromise<U>; | ||
|  |     /** | ||
|  |      * Gets the raw `Response` instance instead of parsing the response | ||
|  |      * data. | ||
|  |      * | ||
|  |      * If you want to parse the response body but still get the `Response` | ||
|  |      * instance, you can use {@link withResponse()}. | ||
|  |      * | ||
|  |      * 👋 Getting the wrong TypeScript type for `Response`? | ||
|  |      * Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]` | ||
|  |      * to your `tsconfig.json`. | ||
|  |      */ | ||
|  |     asResponse(): Promise<Response>; | ||
|  |     /** | ||
|  |      * Gets the parsed response data, the raw `Response` instance and the ID of the request, | ||
|  |      * returned via the X-Request-ID header which is useful for debugging requests and reporting | ||
|  |      * issues to OpenAI. | ||
|  |      * | ||
|  |      * If you just want to get the raw `Response` instance without parsing it, | ||
|  |      * you can use {@link asResponse()}. | ||
|  |      * | ||
|  |      * 👋 Getting the wrong TypeScript type for `Response`? | ||
|  |      * Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]` | ||
|  |      * to your `tsconfig.json`. | ||
|  |      */ | ||
|  |     withResponse(): Promise<{ | ||
|  |         data: T; | ||
|  |         response: Response; | ||
|  |         request_id: string | null; | ||
|  |     }>; | ||
|  |     private parse; | ||
|  |     then<TResult1 = WithRequestID<T>, TResult2 = never>(onfulfilled?: ((value: WithRequestID<T>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>; | ||
|  |     catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<WithRequestID<T> | TResult>; | ||
|  |     finally(onfinally?: (() => void) | undefined | null): Promise<WithRequestID<T>>; | ||
|  | } | ||
|  | //# sourceMappingURL=api-promise.d.mts.map
 |