export type ApiClientConfig = { auth?: { password: string; username: string; }; } & Partial>; export interface APIResponse { data: T; headers: Headers; status: number; } export type BasicRequestOptions = Omit; export interface Interceptors { request: RequestInterceptor[]; response: ResponseInterceptor[]; } export type RequestInitWithMethodAndURL = { url: URL; } & Omit & Required>; export type RequestInterceptor = (options: RequestInitWithMethodAndURL) => Promise | RequestInitWithMethodAndURL; export interface RequestOptions { data?: any; headers?: HeadersInit; method: 'DELETE' | 'delete' | 'GET' | 'get' | 'HEAD' | 'head' | 'OPTIONS' | 'options' | 'PATCH' | 'patch' | 'POST' | 'post' | 'PUT' | 'put'; params?: object; responseType?: 'arraybuffer' | 'blob' | 'json' | 'text'; } export type ResponseInterceptor = (response: Response) => Promise | void;