import type { MaybeArray } from '../typed.js' export type HttpMethod = 'get' | 'GET' | 'delete' | 'DELETE' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH' export interface HttpRequest extends Omit { url: string method: Lowercase headers: Headers requestType: 'urlencoded' | 'json' | 'form-data' responseType: 'json' | 'response' | 'stream' params: string | URLSearchParams | FormData | object | undefined body: RequestInit['body'] | object | MaybeArray[] onUploadProgress?: (percent: number) => void onDownloadProgress?: (percent: number) => void responseTransformer?: (result: unknown, response: Response) => unknown } export interface HttpRequestInit extends Partial> { url: string method?: HttpMethod headers?: HeadersInit } export declare class HttpError extends Error { status: number response: Response headers: Headers constructor(response: Response, message?: string) } export type HttpInterceptor = ( request_: Readonly, next: (request_: Readonly) => Promise, ) => Promise export type InferResponse, T> = R extends { responseType: 'response' | 'stream' } ? Response : T