/// import * as O from 'fp-ts/lib/Option'; import * as TE from 'fp-ts/lib/TaskEither'; import { Readable } from 'stream'; import { File, FileStorage } from '../file/File'; import { SerializationFormat } from '../serialization/Serialization'; import { DynamicObject } from '../dynamictype/DynamicType'; export type HttpHeaderValue = string | string[]; export type HttpHeaders = Record; export type HttpQueryStringSingleValue = number | string | boolean; export type HttpQueryStringValue = HttpQueryStringSingleValue | HttpQueryStringSingleValue[]; export type HttpQueryString = Record; export type RegularHttpRequestBody = ArrayBuffer; export type MultipartHttpRequestBody = { fields: Record; files: Record; }; export type StreamHttpRequestBody = Readable; export interface MultipartHttpRequestBodyInterface { create: (value: unknown, fileStorage: FileStorage) => TE.TaskEither; } export declare const MultipartHttpRequestBody: { create: (value: unknown, fileStorage: FileStorage) => TE.TaskEither; }; export type HttpRequestBody = RegularHttpRequestBody | MultipartHttpRequestBody | StreamHttpRequestBody; export type HttpCertificate = { cert: string; key: string; }; export type HttpAgent = { certificate: O.Option; }; export type HeaderOptions = { preserveHeaderCasing: O.Option; }; export type HttpRequest = { headers: HttpHeaders; headerOptions: O.Option; pathParams: Record; queryString: HttpQueryString; body: HttpRequestBody; agent: O.Option; clientIp: O.Option; timeout?: O.Option; }; export type HttpResponse = { statusCode: number; headers: HttpHeaders; body: Readable; }; export declare enum HttpMethod { Delete = "DELETE", Get = "GET", Head = "HEAD", Options = "OPTIONS", Patch = "PATCH", Post = "POST", Put = "PUT" } export declare enum HttpContentType { Json = "application/json", OctetStream = "application/octet-stream", FormUrlEncoded = "application/x-www-form-urlencoded", MultipartRequestBody = "multipart/form-data", Text = "text/plain" } export declare enum HttpHeader { Authorization = "Authorization", ContentType = "Content-Type", Impersonation = "X-Tray-Admin-Impersonate", UserAgent = "User-Agent", ContentLength = "Content-Length", ContentDisposition = "Content-Disposition", Host = "Host", HostOverride = "X-Host-Override" } export interface HttpRequestInterface { create: (httpRequest: Partial) => HttpRequest; } export declare const HttpRequest: HttpRequestInterface; export interface HttpHeadersInterface { get: (headers: HttpHeaders, name: string) => O.Option; extractBearerToken: (headers: HttpHeaders) => O.Option; fromDynamicObject: (headers: DynamicObject) => HttpHeaders; toDynamicObject: (headers: HttpHeaders) => DynamicObject; } export declare const HttpHeaders: HttpHeadersInterface; export declare const serializationFormatToHttpContentType: Record; export declare const isMultiPartBody: (body: HttpRequestBody) => body is MultipartHttpRequestBody; //# sourceMappingURL=Http.d.ts.map