import type { Dedalus } from './client.js'; import type { FinalRequestOptions } from './internal/request-options.js'; export type APIResponseProps = { readonly response: Response; readonly options: FinalRequestOptions; readonly controller: AbortController; readonly requestLogID?: string | undefined; readonly retryOfRequestLogID?: string | undefined; readonly startTime?: number | undefined; }; export type ParseResponse = (client: Dedalus, props: APIResponseProps) => T | Promise; export declare const defaultParseResponse: (_client: unknown, props: APIResponseProps) => Promise; /** A Promise subclass providing SDK response helpers. */ export declare class APIPromise extends Promise { private readonly client; private readonly responsePromise; private readonly parseResponse; private parsedPromise; constructor(client: Dedalus, responsePromise: Promise, parseResponse?: ParseResponse); _thenUnwrap(transform: (data: T, props: APIResponseProps) => U): APIPromise; asResponse(): Promise; withResponse(): Promise<{ data: T; response: Response; }>; private parse; then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike) | undefined | null): Promise; catch(onrejected?: ((reason: unknown) => TResult | PromiseLike) | undefined | null): Promise; finally(onfinally?: (() => void) | undefined | null): Promise; } //# sourceMappingURL=api-promise.d.ts.map