import type { Auth } from '../core/auth.gen.js'; import type { ServerSentEventsOptions, ServerSentEventsResult } from '../core/serverSentEvents.gen.js'; import type { Client as CoreClient, Config as CoreConfig } from '../core/types.gen.js'; import type { Middleware } from './utils.gen.js'; export type ResponseStyle = 'data' | 'fields'; export interface Config extends Omit, CoreConfig { baseUrl?: T['baseUrl']; fetch?: typeof fetch; next?: never; parseAs?: 'arrayBuffer' | 'auto' | 'blob' | 'formData' | 'json' | 'stream' | 'text'; responseStyle?: ResponseStyle; throwOnError?: T['throwOnError']; } export interface RequestOptions extends Config<{ responseStyle: TResponseStyle; throwOnError: ThrowOnError; }>, Pick, 'onSseError' | 'onSseEvent' | 'sseDefaultRetryDelay' | 'sseMaxRetryAttempts' | 'sseMaxRetryDelay'> { body?: unknown; path?: Record; query?: Record; security?: ReadonlyArray; url: Url; } export interface ResolvedRequestOptions extends RequestOptions { serializedBody?: string; } export type RequestResult = ThrowOnError extends true ? Promise ? TData[keyof TData] : TData : { data: TData extends Record ? TData[keyof TData] : TData; request: Request; response: Response; }> : Promise ? TData[keyof TData] : TData) | undefined : ({ data: TData extends Record ? TData[keyof TData] : TData; error: undefined; } | { data: undefined; error: TError extends Record ? TError[keyof TError] : TError; }) & { request: Request; response: Response; }>; export interface ClientOptions { baseUrl?: string; responseStyle?: ResponseStyle; throwOnError?: boolean; } type MethodFn = (options: Omit, 'method'>) => RequestResult; type SseFn = (options: Omit, 'method'>) => Promise>; type RequestFn = (options: Omit, 'method'> & Pick>, 'method'>) => RequestResult; type BuildUrlFn = ; query?: Record; url: string; }>(options: TData & Options) => string; export type Client = CoreClient & { interceptors: Middleware; }; export type CreateClientConfig = (override?: Config) => Config & T>; export interface TDataShape { body?: unknown; headers?: unknown; path?: unknown; query?: unknown; url: string; } type OmitKeys = Pick>; export type Options = OmitKeys, 'body' | 'path' | 'query' | 'url'> & ([TData] extends [never] ? unknown : Omit); export {};