///
import type { IBinaryData } from '../../../interfaces';
declare type StringBody = {
_type: 'string';
data: string;
};
declare type FormDataBody = {
_type: 'formdata';
data: Record;
};
declare type BinaryBody = {
_type: 'binary';
data: Buffer | IBinaryData;
};
declare type URLSearchParamsBody = {
_type: 'urlsearchparams';
data: Record;
};
export declare const stringBody: (data: string) => StringBody;
export declare const formDataBody: (data: Record) => FormDataBody;
export declare const urlSearchParamsBody: (data: Record) => URLSearchParamsBody;
export declare const binaryBody: (data: Buffer | IBinaryData) => BinaryBody;
export declare function isStringBody(data: FetchBody): data is StringBody;
export declare function isFormDataBody(data: FetchBody): data is FormDataBody;
export declare function isUrlSearchParamsBody(data: FetchBody): data is URLSearchParamsBody;
export declare function isBinaryBody(data: FetchBody): data is BinaryBody;
export declare type FetchBody = StringBody | FormDataBody | URLSearchParamsBody | BinaryBody;
export declare type HttpMultiMap = Record;
export declare type FetchParameters = {
headers?: HttpMultiMap;
method: string;
body?: FetchBody;
queryParameters?: HttpMultiMap;
timeout?: number;
};
export declare type FetchResponse = {
status: number;
statusText: string;
headers: HttpMultiMap;
body?: unknown;
};
export declare type IFetch = {
fetch(url: string, parameters: FetchParameters): Promise;
};
export declare const JSON_CONTENT = "application/json";
export declare const JSON_PROBLEM_CONTENT = "application/problem+json";
export declare const URLENCODED_CONTENT = "application/x-www-form-urlencoded";
export declare const FORMDATA_CONTENT = "multipart/form-data";
export declare const BINARY_CONTENT_TYPES: string[];
export declare const BINARY_CONTENT_REGEXP: RegExp;
export {};