import type { GenericAbortSignal } from './GenericAbortSignal'; import type { HttpHeaderValue, HttpRequestHeaders } from './HttpHeaders'; /** Defines a number in milliseconds. */ type Milliseconds = number; /** * Defines a HTTP Request with custom data. * @category Http */ export type HttpRequest = { method: HttpMethod; url: string; data: D; headers: HttpRequestHeaders; maxRedirects?: number; timeout?: Milliseconds; signal?: GenericAbortSignal; }; /** * Creates a new {@link HttpRequestBuilder} instance. * @category Http */ export declare const request: () => HttpRequestBuilder; /** * A builder for constructing {@link HttpRequest} instances. * @category Http */ export declare class HttpRequestBuilder implements HttpRequest { protected readonly request: HttpRequest; constructor(request: HttpRequest); asJson(): HttpRequestBuilder; asMultipart(): HttpRequestBuilder; asForm(): HttpRequestBuilder; accept(contentType: string): HttpRequestBuilder; contentType(contentType: string): HttpRequestBuilder; userAgent(userAgent: string): HttpRequestBuilder; withToken(token: string, type?: string): HttpRequestBuilder; withHeader(key: string, value: HttpHeaderValue): HttpRequestBuilder; withHeaders(headers: HttpRequestHeaders): HttpRequestBuilder; dontFollowRedirects(): HttpRequestBuilder; followRedirects(maxRedirects?: number): HttpRequestBuilder; withoutTimeout(): HttpRequestBuilder; withTimeout(timeout?: Milliseconds): HttpRequestBuilder; withAbortSignal(signal?: GenericAbortSignal): HttpRequestBuilder; withEndpoint(method: HttpMethod, url: string): HttpRequestBuilder; withParams(params: string | URLSearchParams | string[][] | Record): HttpRequestBuilder; withData(data: T): HttpRequestBuilder; get(url: string): HttpRequestBuilder; post(url: string): HttpRequestBuilder; put(url: string): HttpRequestBuilder; patch(url: string): HttpRequestBuilder; delete(url: string): HttpRequestBuilder; get method(): HttpMethod; get url(): string; get data(): D; get headers(): HttpRequestHeaders; get maxRedirects(): number | undefined; get timeout(): Milliseconds | undefined; get signal(): GenericAbortSignal | undefined; } /** * Defines a HTTP method as a string. * @category Http */ export type HttpMethod = 'get' | 'GET' | 'delete' | 'DELETE' | 'head' | 'HEAD' | 'options' | 'OPTIONS' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH' | 'purge' | 'PURGE' | 'link' | 'LINK' | 'unlink' | 'UNLINK'; export {};