node-libcurl
Version:
The fastest http(s) client (and much more) for Node.js - Node.js bindings for libcurl
1,131 lines • 303 kB
TypeScript
/**
* Copyright (c) Jonathan Cardoso Machado. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import { CurlChunk } from '../enum/CurlChunk';
import { CurlFnMatchFunc } from '../enum/CurlFnMatchFunc';
import { CurlFtpMethod } from '../enum/CurlFtpMethod';
import { CurlFtpSsl } from '../enum/CurlFtpSsl';
import { CurlGssApi } from '../enum/CurlGssApi';
import { CurlHeader } from '../enum/CurlHeader';
import { CurlHsts, CurlHstsCacheCount, CurlHstsCacheEntry } from '../enum/CurlHsts';
import { CurlHttpVersion } from '../enum/CurlHttpVersion';
import { CurlInfoDebug } from '../enum/CurlInfoDebug';
import { CurlIpResolve } from '../enum/CurlIpResolve';
import { CurlMimeOpt } from '../enum/CurlMimeOpt';
import { CurlNetrc } from '../enum/CurlNetrc';
import { CurlPreReqFunc } from '../enum/CurlPreReqFunc';
import { CurlProgressFunc } from '../enum/CurlProgressFunc';
import { CurlProtocol } from '../enum/CurlProtocol';
import { CurlProxy } from '../enum/CurlProxy';
import { CurlRtspRequest } from '../enum/CurlRtspRequest';
import { CurlSshAuth } from '../enum/CurlSshAuth';
import { CurlSshKeyType, CurlSshKeyMatch } from '../enum/CurlSshKey';
import { CurlSslOpt } from '../enum/CurlSslOpt';
import { CurlSslVersion } from '../enum/CurlSslVersion';
import { CurlTimeCond } from '../enum/CurlTimeCond';
import { CurlUseSsl } from '../enum/CurlUseSsl';
import { CurlWsOptions } from '../enum/CurlWs';
import { Easy } from '../Easy';
import { Share } from '../Share';
import { CurlMime } from '../CurlMime';
/**
* @public
*/
export interface CurlOption {
/**
* Path to an abstract Unix domain socket.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_ABSTRACT_UNIX_SOCKET.html](https://curl.haxx.se/libcurl/c/CURLOPT_ABSTRACT_UNIX_SOCKET.html)
*/
readonly ABSTRACT_UNIX_SOCKET: 'ABSTRACT_UNIX_SOCKET';
/**
* Accept-Encoding and automatic decompressing data.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html](https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html)
*/
readonly ACCEPT_ENCODING: 'ACCEPT_ENCODING';
/**
* Timeout for waiting for the server's connect back to be accepted.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPTTIMEOUT_MS.html](https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPTTIMEOUT_MS.html)
*/
readonly ACCEPTTIMEOUT_MS: 'ACCEPTTIMEOUT_MS';
/**
* IPv6 scope for local addresses.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_ADDRESS_SCOPE.html](https://curl.haxx.se/libcurl/c/CURLOPT_ADDRESS_SCOPE.html)
*/
readonly ADDRESS_SCOPE: 'ADDRESS_SCOPE';
/**
* Specify the Alt-Svc: cache filename.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_ALTSVC.html](https://curl.haxx.se/libcurl/c/CURLOPT_ALTSVC.html)
*/
readonly ALTSVC: 'ALTSVC';
/**
* Enable and configure Alt-Svc: treatment.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_ALTSVC_CTRL.html](https://curl.haxx.se/libcurl/c/CURLOPT_ALTSVC_CTRL.html)
*/
readonly ALTSVC_CTRL: 'ALTSVC_CTRL';
/**
* Append to remote file.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_APPEND.html](https://curl.haxx.se/libcurl/c/CURLOPT_APPEND.html)
*/
readonly APPEND: 'APPEND';
/**
* Automatically set Referer: header.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_AUTOREFERER.html](https://curl.haxx.se/libcurl/c/CURLOPT_AUTOREFERER.html)
*/
readonly AUTOREFERER: 'AUTOREFERER';
/**
* AWS HTTP V4 Signature. See
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_AWS_SIGV4.html](https://curl.haxx.se/libcurl/c/CURLOPT_AWS_SIGV4.html)
*/
readonly AWS_SIGV4: 'AWS_SIGV4';
/**
* Ask for alternate buffer size.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_BUFFERSIZE.html](https://curl.haxx.se/libcurl/c/CURLOPT_BUFFERSIZE.html)
*/
readonly BUFFERSIZE: 'BUFFERSIZE';
/**
* Timeout for CA cache.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CA_CACHE_TIMEOUT.html](https://curl.haxx.se/libcurl/c/CURLOPT_CA_CACHE_TIMEOUT.html)
*/
readonly CA_CACHE_TIMEOUT: 'CA_CACHE_TIMEOUT';
/**
* CA cert bundle.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CAINFO.html](https://curl.haxx.se/libcurl/c/CURLOPT_CAINFO.html)
*/
readonly CAINFO: 'CAINFO';
/**
* CA cert bundle memory buffer.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CAINFO_BLOB.html](https://curl.haxx.se/libcurl/c/CURLOPT_CAINFO_BLOB.html)
*/
readonly CAINFO_BLOB: 'CAINFO_BLOB';
/**
* Path to CA cert bundle.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CAPATH.html](https://curl.haxx.se/libcurl/c/CURLOPT_CAPATH.html)
*/
readonly CAPATH: 'CAPATH';
/**
* Extract certificate info.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CERTINFO.html](https://curl.haxx.se/libcurl/c/CURLOPT_CERTINFO.html)
*/
readonly CERTINFO: 'CERTINFO';
/**
* Callback for wildcard download start of chunk.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CHUNK_BGN_FUNCTION.html](https://curl.haxx.se/libcurl/c/CURLOPT_CHUNK_BGN_FUNCTION.html)
*/
readonly CHUNK_BGN_FUNCTION: 'CHUNK_BGN_FUNCTION';
/**
* Callback for wildcard download end of chunk.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CHUNK_END_FUNCTION.html](https://curl.haxx.se/libcurl/c/CURLOPT_CHUNK_END_FUNCTION.html)
*/
readonly CHUNK_END_FUNCTION: 'CHUNK_END_FUNCTION';
/**
* Only connect, nothing else.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CONNECT_ONLY.html](https://curl.haxx.se/libcurl/c/CURLOPT_CONNECT_ONLY.html)
*/
readonly CONNECT_ONLY: 'CONNECT_ONLY';
/**
* Connect to a specific host and port.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CONNECT_TO.html](https://curl.haxx.se/libcurl/c/CURLOPT_CONNECT_TO.html)
*/
readonly CONNECT_TO: 'CONNECT_TO';
/**
* Timeout for the connection phase.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT.html](https://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT.html)
*/
readonly CONNECTTIMEOUT: 'CONNECTTIMEOUT';
/**
* Millisecond timeout for the connection phase.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT_MS.html](https://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT_MS.html)
*/
readonly CONNECTTIMEOUT_MS: 'CONNECTTIMEOUT_MS';
/**
* Cookie(s) to send.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_COOKIE.html](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIE.html)
*/
readonly COOKIE: 'COOKIE';
/**
* File to read cookies from.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_COOKIEFILE.html](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIEFILE.html)
*/
readonly COOKIEFILE: 'COOKIEFILE';
/**
* File to write cookies to.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_COOKIEJAR.html](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIEJAR.html)
*/
readonly COOKIEJAR: 'COOKIEJAR';
/**
* Add or control cookies.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_COOKIELIST.html](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIELIST.html)
*/
readonly COOKIELIST: 'COOKIELIST';
/**
* Start a new cookie session.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_COOKIESESSION.html](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIESESSION.html)
*/
readonly COOKIESESSION: 'COOKIESESSION';
/**
* Convert newlines.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CRLF.html](https://curl.haxx.se/libcurl/c/CURLOPT_CRLF.html)
*/
readonly CRLF: 'CRLF';
/**
* Certificate Revocation List.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CRLFILE.html](https://curl.haxx.se/libcurl/c/CURLOPT_CRLFILE.html)
*/
readonly CRLFILE: 'CRLFILE';
/**
* Custom request/method.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_CUSTOMREQUEST.html](https://curl.haxx.se/libcurl/c/CURLOPT_CUSTOMREQUEST.html)
*/
readonly CUSTOMREQUEST: 'CUSTOMREQUEST';
/**
* Callback for debug information.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DEBUGFUNCTION.html](https://curl.haxx.se/libcurl/c/CURLOPT_DEBUGFUNCTION.html)
*/
readonly DEBUGFUNCTION: 'DEBUGFUNCTION';
/**
* Default protocol.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DEFAULT_PROTOCOL.html](https://curl.haxx.se/libcurl/c/CURLOPT_DEFAULT_PROTOCOL.html)
*/
readonly DEFAULT_PROTOCOL: 'DEFAULT_PROTOCOL';
/**
* List only.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DIRLISTONLY.html](https://curl.haxx.se/libcurl/c/CURLOPT_DIRLISTONLY.html)
*/
readonly DIRLISTONLY: 'DIRLISTONLY';
/**
* Do not allow username in URL.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DISALLOW_USERNAME_IN_URL.html](https://curl.haxx.se/libcurl/c/CURLOPT_DISALLOW_USERNAME_IN_URL.html)
*/
readonly DISALLOW_USERNAME_IN_URL: 'DISALLOW_USERNAME_IN_URL';
/**
* Timeout for DNS cache.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DNS_CACHE_TIMEOUT.html](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_CACHE_TIMEOUT.html)
*/
readonly DNS_CACHE_TIMEOUT: 'DNS_CACHE_TIMEOUT';
/**
* Bind name resolves to this interface.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DNS_INTERFACE.html](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_INTERFACE.html)
*/
readonly DNS_INTERFACE: 'DNS_INTERFACE';
/**
* Bind name resolves to this IP4 address. See
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DNS_LOCAL_IP4.html](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_LOCAL_IP4.html)
*/
readonly DNS_LOCAL_IP4: 'DNS_LOCAL_IP4';
/**
* Bind name resolves to this IP6 address. See
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DNS_LOCAL_IP6.html](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_LOCAL_IP6.html)
*/
readonly DNS_LOCAL_IP6: 'DNS_LOCAL_IP6';
/**
* Preferred DNS servers.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DNS_SERVERS.html](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_SERVERS.html)
*/
readonly DNS_SERVERS: 'DNS_SERVERS';
/**
* Shuffle addresses before use.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DNS_SHUFFLE_ADDRESSES.html](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_SHUFFLE_ADDRESSES.html)
*/
readonly DNS_SHUFFLE_ADDRESSES: 'DNS_SHUFFLE_ADDRESSES';
/**
* OBSOLETE Enable global DNS cache.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DNS_USE_GLOBAL_CACHE.html](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_USE_GLOBAL_CACHE.html)
*/
readonly DNS_USE_GLOBAL_CACHE: 'DNS_USE_GLOBAL_CACHE';
/**
* Verify the hostname in the DoH (DNS-over-HTTPS) SSL certificate.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DOH_SSL_VERIFYHOST.html](https://curl.haxx.se/libcurl/c/CURLOPT_DOH_SSL_VERIFYHOST.html)
*/
readonly DOH_SSL_VERIFYHOST: 'DOH_SSL_VERIFYHOST';
/**
* Verify the DoH (DNS-over-HTTPS) SSL certificate.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DOH_SSL_VERIFYPEER.html](https://curl.haxx.se/libcurl/c/CURLOPT_DOH_SSL_VERIFYPEER.html)
*/
readonly DOH_SSL_VERIFYPEER: 'DOH_SSL_VERIFYPEER';
/**
* Verify the DoH (DNS-over-HTTPS) SSL certificate's status.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DOH_SSL_VERIFYSTATUS.html](https://curl.haxx.se/libcurl/c/CURLOPT_DOH_SSL_VERIFYSTATUS.html)
*/
readonly DOH_SSL_VERIFYSTATUS: 'DOH_SSL_VERIFYSTATUS';
/**
* Use this DoH server for name resolves.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_DOH_URL.html](https://curl.haxx.se/libcurl/c/CURLOPT_DOH_URL.html)
*/
readonly DOH_URL: 'DOH_URL';
/**
* Set the configuration for ECH.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_ECH.html](https://curl.haxx.se/libcurl/c/CURLOPT_ECH.html)
*/
readonly ECH: 'ECH';
/**
* OBSOLETE Identify EGD socket for entropy.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_EGDSOCKET.html](https://curl.haxx.se/libcurl/c/CURLOPT_EGDSOCKET.html)
*/
readonly EGDSOCKET: 'EGDSOCKET';
/**
* 100-continue timeout. See
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_EXPECT_100_TIMEOUT_MS.html](https://curl.haxx.se/libcurl/c/CURLOPT_EXPECT_100_TIMEOUT_MS.html)
*/
readonly EXPECT_100_TIMEOUT_MS: 'EXPECT_100_TIMEOUT_MS';
/**
* Fail on HTTP 4xx errors.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FAILONERROR.html](https://curl.haxx.se/libcurl/c/CURLOPT_FAILONERROR.html)
*/
readonly FAILONERROR: 'FAILONERROR';
/**
* Request file modification date and time.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FILETIME.html](https://curl.haxx.se/libcurl/c/CURLOPT_FILETIME.html)
*/
readonly FILETIME: 'FILETIME';
/**
* Callback for wildcard matching.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FNMATCH_FUNCTION.html](https://curl.haxx.se/libcurl/c/CURLOPT_FNMATCH_FUNCTION.html)
*/
readonly FNMATCH_FUNCTION: 'FNMATCH_FUNCTION';
/**
* Follow HTTP redirects.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FOLLOWLOCATION.html](https://curl.haxx.se/libcurl/c/CURLOPT_FOLLOWLOCATION.html)
*/
readonly FOLLOWLOCATION: 'FOLLOWLOCATION';
/**
* Prevent subsequent connections from reusing this.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FORBID_REUSE.html](https://curl.haxx.se/libcurl/c/CURLOPT_FORBID_REUSE.html)
*/
readonly FORBID_REUSE: 'FORBID_REUSE';
/**
* Use a new connection.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FRESH_CONNECT.html](https://curl.haxx.se/libcurl/c/CURLOPT_FRESH_CONNECT.html)
*/
readonly FRESH_CONNECT: 'FRESH_CONNECT';
/**
* Send ACCT command.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FTP_ACCOUNT.html](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_ACCOUNT.html)
*/
readonly FTP_ACCOUNT: 'FTP_ACCOUNT';
/**
* Alternative to USER.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FTP_ALTERNATIVE_TO_USER.html](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_ALTERNATIVE_TO_USER.html)
*/
readonly FTP_ALTERNATIVE_TO_USER: 'FTP_ALTERNATIVE_TO_USER';
/**
* Create missing directories on the remote server.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FTP_CREATE_MISSING_DIRS.html](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_CREATE_MISSING_DIRS.html)
*/
readonly FTP_CREATE_MISSING_DIRS: 'FTP_CREATE_MISSING_DIRS';
/**
* Specify how to reach files.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FTP_FILEMETHOD.html](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_FILEMETHOD.html)
*/
readonly FTP_FILEMETHOD: 'FTP_FILEMETHOD';
/**
* Ignore the IP address in the PASV response.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SKIP_PASV_IP.html](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SKIP_PASV_IP.html)
*/
readonly FTP_SKIP_PASV_IP: 'FTP_SKIP_PASV_IP';
/**
* Back to non-TLS again after authentication.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SSL_CCC.html](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SSL_CCC.html)
*/
readonly FTP_SSL_CCC: 'FTP_SSL_CCC';
/**
* Use EPRT.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_EPRT.html](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_EPRT.html)
*/
readonly FTP_USE_EPRT: 'FTP_USE_EPRT';
/**
* Use EPSV.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_EPSV.html](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_EPSV.html)
*/
readonly FTP_USE_EPSV: 'FTP_USE_EPSV';
/**
* Use PRET.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_PRET.html](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_PRET.html)
*/
readonly FTP_USE_PRET: 'FTP_USE_PRET';
/**
* Use active FTP.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FTPPORT.html](https://curl.haxx.se/libcurl/c/CURLOPT_FTPPORT.html)
*/
readonly FTPPORT: 'FTPPORT';
/**
* Control how to do TLS.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_FTPSSLAUTH.html](https://curl.haxx.se/libcurl/c/CURLOPT_FTPSSLAUTH.html)
*/
readonly FTPSSLAUTH: 'FTPSSLAUTH';
/**
* Disable GSS-API delegation.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_GSSAPI_DELEGATION.html](https://curl.haxx.se/libcurl/c/CURLOPT_GSSAPI_DELEGATION.html)
*/
readonly GSSAPI_DELEGATION: 'GSSAPI_DELEGATION';
/**
* Timeout for happy eyeballs.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.html](https://curl.haxx.se/libcurl/c/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.html)
*/
readonly HAPPY_EYEBALLS_TIMEOUT_MS: 'HAPPY_EYEBALLS_TIMEOUT_MS';
/**
* Spoof the client IP in an HAProxy PROXY protocol v1 header.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HAPROXY_CLIENT_IP.html](https://curl.haxx.se/libcurl/c/CURLOPT_HAPROXY_CLIENT_IP.html)
*/
readonly HAPROXY_CLIENT_IP: 'HAPROXY_CLIENT_IP';
/**
* Send an HAProxy PROXY protocol v1 header.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HAPROXYPROTOCOL.html](https://curl.haxx.se/libcurl/c/CURLOPT_HAPROXYPROTOCOL.html)
*/
readonly HAPROXYPROTOCOL: 'HAPROXYPROTOCOL';
/**
* Include the header in the body output.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HEADER.html](https://curl.haxx.se/libcurl/c/CURLOPT_HEADER.html)
*/
readonly HEADER: 'HEADER';
/**
* Callback for writing received headers.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HEADERFUNCTION.html](https://curl.haxx.se/libcurl/c/CURLOPT_HEADERFUNCTION.html)
*/
readonly HEADERFUNCTION: 'HEADERFUNCTION';
/**
* Control custom headers.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HEADEROPT.html](https://curl.haxx.se/libcurl/c/CURLOPT_HEADEROPT.html)
*/
readonly HEADEROPT: 'HEADEROPT';
/**
* Set HSTS cache file.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HSTS.html](https://curl.haxx.se/libcurl/c/CURLOPT_HSTS.html)
*/
readonly HSTS: 'HSTS';
/**
* Enable HSTS.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HSTS_CTRL.html](https://curl.haxx.se/libcurl/c/CURLOPT_HSTS_CTRL.html)
*/
readonly HSTS_CTRL: 'HSTS_CTRL';
/**
* Set HSTS read callback.
*
* You can either return a single `CurlHstsReadCallbackResult` object or an array of `CurlHstsReadCallbackResult` objects.
* If returning an array, the callback will only be called once per request.
* If returning a single object, the callback will be called multiple times until `null` is returned.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HSTSREADFUNCTION.html](https://curl.haxx.se/libcurl/c/CURLOPT_HSTSREADFUNCTION.html)
*/
readonly HSTSREADFUNCTION: 'HSTSREADFUNCTION';
/**
* Set HSTS write callback.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HSTSWRITEFUNCTION.html](https://curl.haxx.se/libcurl/c/CURLOPT_HSTSWRITEFUNCTION.html)
*/
readonly HSTSWRITEFUNCTION: 'HSTSWRITEFUNCTION';
/**
* Disable Content decoding.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_CONTENT_DECODING.html](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_CONTENT_DECODING.html)
*/
readonly HTTP_CONTENT_DECODING: 'HTTP_CONTENT_DECODING';
/**
* Disable Transfer decoding.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_TRANSFER_DECODING.html](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_TRANSFER_DECODING.html)
*/
readonly HTTP_TRANSFER_DECODING: 'HTTP_TRANSFER_DECODING';
/**
* HTTP version to use.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_VERSION.html](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_VERSION.html)
*/
readonly HTTP_VERSION: 'HTTP_VERSION';
/**
* Allow HTTP/0.9 responses.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HTTP09_ALLOWED.html](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP09_ALLOWED.html)
*/
readonly HTTP09_ALLOWED: 'HTTP09_ALLOWED';
/**
* Alternative versions of 200 OK. See
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HTTP200ALIASES.html](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP200ALIASES.html)
*/
readonly HTTP200ALIASES: 'HTTP200ALIASES';
/**
* HTTP server authentication methods.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html)
*/
readonly HTTPAUTH: 'HTTPAUTH';
/**
* Do an HTTP GET request.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HTTPGET.html](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPGET.html)
*/
readonly HTTPGET: 'HTTPGET';
/**
* Custom HTTP headers.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HTTPHEADER.html](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPHEADER.html)
*/
readonly HTTPHEADER: 'HTTPHEADER';
/**
* Deprecated option Multipart formpost HTTP POST.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HTTPPOST.html](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPPOST.html)
*/
readonly HTTPPOST: 'HTTPPOST';
/**
* Tunnel through the HTTP proxy.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_HTTPPROXYTUNNEL.html](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPPROXYTUNNEL.html)
*/
readonly HTTPPROXYTUNNEL: 'HTTPPROXYTUNNEL';
/**
* Ignore Content-Length.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_IGNORE_CONTENT_LENGTH.html](https://curl.haxx.se/libcurl/c/CURLOPT_IGNORE_CONTENT_LENGTH.html)
*/
readonly IGNORE_CONTENT_LENGTH: 'IGNORE_CONTENT_LENGTH';
/**
* Size of file to send.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_INFILESIZE.html](https://curl.haxx.se/libcurl/c/CURLOPT_INFILESIZE.html)
*/
readonly INFILESIZE: 'INFILESIZE';
/**
* Size of file to send.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_INFILESIZE_LARGE.html](https://curl.haxx.se/libcurl/c/CURLOPT_INFILESIZE_LARGE.html)
*/
readonly INFILESIZE_LARGE: 'INFILESIZE_LARGE';
/**
* Bind connection locally to this.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_INTERFACE.html](https://curl.haxx.se/libcurl/c/CURLOPT_INTERFACE.html)
*/
readonly INTERFACE: 'INTERFACE';
/**
* Callback for RTSP interleaved data.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_INTERLEAVEFUNCTION.html](https://curl.haxx.se/libcurl/c/CURLOPT_INTERLEAVEFUNCTION.html)
*/
readonly INTERLEAVEFUNCTION: 'INTERLEAVEFUNCTION';
/**
* IP version to use.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_IPRESOLVE.html](https://curl.haxx.se/libcurl/c/CURLOPT_IPRESOLVE.html)
*/
readonly IPRESOLVE: 'IPRESOLVE';
/**
* Issuer certificate.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_ISSUERCERT.html](https://curl.haxx.se/libcurl/c/CURLOPT_ISSUERCERT.html)
*/
readonly ISSUERCERT: 'ISSUERCERT';
/**
* Issuer certificate memory buffer.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_ISSUERCERT_BLOB.html](https://curl.haxx.se/libcurl/c/CURLOPT_ISSUERCERT_BLOB.html)
*/
readonly ISSUERCERT_BLOB: 'ISSUERCERT_BLOB';
/**
* Keep sending on HTTP \>= 300 errors.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_KEEP_SENDING_ON_ERROR.html](https://curl.haxx.se/libcurl/c/CURLOPT_KEEP_SENDING_ON_ERROR.html)
*/
readonly KEEP_SENDING_ON_ERROR: 'KEEP_SENDING_ON_ERROR';
/**
* Client key password.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_KEYPASSWD.html](https://curl.haxx.se/libcurl/c/CURLOPT_KEYPASSWD.html)
*/
readonly KEYPASSWD: 'KEYPASSWD';
/**
* OBSOLETE. Kerberos security level.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_KRBLEVEL.html](https://curl.haxx.se/libcurl/c/CURLOPT_KRBLEVEL.html)
*/
readonly KRBLEVEL: 'KRBLEVEL';
/**
* Bind connection locally to this port.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_LOCALPORT.html](https://curl.haxx.se/libcurl/c/CURLOPT_LOCALPORT.html)
*/
readonly LOCALPORT: 'LOCALPORT';
/**
* Bind connection locally to port range.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_LOCALPORTRANGE.html](https://curl.haxx.se/libcurl/c/CURLOPT_LOCALPORTRANGE.html)
*/
readonly LOCALPORTRANGE: 'LOCALPORTRANGE';
/**
* Login options.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_LOGIN_OPTIONS.html](https://curl.haxx.se/libcurl/c/CURLOPT_LOGIN_OPTIONS.html)
*/
readonly LOGIN_OPTIONS: 'LOGIN_OPTIONS';
/**
* Low speed limit to abort transfer.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_LOW_SPEED_LIMIT.html](https://curl.haxx.se/libcurl/c/CURLOPT_LOW_SPEED_LIMIT.html)
*/
readonly LOW_SPEED_LIMIT: 'LOW_SPEED_LIMIT';
/**
* Time to be below the speed to trigger low speed abort.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_LOW_SPEED_TIME.html](https://curl.haxx.se/libcurl/c/CURLOPT_LOW_SPEED_TIME.html)
*/
readonly LOW_SPEED_TIME: 'LOW_SPEED_TIME';
/**
* Authentication address.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_AUTH.html](https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_AUTH.html)
*/
readonly MAIL_AUTH: 'MAIL_AUTH';
/**
* Address of the sender.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_FROM.html](https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_FROM.html)
*/
readonly MAIL_FROM: 'MAIL_FROM';
/**
* Address of the recipients.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_RCPT.html](https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_RCPT.html)
*/
readonly MAIL_RCPT: 'MAIL_RCPT';
/**
* Allow RCPT TO command to fail for some recipients.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_RCPT_ALLOWFAILS.html](https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_RCPT_ALLOWFAILS.html)
*/
readonly MAIL_RCPT_ALLOWFAILS: 'MAIL_RCPT_ALLOWFAILS';
/**
* Cap the download speed to this.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MAX_RECV_SPEED_LARGE.html](https://curl.haxx.se/libcurl/c/CURLOPT_MAX_RECV_SPEED_LARGE.html)
*/
readonly MAX_RECV_SPEED_LARGE: 'MAX_RECV_SPEED_LARGE';
/**
* Cap the upload speed to this.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MAX_SEND_SPEED_LARGE.html](https://curl.haxx.se/libcurl/c/CURLOPT_MAX_SEND_SPEED_LARGE.html)
*/
readonly MAX_SEND_SPEED_LARGE: 'MAX_SEND_SPEED_LARGE';
/**
* Limit the age (idle time) of connections for reuse.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MAXAGE_CONN.html](https://curl.haxx.se/libcurl/c/CURLOPT_MAXAGE_CONN.html)
*/
readonly MAXAGE_CONN: 'MAXAGE_CONN';
/**
* Maximum number of connections in the connection pool.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MAXCONNECTS.html](https://curl.haxx.se/libcurl/c/CURLOPT_MAXCONNECTS.html)
*/
readonly MAXCONNECTS: 'MAXCONNECTS';
/**
* Maximum file size to get.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MAXFILESIZE.html](https://curl.haxx.se/libcurl/c/CURLOPT_MAXFILESIZE.html)
*/
readonly MAXFILESIZE: 'MAXFILESIZE';
/**
* Maximum file size to get.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MAXFILESIZE_LARGE.html](https://curl.haxx.se/libcurl/c/CURLOPT_MAXFILESIZE_LARGE.html)
*/
readonly MAXFILESIZE_LARGE: 'MAXFILESIZE_LARGE';
/**
* Limit the age (since creation) of connections for reuse.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MAXLIFETIME_CONN.html](https://curl.haxx.se/libcurl/c/CURLOPT_MAXLIFETIME_CONN.html)
*/
readonly MAXLIFETIME_CONN: 'MAXLIFETIME_CONN';
/**
* Maximum number of redirects to follow.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MAXREDIRS.html](https://curl.haxx.se/libcurl/c/CURLOPT_MAXREDIRS.html)
*/
readonly MAXREDIRS: 'MAXREDIRS';
/**
* Set MIME option flags.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MIME_OPTIONS.html](https://curl.haxx.se/libcurl/c/CURLOPT_MIME_OPTIONS.html)
*/
readonly MIME_OPTIONS: 'MIME_OPTIONS';
/**
* Post/send MIME data.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_MIMEPOST.html](https://curl.haxx.se/libcurl/c/CURLOPT_MIMEPOST.html)
*/
readonly MIMEPOST: 'MIMEPOST';
/**
* Enable .netrc parsing.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_NETRC.html](https://curl.haxx.se/libcurl/c/CURLOPT_NETRC.html)
*/
readonly NETRC: 'NETRC';
/**
* .netrc filename.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_NETRC_FILE.html](https://curl.haxx.se/libcurl/c/CURLOPT_NETRC_FILE.html)
*/
readonly NETRC_FILE: 'NETRC_FILE';
/**
* Mode for creating new remote directories.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_NEW_DIRECTORY_PERMS.html](https://curl.haxx.se/libcurl/c/CURLOPT_NEW_DIRECTORY_PERMS.html)
*/
readonly NEW_DIRECTORY_PERMS: 'NEW_DIRECTORY_PERMS';
/**
* Mode for creating new remote files.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_NEW_FILE_PERMS.html](https://curl.haxx.se/libcurl/c/CURLOPT_NEW_FILE_PERMS.html)
*/
readonly NEW_FILE_PERMS: 'NEW_FILE_PERMS';
/**
* Do not get the body contents.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_NOBODY.html](https://curl.haxx.se/libcurl/c/CURLOPT_NOBODY.html)
*/
readonly NOBODY: 'NOBODY';
/**
* Shut off the progress meter.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_NOPROGRESS.html](https://curl.haxx.se/libcurl/c/CURLOPT_NOPROGRESS.html)
*/
readonly NOPROGRESS: 'NOPROGRESS';
/**
* Filter out hosts from proxy use.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_NOPROXY.html](https://curl.haxx.se/libcurl/c/CURLOPT_NOPROXY.html)
*/
readonly NOPROXY: 'NOPROXY';
/**
* Do not install signal handlers.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_NOSIGNAL.html](https://curl.haxx.se/libcurl/c/CURLOPT_NOSIGNAL.html)
*/
readonly NOSIGNAL: 'NOSIGNAL';
/**
* Password.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PASSWORD.html](https://curl.haxx.se/libcurl/c/CURLOPT_PASSWORD.html)
*/
readonly PASSWORD: 'PASSWORD';
/**
* Disable squashing /../ and /./ sequences in the path.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PATH_AS_IS.html](https://curl.haxx.se/libcurl/c/CURLOPT_PATH_AS_IS.html)
*/
readonly PATH_AS_IS: 'PATH_AS_IS';
/**
* Set pinned SSL public key .
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PINNEDPUBLICKEY.html](https://curl.haxx.se/libcurl/c/CURLOPT_PINNEDPUBLICKEY.html)
*/
readonly PINNEDPUBLICKEY: 'PINNEDPUBLICKEY';
/**
* Wait on connection to pipeline on it.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PIPEWAIT.html](https://curl.haxx.se/libcurl/c/CURLOPT_PIPEWAIT.html)
*/
readonly PIPEWAIT: 'PIPEWAIT';
/**
* Port number to connect to.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PORT.html](https://curl.haxx.se/libcurl/c/CURLOPT_PORT.html)
*/
readonly PORT: 'PORT';
/**
* Make an HTTP POST.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_POST.html](https://curl.haxx.se/libcurl/c/CURLOPT_POST.html)
*/
readonly POST: 'POST';
/**
* Send a POST with this data - does not copy it.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDS.html](https://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDS.html)
*/
readonly POSTFIELDS: 'POSTFIELDS';
/**
* The POST data is this big.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDSIZE.html](https://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDSIZE.html)
*/
readonly POSTFIELDSIZE: 'POSTFIELDSIZE';
/**
* The POST data is this big.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDSIZE_LARGE.html](https://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDSIZE_LARGE.html)
*/
readonly POSTFIELDSIZE_LARGE: 'POSTFIELDSIZE_LARGE';
/**
* Commands to run after transfer.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_POSTQUOTE.html](https://curl.haxx.se/libcurl/c/CURLOPT_POSTQUOTE.html)
*/
readonly POSTQUOTE: 'POSTQUOTE';
/**
* How to act on redirects after POST.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_POSTREDIR.html](https://curl.haxx.se/libcurl/c/CURLOPT_POSTREDIR.html)
*/
readonly POSTREDIR: 'POSTREDIR';
/**
* Socks proxy to use.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PRE_PROXY.html](https://curl.haxx.se/libcurl/c/CURLOPT_PRE_PROXY.html)
*/
readonly PRE_PROXY: 'PRE_PROXY';
/**
* Commands to run just before transfer.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PREQUOTE.html](https://curl.haxx.se/libcurl/c/CURLOPT_PREQUOTE.html)
*/
readonly PREQUOTE: 'PREQUOTE';
/**
* Callback to be called after a connection is established but before a request is made on that connection.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PREREQFUNCTION.html](https://curl.haxx.se/libcurl/c/CURLOPT_PREREQFUNCTION.html)
*/
readonly PREREQFUNCTION: 'PREREQFUNCTION';
/**
* OBSOLETE callback for progress meter.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROGRESSFUNCTION.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROGRESSFUNCTION.html)
*/
readonly PROGRESSFUNCTION: 'PROGRESSFUNCTION';
/**
* Deprecated option Allowed protocols.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html)
*/
readonly PROTOCOLS: 'PROTOCOLS';
/**
* Allowed protocols.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS_STR.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS_STR.html)
*/
readonly PROTOCOLS_STR: 'PROTOCOLS_STR';
/**
* Proxy to use.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY.html)
*/
readonly PROXY: 'PROXY';
/**
* Proxy CA cert bundle.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CAINFO.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CAINFO.html)
*/
readonly PROXY_CAINFO: 'PROXY_CAINFO';
/**
* Proxy CA cert bundle memory buffer.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CAINFO_BLOB.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CAINFO_BLOB.html)
*/
readonly PROXY_CAINFO_BLOB: 'PROXY_CAINFO_BLOB';
/**
* Path to proxy CA cert bundle.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CAPATH.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CAPATH.html)
*/
readonly PROXY_CAPATH: 'PROXY_CAPATH';
/**
* Proxy Certificate Revocation List.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CRLFILE.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CRLFILE.html)
*/
readonly PROXY_CRLFILE: 'PROXY_CRLFILE';
/**
* Proxy issuer certificate.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_ISSUERCERT.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_ISSUERCERT.html)
*/
readonly PROXY_ISSUERCERT: 'PROXY_ISSUERCERT';
/**
* Proxy issuer certificate memory buffer.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_ISSUERCERT_BLOB.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_ISSUERCERT_BLOB.html)
*/
readonly PROXY_ISSUERCERT_BLOB: 'PROXY_ISSUERCERT_BLOB';
/**
* Proxy client key password.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_KEYPASSWD.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_KEYPASSWD.html)
*/
readonly PROXY_KEYPASSWD: 'PROXY_KEYPASSWD';
/**
* Set the proxy's pinned SSL public key.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_PINNEDPUBLICKEY.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_PINNEDPUBLICKEY.html)
*/
readonly PROXY_PINNEDPUBLICKEY: 'PROXY_PINNEDPUBLICKEY';
/**
* Proxy authentication service name.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SERVICE_NAME.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SERVICE_NAME.html)
*/
readonly PROXY_SERVICE_NAME: 'PROXY_SERVICE_NAME';
/**
* Proxy ciphers to use.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_CIPHER_LIST.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_CIPHER_LIST.html)
*/
readonly PROXY_SSL_CIPHER_LIST: 'PROXY_SSL_CIPHER_LIST';
/**
* Control proxy SSL behavior.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_OPTIONS.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_OPTIONS.html)
*/
readonly PROXY_SSL_OPTIONS: 'PROXY_SSL_OPTIONS';
/**
* Verify the hostname in the proxy SSL certificate.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_VERIFYHOST.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_VERIFYHOST.html)
*/
readonly PROXY_SSL_VERIFYHOST: 'PROXY_SSL_VERIFYHOST';
/**
* Verify the proxy SSL certificate.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_VERIFYPEER.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_VERIFYPEER.html)
*/
readonly PROXY_SSL_VERIFYPEER: 'PROXY_SSL_VERIFYPEER';
/**
* Proxy client cert.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLCERT.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLCERT.html)
*/
readonly PROXY_SSLCERT: 'PROXY_SSLCERT';
/**
* Proxy client cert memory buffer.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLCERT_BLOB.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLCERT_BLOB.html)
*/
readonly PROXY_SSLCERT_BLOB: 'PROXY_SSLCERT_BLOB';
/**
* Proxy client cert type.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLCERTTYPE.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLCERTTYPE.html)
*/
readonly PROXY_SSLCERTTYPE: 'PROXY_SSLCERTTYPE';
/**
* Proxy client key.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLKEY.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLKEY.html)
*/
readonly PROXY_SSLKEY: 'PROXY_SSLKEY';
/**
* Proxy client key.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLKEY_BLOB.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLKEY_BLOB.html)
*/
readonly PROXY_SSLKEY_BLOB: 'PROXY_SSLKEY_BLOB';
/**
* Proxy client key type.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLKEYTYPE.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLKEYTYPE.html)
*/
readonly PROXY_SSLKEYTYPE: 'PROXY_SSLKEYTYPE';
/**
* Proxy SSL version to use.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLVERSION.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLVERSION.html)
*/
readonly PROXY_SSLVERSION: 'PROXY_SSLVERSION';
/**
* Proxy TLS 1.3 cipher suites to use. See
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLS13_CIPHERS.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLS13_CIPHERS.html)
*/
readonly PROXY_TLS13_CIPHERS: 'PROXY_TLS13_CIPHERS';
/**
* Proxy TLS authentication password.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLSAUTH_PASSWORD.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLSAUTH_PASSWORD.html)
*/
readonly PROXY_TLSAUTH_PASSWORD: 'PROXY_TLSAUTH_PASSWORD';
/**
* Proxy TLS authentication methods.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLSAUTH_TYPE.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLSAUTH_TYPE.html)
*/
readonly PROXY_TLSAUTH_TYPE: 'PROXY_TLSAUTH_TYPE';
/**
* Proxy TLS authentication username.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLSAUTH_USERNAME.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLSAUTH_USERNAME.html)
*/
readonly PROXY_TLSAUTH_USERNAME: 'PROXY_TLSAUTH_USERNAME';
/**
* Add transfer mode to URL over proxy.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TRANSFER_MODE.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TRANSFER_MODE.html)
*/
readonly PROXY_TRANSFER_MODE: 'PROXY_TRANSFER_MODE';
/**
* HTTP proxy authentication methods.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXYAUTH.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYAUTH.html)
*/
readonly PROXYAUTH: 'PROXYAUTH';
/**
* Custom HTTP headers sent to proxy.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXYHEADER.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYHEADER.html)
*/
readonly PROXYHEADER: 'PROXYHEADER';
/**
* Proxy password.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXYPASSWORD.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYPASSWORD.html)
*/
readonly PROXYPASSWORD: 'PROXYPASSWORD';
/**
* Proxy port to use.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXYPORT.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYPORT.html)
*/
readonly PROXYPORT: 'PROXYPORT';
/**
* Proxy type.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXYTYPE.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYTYPE.html)
*/
readonly PROXYTYPE: 'PROXYTYPE';
/**
* Proxy username.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXYUSERNAME.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYUSERNAME.html)
*/
readonly PROXYUSERNAME: 'PROXYUSERNAME';
/**
* Proxy username and password.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PROXYUSERPWD.html](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYUSERPWD.html)
*/
readonly PROXYUSERPWD: 'PROXYUSERPWD';
/**
* Deprecated option Issue an HTTP PUT request.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_PUT.html](https://curl.haxx.se/libcurl/c/CURLOPT_PUT.html)
*/
readonly PUT: 'PUT';
/**
* To be set by toplevel tools like "curl" to skip lengthy cleanups when they are about to call exit() anyway.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_QUICK_EXIT.html](https://curl.haxx.se/libcurl/c/CURLOPT_QUICK_EXIT.html)
*/
readonly QUICK_EXIT: 'QUICK_EXIT';
/**
* Commands to run before transfer.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_QUOTE.html](https://curl.haxx.se/libcurl/c/CURLOPT_QUOTE.html)
*/
readonly QUOTE: 'QUOTE';
/**
* OBSOLETE Provide source for entropy random data.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_RANDOM_FILE.html](https://curl.haxx.se/libcurl/c/CURLOPT_RANDOM_FILE.html)
*/
readonly RANDOM_FILE: 'RANDOM_FILE';
/**
* Range requests.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_RANGE.html](https://curl.haxx.se/libcurl/c/CURLOPT_RANGE.html)
*/
readonly RANGE: 'RANGE';
/**
* Data pointer to pass to the read callback.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_READDATA.html](https://curl.haxx.se/libcurl/c/CURLOPT_READDATA.html)
*/
readonly READDATA: 'READDATA';
/**
* Callback for reading data.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_READFUNCTION.html](https://curl.haxx.se/libcurl/c/CURLOPT_READFUNCTION.html)
*/
readonly READFUNCTION: 'READFUNCTION';
/**
* Deprecated option Protocols to allow redirects to.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/CURLOPT_REDIR_PROTOCOLS.html](https://curl.haxx.se/libcurl/c/CURLOPT_REDIR_PROTOCOLS.html)
*/
readonly REDIR_PROTOCOLS: 'REDIR_PROTOCOLS';
/**
* Protocols to allow redirects to.
*
* Official libcurl documentation: [https://curl.haxx.se/libcurl/c/C