node-libcurl-ja3
Version:
Node.js native bindings for libcurl-impersonate. Impersonate Chrome, Edge, Firefox and Safari TLS fingerprints.
1,392 lines • 262 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.
*/
/// <reference types="node" />
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 { 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 { CurlSslOpt } from '../enum/CurlSslOpt';
import { CurlSslVersion } from '../enum/CurlSslVersion';
import { CurlTimeCond } from '../enum/CurlTimeCond';
import { CurlUseSsl } from '../enum/CurlUseSsl';
import { EasyNativeBinding } from '../types/EasyNativeBinding';
import { Share } from '../Share';
/**
* @public
*/
export interface CurlOption {
/**
* Path to an abstract Unix domain socket.
*
* @Link [`CURLOPT_ABSTRACT_UNIX_SOCKET`](https://curl.haxx.se/libcurl/c/CURLOPT_ABSTRACT_UNIX_SOCKET.html)
*/
readonly ABSTRACT_UNIX_SOCKET: 'ABSTRACT_UNIX_SOCKET';
/**
* Accept-Encoding and automatic decompressing data.
*
* @Link [`CURLOPT_ACCEPT_ENCODING`](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.
*
* @Link [`CURLOPT_ACCEPTTIMEOUT_MS`](https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPTTIMEOUT_MS.html)
*/
readonly ACCEPTTIMEOUT_MS: 'ACCEPTTIMEOUT_MS';
/**
* IPv6 scope for local addresses.
*
* @Link [`CURLOPT_ADDRESS_SCOPE`](https://curl.haxx.se/libcurl/c/CURLOPT_ADDRESS_SCOPE.html)
*/
readonly ADDRESS_SCOPE: 'ADDRESS_SCOPE';
/**
* Specify the Alt-Svc: cache filename.
*
* @Link [`CURLOPT_ALTSVC`](https://curl.haxx.se/libcurl/c/CURLOPT_ALTSVC.html)
*/
readonly ALTSVC: 'ALTSVC';
/**
* Enable and configure Alt-Svc: treatment.
*
* @Link [`CURLOPT_ALTSVC_CTRL`](https://curl.haxx.se/libcurl/c/CURLOPT_ALTSVC_CTRL.html)
*/
readonly ALTSVC_CTRL: 'ALTSVC_CTRL';
/**
* Append to remote file.
*
* @Link [`CURLOPT_APPEND`](https://curl.haxx.se/libcurl/c/CURLOPT_APPEND.html)
*/
readonly APPEND: 'APPEND';
/**
* Automatically set Referer: header.
*
* @Link [`CURLOPT_AUTOREFERER`](https://curl.haxx.se/libcurl/c/CURLOPT_AUTOREFERER.html)
*/
readonly AUTOREFERER: 'AUTOREFERER';
/**
* AWS HTTP V4 Signature.
*
* @Link [`CURLOPT_AWS_SIGV4`](https://curl.haxx.se/libcurl/c/CURLOPT_AWS_SIGV4.html)
*/
readonly AWS_SIGV4: 'AWS_SIGV4';
/**
* Ask for alternate buffer size.
*
* @Link [`CURLOPT_BUFFERSIZE`](https://curl.haxx.se/libcurl/c/CURLOPT_BUFFERSIZE.html)
*/
readonly BUFFERSIZE: 'BUFFERSIZE';
/**
* Timeout for CA cache.
*
* @Link [`CURLOPT_CA_CACHE_TIMEOUT`](https://curl.haxx.se/libcurl/c/CURLOPT_CA_CACHE_TIMEOUT.html)
*/
readonly CA_CACHE_TIMEOUT: 'CA_CACHE_TIMEOUT';
/**
* CA cert bundle.
*
* @Link [`CURLOPT_CAINFO`](https://curl.haxx.se/libcurl/c/CURLOPT_CAINFO.html)
*/
readonly CAINFO: 'CAINFO';
/**
* CA cert bundle memory buffer.
*
* @Link [`CURLOPT_CAINFO_BLOB`](https://curl.haxx.se/libcurl/c/CURLOPT_CAINFO_BLOB.html)
*/
readonly CAINFO_BLOB: 'CAINFO_BLOB';
/**
* Path to CA cert bundle.
*
* @Link [`CURLOPT_CAPATH`](https://curl.haxx.se/libcurl/c/CURLOPT_CAPATH.html)
*/
readonly CAPATH: 'CAPATH';
/**
* Extract certificate info.
*
* @Link [`CURLOPT_CERTINFO`](https://curl.haxx.se/libcurl/c/CURLOPT_CERTINFO.html)
*/
readonly CERTINFO: 'CERTINFO';
/**
* Callback for wildcard download start of chunk.
*
* @Link [`CURLOPT_CHUNK_BGN_FUNCTION`](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.
*
* @Link [`CURLOPT_CHUNK_END_FUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_CHUNK_END_FUNCTION.html)
*/
readonly CHUNK_END_FUNCTION: 'CHUNK_END_FUNCTION';
/**
* Only connect, nothing else.
*
* @Link [`CURLOPT_CONNECT_ONLY`](https://curl.haxx.se/libcurl/c/CURLOPT_CONNECT_ONLY.html)
*/
readonly CONNECT_ONLY: 'CONNECT_ONLY';
/**
* Connect to a specific host and port.
*
* @Link [`CURLOPT_CONNECT_TO`](https://curl.haxx.se/libcurl/c/CURLOPT_CONNECT_TO.html)
*/
readonly CONNECT_TO: 'CONNECT_TO';
/**
* Timeout for the connection phase.
*
* @Link [`CURLOPT_CONNECTTIMEOUT`](https://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT.html)
*/
readonly CONNECTTIMEOUT: 'CONNECTTIMEOUT';
/**
* Millisecond timeout for the connection phase.
*
* @Link [`CURLOPT_CONNECTTIMEOUT_MS`](https://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT_MS.html)
*/
readonly CONNECTTIMEOUT_MS: 'CONNECTTIMEOUT_MS';
/**
* Cookie(s) to send.
*
* @Link [`CURLOPT_COOKIE`](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIE.html)
*/
readonly COOKIE: 'COOKIE';
/**
* File to read cookies from.
*
* @Link [`CURLOPT_COOKIEFILE`](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIEFILE.html)
*/
readonly COOKIEFILE: 'COOKIEFILE';
/**
* File to write cookies to.
*
* @Link [`CURLOPT_COOKIEJAR`](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIEJAR.html)
*/
readonly COOKIEJAR: 'COOKIEJAR';
/**
* Add or control cookies.
*
* @Link [`CURLOPT_COOKIELIST`](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIELIST.html)
*/
readonly COOKIELIST: 'COOKIELIST';
/**
* Start a new cookie session.
*
* @Link [`CURLOPT_COOKIESESSION`](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIESESSION.html)
*/
readonly COOKIESESSION: 'COOKIESESSION';
/**
* Convert newlines.
*
* @Link [`CURLOPT_CRLF`](https://curl.haxx.se/libcurl/c/CURLOPT_CRLF.html)
*/
readonly CRLF: 'CRLF';
/**
* Certificate Revocation List.
*
* @Link [`CURLOPT_CRLFILE`](https://curl.haxx.se/libcurl/c/CURLOPT_CRLFILE.html)
*/
readonly CRLFILE: 'CRLFILE';
/**
* Custom request/method.
*
* @Link [`CURLOPT_CUSTOMREQUEST`](https://curl.haxx.se/libcurl/c/CURLOPT_CUSTOMREQUEST.html)
*/
readonly CUSTOMREQUEST: 'CUSTOMREQUEST';
/**
* Callback for debug information.
*
* @Link [`CURLOPT_DEBUGFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_DEBUGFUNCTION.html)
*/
readonly DEBUGFUNCTION: 'DEBUGFUNCTION';
/**
* Default protocol.
*
* @Link [`CURLOPT_DEFAULT_PROTOCOL`](https://curl.haxx.se/libcurl/c/CURLOPT_DEFAULT_PROTOCOL.html)
*/
readonly DEFAULT_PROTOCOL: 'DEFAULT_PROTOCOL';
/**
* List only.
*
* @Link [`CURLOPT_DIRLISTONLY`](https://curl.haxx.se/libcurl/c/CURLOPT_DIRLISTONLY.html)
*/
readonly DIRLISTONLY: 'DIRLISTONLY';
/**
* Do not allow username in URL.
*
* @Link [`CURLOPT_DISALLOW_USERNAME_IN_URL`](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.
*
* @Link [`CURLOPT_DNS_CACHE_TIMEOUT`](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_CACHE_TIMEOUT.html)
*/
readonly DNS_CACHE_TIMEOUT: 'DNS_CACHE_TIMEOUT';
/**
* Bind name resolves to this interface.
*
* @Link [`CURLOPT_DNS_INTERFACE`](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_INTERFACE.html)
*/
readonly DNS_INTERFACE: 'DNS_INTERFACE';
/**
* Bind name resolves to this IP4 address.
*
* @Link [`CURLOPT_DNS_LOCAL_IP4`](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.
*
* @Link [`CURLOPT_DNS_LOCAL_IP6`](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_LOCAL_IP6.html)
*/
readonly DNS_LOCAL_IP6: 'DNS_LOCAL_IP6';
/**
* Preferred DNS servers.
*
* @Link [`CURLOPT_DNS_SERVERS`](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_SERVERS.html)
*/
readonly DNS_SERVERS: 'DNS_SERVERS';
/**
* Shuffle addresses before use.
*
* @Link [`CURLOPT_DNS_SHUFFLE_ADDRESSES`](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_SHUFFLE_ADDRESSES.html)
*/
readonly DNS_SHUFFLE_ADDRESSES: 'DNS_SHUFFLE_ADDRESSES';
/**
* OBSOLETE Enable global DNS cache.
*
* @Link [`CURLOPT_DNS_USE_GLOBAL_CACHE`](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.
*
* @Link [`CURLOPT_DOH_SSL_VERIFYHOST`](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.
*
* @Link [`CURLOPT_DOH_SSL_VERIFYPEER`](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.
*
* @Link [`CURLOPT_DOH_SSL_VERIFYSTATUS`](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.
*
* @Link [`CURLOPT_DOH_URL`](https://curl.haxx.se/libcurl/c/CURLOPT_DOH_URL.html)
*/
readonly DOH_URL: 'DOH_URL';
/**
* Set the configuration for ECH.
*
* @Link [`CURLOPT_ECH`](https://curl.haxx.se/libcurl/c/CURLOPT_ECH.html)
*/
readonly ECH: 'ECH';
/**
* OBSOLETE Identify EGD socket for entropy.
*
* @Link [`CURLOPT_EGDSOCKET`](https://curl.haxx.se/libcurl/c/CURLOPT_EGDSOCKET.html)
*/
readonly EGDSOCKET: 'EGDSOCKET';
/**
* 100-continue timeout.
*
* @Link [`CURLOPT_EXPECT_100_TIMEOUT_MS`](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.
*
* @Link [`CURLOPT_FAILONERROR`](https://curl.haxx.se/libcurl/c/CURLOPT_FAILONERROR.html)
*/
readonly FAILONERROR: 'FAILONERROR';
/**
* Request file modification date and time.
*
* @Link [`CURLOPT_FILETIME`](https://curl.haxx.se/libcurl/c/CURLOPT_FILETIME.html)
*/
readonly FILETIME: 'FILETIME';
/**
* Callback for wildcard matching.
*
* @Link [`CURLOPT_FNMATCH_FUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_FNMATCH_FUNCTION.html)
*/
readonly FNMATCH_FUNCTION: 'FNMATCH_FUNCTION';
/**
* Follow HTTP redirects.
*
* @Link [`CURLOPT_FOLLOWLOCATION`](https://curl.haxx.se/libcurl/c/CURLOPT_FOLLOWLOCATION.html)
*/
readonly FOLLOWLOCATION: 'FOLLOWLOCATION';
/**
* Prevent subsequent connections from reusing this.
*
* @Link [`CURLOPT_FORBID_REUSE`](https://curl.haxx.se/libcurl/c/CURLOPT_FORBID_REUSE.html)
*/
readonly FORBID_REUSE: 'FORBID_REUSE';
/**
* Use a new connection.
*
* @Link [`CURLOPT_FRESH_CONNECT`](https://curl.haxx.se/libcurl/c/CURLOPT_FRESH_CONNECT.html)
*/
readonly FRESH_CONNECT: 'FRESH_CONNECT';
/**
* Send ACCT command.
*
* @Link [`CURLOPT_FTP_ACCOUNT`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_ACCOUNT.html)
*/
readonly FTP_ACCOUNT: 'FTP_ACCOUNT';
/**
* Alternative to USER.
*
* @Link [`CURLOPT_FTP_ALTERNATIVE_TO_USER`](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.
*
* @Link [`CURLOPT_FTP_CREATE_MISSING_DIRS`](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.
*
* @Link [`CURLOPT_FTP_FILEMETHOD`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_FILEMETHOD.html)
*/
readonly FTP_FILEMETHOD: 'FTP_FILEMETHOD';
/**
* Ignore the IP address in the PASV response.
*
* @Link [`CURLOPT_FTP_SKIP_PASV_IP`](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.
*
* @Link [`CURLOPT_FTP_SSL_CCC`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SSL_CCC.html)
*/
readonly FTP_SSL_CCC: 'FTP_SSL_CCC';
/**
* Use EPRT.
*
* @Link [`CURLOPT_FTP_USE_EPRT`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_EPRT.html)
*/
readonly FTP_USE_EPRT: 'FTP_USE_EPRT';
/**
* Use EPSV.
*
* @Link [`CURLOPT_FTP_USE_EPSV`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_EPSV.html)
*/
readonly FTP_USE_EPSV: 'FTP_USE_EPSV';
/**
* Use PRET.
*
* @Link [`CURLOPT_FTP_USE_PRET`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_PRET.html)
*/
readonly FTP_USE_PRET: 'FTP_USE_PRET';
/**
* Use active FTP.
*
* @Link [`CURLOPT_FTPPORT`](https://curl.haxx.se/libcurl/c/CURLOPT_FTPPORT.html)
*/
readonly FTPPORT: 'FTPPORT';
/**
* Control how to do TLS.
*
* @Link [`CURLOPT_FTPSSLAUTH`](https://curl.haxx.se/libcurl/c/CURLOPT_FTPSSLAUTH.html)
*/
readonly FTPSSLAUTH: 'FTPSSLAUTH';
/**
* Disable GSS-API delegation.
*
* @Link [`CURLOPT_GSSAPI_DELEGATION`](https://curl.haxx.se/libcurl/c/CURLOPT_GSSAPI_DELEGATION.html)
*/
readonly GSSAPI_DELEGATION: 'GSSAPI_DELEGATION';
/**
* Timeout for happy eyeballs.
*
* @Link [`CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS`](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.
*
* @Link [`CURLOPT_HAPROXY_CLIENT_IP`](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.
*
* @Link [`CURLOPT_HAPROXYPROTOCOL`](https://curl.haxx.se/libcurl/c/CURLOPT_HAPROXYPROTOCOL.html)
*/
readonly HAPROXYPROTOCOL: 'HAPROXYPROTOCOL';
/**
* Include the header in the body output.
*
* @Link [`CURLOPT_HEADER`](https://curl.haxx.se/libcurl/c/CURLOPT_HEADER.html)
*/
readonly HEADER: 'HEADER';
/**
* Callback for writing received headers.
*
* @Link [`CURLOPT_HEADERFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_HEADERFUNCTION.html)
*/
readonly HEADERFUNCTION: 'HEADERFUNCTION';
/**
* Control custom headers.
*
* @Link [`CURLOPT_HEADEROPT`](https://curl.haxx.se/libcurl/c/CURLOPT_HEADEROPT.html)
*/
readonly HEADEROPT: 'HEADEROPT';
/**
* Set HSTS cache file.
*
* @Link [`CURLOPT_HSTS`](https://curl.haxx.se/libcurl/c/CURLOPT_HSTS.html)
*/
readonly HSTS: 'HSTS';
/**
* Enable HSTS.
*
* @Link [`CURLOPT_HSTS_CTRL`](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.
*
* @Link [`CURLOPT_HSTSREADFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_HSTSREADFUNCTION.html)
*/
readonly HSTSREADFUNCTION: 'HSTSREADFUNCTION';
/**
* Set HSTS write callback.
*
* @Link [`CURLOPT_HSTSWRITEFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_HSTSWRITEFUNCTION.html)
*/
readonly HSTSWRITEFUNCTION: 'HSTSWRITEFUNCTION';
/**
* Disable Content decoding.
*
* @Link [`CURLOPT_HTTP_CONTENT_DECODING`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_CONTENT_DECODING.html)
*/
readonly HTTP_CONTENT_DECODING: 'HTTP_CONTENT_DECODING';
/**
* Disable Transfer decoding.
*
* @Link [`CURLOPT_HTTP_TRANSFER_DECODING`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_TRANSFER_DECODING.html)
*/
readonly HTTP_TRANSFER_DECODING: 'HTTP_TRANSFER_DECODING';
/**
* HTTP version to use.
*
* @Link [`CURLOPT_HTTP_VERSION`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_VERSION.html)
*/
readonly HTTP_VERSION: 'HTTP_VERSION';
/**
* Allow HTTP/0.9 responses.
*
* @Link [`CURLOPT_HTTP09_ALLOWED`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP09_ALLOWED.html)
*/
readonly HTTP09_ALLOWED: 'HTTP09_ALLOWED';
/**
* curl-impersonate: Do not set the priority bit in http2 header frame.
*
* @Link [`CURLOPT_HTTP2_NO_PRIORITY`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L188)
*/
readonly HTTP2_NO_PRIORITY: 'HTTP2_NO_PRIORITY';
/**
* curl-impersonate: Set the order of the HTTP/2 pseudo headers. The value must contain the letters 'm', 'a', 's', 'p' representing the pseudo-headers ":method", ":authority", ":scheme", ":path" in the desired order of appearance in the HTTP/2 HEADERS frame.
*
* @Link [`CURLOPT_HTTP2_PSEUDO_HEADERS_ORDER`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L140)
*/
readonly HTTP2_PSEUDO_HEADERS_ORDER: 'HTTP2_PSEUDO_HEADERS_ORDER';
/**
* curl-impersonate: HTTP2 settings frame keys and values, format: 1:v;2:v;3:v.
*
* @Link [`CURLOPT_HTTP2_SETTINGS`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L143)
*/
readonly HTTP2_SETTINGS: 'HTTP2_SETTINGS';
/**
* curl-impersonate: Set the initial streams settings for http2.
*
* @Link [`CURLOPT_HTTP2_STREAMS`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L155)
*/
readonly HTTP2_STREAMS: 'HTTP2_STREAMS';
/**
* curl-impersonate: HTTP2 initial window update.
*
* @Link [`CURLOPT_HTTP2_WINDOW_UPDATE`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L152)
*/
readonly HTTP2_WINDOW_UPDATE: 'HTTP2_WINDOW_UPDATE';
/**
* Alternative versions of 200 OK.
*
* @Link [`CURLOPT_HTTP200ALIASES`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP200ALIASES.html)
*/
readonly HTTP200ALIASES: 'HTTP200ALIASES';
/**
* HTTP server authentication methods.
*
* @Link [`CURLOPT_HTTPAUTH`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html)
*/
readonly HTTPAUTH: 'HTTPAUTH';
/**
* curl-impersonate: A list of headers used by the impersonated browser. If given, merged with CURLOPT_HTTPHEADER.
*
* @Link [`CURLOPT_HTTPBASEHEADER`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L111)
*/
readonly HTTPBASEHEADER: 'HTTPBASEHEADER';
/**
* Do an HTTP GET request.
*
* @Link [`CURLOPT_HTTPGET`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPGET.html)
*/
readonly HTTPGET: 'HTTPGET';
/**
* Custom HTTP headers.
*
* @Link [`CURLOPT_HTTPHEADER`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPHEADER.html)
*/
readonly HTTPHEADER: 'HTTPHEADER';
/**
* Deprecated option Multipart formpost HTTP POST.
*
* @Link [`CURLOPT_HTTPPOST`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPPOST.html)
*/
readonly HTTPPOST: 'HTTPPOST';
/**
* Tunnel through the HTTP proxy.
*
* @Link [`CURLOPT_HTTPPROXYTUNNEL`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPPROXYTUNNEL.html)
*/
readonly HTTPPROXYTUNNEL: 'HTTPPROXYTUNNEL';
/**
* Ignore Content-Length.
*
* @Link [`CURLOPT_IGNORE_CONTENT_LENGTH`](https://curl.haxx.se/libcurl/c/CURLOPT_IGNORE_CONTENT_LENGTH.html)
*/
readonly IGNORE_CONTENT_LENGTH: 'IGNORE_CONTENT_LENGTH';
/**
* curl-impersonate: The master option for setting an impersonate target
*
* @Link [`CURLOPT_IMPERSONATE`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L107)
*/
readonly IMPERSONATE: 'IMPERSONATE';
/**
* Size of file to send.
*
* @Link [`CURLOPT_INFILESIZE`](https://curl.haxx.se/libcurl/c/CURLOPT_INFILESIZE.html)
*/
readonly INFILESIZE: 'INFILESIZE';
/**
* Size of file to send.
*
* @Link [`CURLOPT_INFILESIZE_LARGE`](https://curl.haxx.se/libcurl/c/CURLOPT_INFILESIZE_LARGE.html)
*/
readonly INFILESIZE_LARGE: 'INFILESIZE_LARGE';
/**
* Bind connection locally to this.
*
* @Link [`CURLOPT_INTERFACE`](https://curl.haxx.se/libcurl/c/CURLOPT_INTERFACE.html)
*/
readonly INTERFACE: 'INTERFACE';
/**
* IP version to use.
*
* @Link [`CURLOPT_IPRESOLVE`](https://curl.haxx.se/libcurl/c/CURLOPT_IPRESOLVE.html)
*/
readonly IPRESOLVE: 'IPRESOLVE';
/**
* Issuer certificate.
*
* @Link [`CURLOPT_ISSUERCERT`](https://curl.haxx.se/libcurl/c/CURLOPT_ISSUERCERT.html)
*/
readonly ISSUERCERT: 'ISSUERCERT';
/**
* Issuer certificate memory buffer.
*
* @Link [`CURLOPT_ISSUERCERT_BLOB`](https://curl.haxx.se/libcurl/c/CURLOPT_ISSUERCERT_BLOB.html)
*/
readonly ISSUERCERT_BLOB: 'ISSUERCERT_BLOB';
/**
* Keep sending on HTTP \>= 300 errors.
*
* @Link [`CURLOPT_KEEP_SENDING_ON_ERROR`](https://curl.haxx.se/libcurl/c/CURLOPT_KEEP_SENDING_ON_ERROR.html)
*/
readonly KEEP_SENDING_ON_ERROR: 'KEEP_SENDING_ON_ERROR';
/**
* Client key password.
*
* @Link [`CURLOPT_KEYPASSWD`](https://curl.haxx.se/libcurl/c/CURLOPT_KEYPASSWD.html)
*/
readonly KEYPASSWD: 'KEYPASSWD';
/**
* OBSOLETE. Kerberos security level.
*
* @Link [`CURLOPT_KRBLEVEL`](https://curl.haxx.se/libcurl/c/CURLOPT_KRBLEVEL.html)
*/
readonly KRBLEVEL: 'KRBLEVEL';
/**
* Bind connection locally to this port.
*
* @Link [`CURLOPT_LOCALPORT`](https://curl.haxx.se/libcurl/c/CURLOPT_LOCALPORT.html)
*/
readonly LOCALPORT: 'LOCALPORT';
/**
* Bind connection locally to port range.
*
* @Link [`CURLOPT_LOCALPORTRANGE`](https://curl.haxx.se/libcurl/c/CURLOPT_LOCALPORTRANGE.html)
*/
readonly LOCALPORTRANGE: 'LOCALPORTRANGE';
/**
* Login options.
*
* @Link [`CURLOPT_LOGIN_OPTIONS`](https://curl.haxx.se/libcurl/c/CURLOPT_LOGIN_OPTIONS.html)
*/
readonly LOGIN_OPTIONS: 'LOGIN_OPTIONS';
/**
* Low speed limit to abort transfer.
*
* @Link [`CURLOPT_LOW_SPEED_LIMIT`](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.
*
* @Link [`CURLOPT_LOW_SPEED_TIME`](https://curl.haxx.se/libcurl/c/CURLOPT_LOW_SPEED_TIME.html)
*/
readonly LOW_SPEED_TIME: 'LOW_SPEED_TIME';
/**
* Authentication address.
*
* @Link [`CURLOPT_MAIL_AUTH`](https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_AUTH.html)
*/
readonly MAIL_AUTH: 'MAIL_AUTH';
/**
* Address of the sender.
*
* @Link [`CURLOPT_MAIL_FROM`](https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_FROM.html)
*/
readonly MAIL_FROM: 'MAIL_FROM';
/**
* Address of the recipients.
*
* @Link [`CURLOPT_MAIL_RCPT`](https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_RCPT.html)
*/
readonly MAIL_RCPT: 'MAIL_RCPT';
/**
* Allow RCPT TO command to fail for some recipients.
*
* @Link [`CURLOPT_MAIL_RCPT_ALLOWFAILS`](https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_RCPT_ALLOWFAILS.html)
*/
readonly MAIL_RCPT_ALLOWFAILS: 'MAIL_RCPT_ALLOWFAILS';
/**
* Cap the download speed to this.
*
* @Link [`CURLOPT_MAX_RECV_SPEED_LARGE`](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.
*
* @Link [`CURLOPT_MAX_SEND_SPEED_LARGE`](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.
*
* @Link [`CURLOPT_MAXAGE_CONN`](https://curl.haxx.se/libcurl/c/CURLOPT_MAXAGE_CONN.html)
*/
readonly MAXAGE_CONN: 'MAXAGE_CONN';
/**
* Maximum number of connections in the connection pool.
*
* @Link [`CURLOPT_MAXCONNECTS`](https://curl.haxx.se/libcurl/c/CURLOPT_MAXCONNECTS.html)
*/
readonly MAXCONNECTS: 'MAXCONNECTS';
/**
* Maximum file size to get.
*
* @Link [`CURLOPT_MAXFILESIZE`](https://curl.haxx.se/libcurl/c/CURLOPT_MAXFILESIZE.html)
*/
readonly MAXFILESIZE: 'MAXFILESIZE';
/**
* Maximum file size to get.
*
* @Link [`CURLOPT_MAXFILESIZE_LARGE`](https://curl.haxx.se/libcurl/c/CURLOPT_MAXFILESIZE_LARGE.html)
*/
readonly MAXFILESIZE_LARGE: 'MAXFILESIZE_LARGE';
/**
* Limit the age (since creation) of connections for reuse.
*
* @Link [`CURLOPT_MAXLIFETIME_CONN`](https://curl.haxx.se/libcurl/c/CURLOPT_MAXLIFETIME_CONN.html)
*/
readonly MAXLIFETIME_CONN: 'MAXLIFETIME_CONN';
/**
* Maximum number of redirects to follow.
*
* @Link [`CURLOPT_MAXREDIRS`](https://curl.haxx.se/libcurl/c/CURLOPT_MAXREDIRS.html)
*/
readonly MAXREDIRS: 'MAXREDIRS';
/**
* Enable .netrc parsing.
*
* @Link [`CURLOPT_NETRC`](https://curl.haxx.se/libcurl/c/CURLOPT_NETRC.html)
*/
readonly NETRC: 'NETRC';
/**
* .netrc filename.
*
* @Link [`CURLOPT_NETRC_FILE`](https://curl.haxx.se/libcurl/c/CURLOPT_NETRC_FILE.html)
*/
readonly NETRC_FILE: 'NETRC_FILE';
/**
* Mode for creating new remote directories.
*
* @Link [`CURLOPT_NEW_DIRECTORY_PERMS`](https://curl.haxx.se/libcurl/c/CURLOPT_NEW_DIRECTORY_PERMS.html)
*/
readonly NEW_DIRECTORY_PERMS: 'NEW_DIRECTORY_PERMS';
/**
* Mode for creating new remote files.
*
* @Link [`CURLOPT_NEW_FILE_PERMS`](https://curl.haxx.se/libcurl/c/CURLOPT_NEW_FILE_PERMS.html)
*/
readonly NEW_FILE_PERMS: 'NEW_FILE_PERMS';
/**
* Do not get the body contents.
*
* @Link [`CURLOPT_NOBODY`](https://curl.haxx.se/libcurl/c/CURLOPT_NOBODY.html)
*/
readonly NOBODY: 'NOBODY';
/**
* Shut off the progress meter.
*
* @Link [`CURLOPT_NOPROGRESS`](https://curl.haxx.se/libcurl/c/CURLOPT_NOPROGRESS.html)
*/
readonly NOPROGRESS: 'NOPROGRESS';
/**
* Filter out hosts from proxy use.
*
* @Link [`CURLOPT_NOPROXY`](https://curl.haxx.se/libcurl/c/CURLOPT_NOPROXY.html)
*/
readonly NOPROXY: 'NOPROXY';
/**
* Do not install signal handlers.
*
* @Link [`CURLOPT_NOSIGNAL`](https://curl.haxx.se/libcurl/c/CURLOPT_NOSIGNAL.html)
*/
readonly NOSIGNAL: 'NOSIGNAL';
/**
* Password.
*
* @Link [`CURLOPT_PASSWORD`](https://curl.haxx.se/libcurl/c/CURLOPT_PASSWORD.html)
*/
readonly PASSWORD: 'PASSWORD';
/**
* Disable squashing /../ and /./ sequences in the path.
*
* @Link [`CURLOPT_PATH_AS_IS`](https://curl.haxx.se/libcurl/c/CURLOPT_PATH_AS_IS.html)
*/
readonly PATH_AS_IS: 'PATH_AS_IS';
/**
* Set pinned SSL public key .
*
* @Link [`CURLOPT_PINNEDPUBLICKEY`](https://curl.haxx.se/libcurl/c/CURLOPT_PINNEDPUBLICKEY.html)
*/
readonly PINNEDPUBLICKEY: 'PINNEDPUBLICKEY';
/**
* Wait on connection to pipeline on it.
*
* @Link [`CURLOPT_PIPEWAIT`](https://curl.haxx.se/libcurl/c/CURLOPT_PIPEWAIT.html)
*/
readonly PIPEWAIT: 'PIPEWAIT';
/**
* Port number to connect to.
*
* @Link [`CURLOPT_PORT`](https://curl.haxx.se/libcurl/c/CURLOPT_PORT.html)
*/
readonly PORT: 'PORT';
/**
* Make an HTTP POST.
*
* @Link [`CURLOPT_POST`](https://curl.haxx.se/libcurl/c/CURLOPT_POST.html)
*/
readonly POST: 'POST';
/**
* Send a POST with this data - does not copy it.
*
* @Link [`CURLOPT_POSTFIELDS`](https://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDS.html)
*/
readonly POSTFIELDS: 'POSTFIELDS';
/**
* The POST data is this big.
*
* @Link [`CURLOPT_POSTFIELDSIZE`](https://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDSIZE.html)
*/
readonly POSTFIELDSIZE: 'POSTFIELDSIZE';
/**
* The POST data is this big.
*
* @Link [`CURLOPT_POSTFIELDSIZE_LARGE`](https://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDSIZE_LARGE.html)
*/
readonly POSTFIELDSIZE_LARGE: 'POSTFIELDSIZE_LARGE';
/**
* Commands to run after transfer.
*
* @Link [`CURLOPT_POSTQUOTE`](https://curl.haxx.se/libcurl/c/CURLOPT_POSTQUOTE.html)
*/
readonly POSTQUOTE: 'POSTQUOTE';
/**
* How to act on redirects after POST.
*
* @Link [`CURLOPT_POSTREDIR`](https://curl.haxx.se/libcurl/c/CURLOPT_POSTREDIR.html)
*/
readonly POSTREDIR: 'POSTREDIR';
/**
* Socks proxy to use.
*
* @Link [`CURLOPT_PRE_PROXY`](https://curl.haxx.se/libcurl/c/CURLOPT_PRE_PROXY.html)
*/
readonly PRE_PROXY: 'PRE_PROXY';
/**
* Commands to run just before transfer.
*
* @Link [`CURLOPT_PREQUOTE`](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.
*
* @Link [`CURLOPT_PREREQFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_PREREQFUNCTION.html)
*/
readonly PREREQFUNCTION: 'PREREQFUNCTION';
/**
* OBSOLETE callback for progress meter.
*
* @Link [`CURLOPT_PROGRESSFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_PROGRESSFUNCTION.html)
*/
readonly PROGRESSFUNCTION: 'PROGRESSFUNCTION';
/**
* Deprecated option Allowed protocols.
*
* @Link [`CURLOPT_PROTOCOLS`](https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html)
*/
readonly PROTOCOLS: 'PROTOCOLS';
/**
* Allowed protocols.
*
* @Link [`CURLOPT_PROTOCOLS_STR`](https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS_STR.html)
*/
readonly PROTOCOLS_STR: 'PROTOCOLS_STR';
/**
* Proxy to use.
*
* @Link [`CURLOPT_PROXY`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY.html)
*/
readonly PROXY: 'PROXY';
/**
* Proxy CA cert bundle.
*
* @Link [`CURLOPT_PROXY_CAINFO`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CAINFO.html)
*/
readonly PROXY_CAINFO: 'PROXY_CAINFO';
/**
* Proxy CA cert bundle memory buffer.
*
* @Link [`CURLOPT_PROXY_CAINFO_BLOB`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CAINFO_BLOB.html)
*/
readonly PROXY_CAINFO_BLOB: 'PROXY_CAINFO_BLOB';
/**
* Path to proxy CA cert bundle.
*
* @Link [`CURLOPT_PROXY_CAPATH`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CAPATH.html)
*/
readonly PROXY_CAPATH: 'PROXY_CAPATH';
/**
* curl-impersonate: Do not reuse TLS sessions or connections from different proxy credentials.
*
* @Link [`CURLOPT_PROXY_CREDENTIAL_NO_REUSE`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L191)
*/
readonly PROXY_CREDENTIAL_NO_REUSE: 'PROXY_CREDENTIAL_NO_REUSE';
/**
* Proxy Certificate Revocation List.
*
* @Link [`CURLOPT_PROXY_CRLFILE`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CRLFILE.html)
*/
readonly PROXY_CRLFILE: 'PROXY_CRLFILE';
/**
* Proxy issuer certificate.
*
* @Link [`CURLOPT_PROXY_ISSUERCERT`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_ISSUERCERT.html)
*/
readonly PROXY_ISSUERCERT: 'PROXY_ISSUERCERT';
/**
* Proxy issuer certificate memory buffer.
*
* @Link [`CURLOPT_PROXY_ISSUERCERT_BLOB`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_ISSUERCERT_BLOB.html)
*/
readonly PROXY_ISSUERCERT_BLOB: 'PROXY_ISSUERCERT_BLOB';
/**
* Proxy client key password.
*
* @Link [`CURLOPT_PROXY_KEYPASSWD`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_KEYPASSWD.html)
*/
readonly PROXY_KEYPASSWD: 'PROXY_KEYPASSWD';
/**
* Set the proxy's pinned SSL public key.
*
* @Link [`CURLOPT_PROXY_PINNEDPUBLICKEY`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_PINNEDPUBLICKEY.html)
*/
readonly PROXY_PINNEDPUBLICKEY: 'PROXY_PINNEDPUBLICKEY';
/**
* Proxy authentication service name.
*
* @Link [`CURLOPT_PROXY_SERVICE_NAME`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SERVICE_NAME.html)
*/
readonly PROXY_SERVICE_NAME: 'PROXY_SERVICE_NAME';
/**
* Proxy ciphers to use.
*
* @Link [`CURLOPT_PROXY_SSL_CIPHER_LIST`](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.
*
* @Link [`CURLOPT_PROXY_SSL_OPTIONS`](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.
*
* @Link [`CURLOPT_PROXY_SSL_VERIFYHOST`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_VERIFYHOST.html)
*/
readonly PROXY_SSL_VERIFYHOST: 'PROXY_SSL_VERIFYHOST';
/**
* Verify the proxy SSL certificate.
*
* @Link [`CURLOPT_PROXY_SSL_VERIFYPEER`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_VERIFYPEER.html)
*/
readonly PROXY_SSL_VERIFYPEER: 'PROXY_SSL_VERIFYPEER';
/**
* Proxy client cert.
*
* @Link [`CURLOPT_PROXY_SSLCERT`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLCERT.html)
*/
readonly PROXY_SSLCERT: 'PROXY_SSLCERT';
/**
* Proxy client cert memory buffer.
*
* @Link [`CURLOPT_PROXY_SSLCERT_BLOB`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLCERT_BLOB.html)
*/
readonly PROXY_SSLCERT_BLOB: 'PROXY_SSLCERT_BLOB';
/**
* Proxy client cert type.
*
* @Link [`CURLOPT_PROXY_SSLCERTTYPE`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLCERTTYPE.html)
*/
readonly PROXY_SSLCERTTYPE: 'PROXY_SSLCERTTYPE';
/**
* Proxy client key.
*
* @Link [`CURLOPT_PROXY_SSLKEY`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLKEY.html)
*/
readonly PROXY_SSLKEY: 'PROXY_SSLKEY';
/**
* Proxy client key.
*
* @Link [`CURLOPT_PROXY_SSLKEY_BLOB`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLKEY_BLOB.html)
*/
readonly PROXY_SSLKEY_BLOB: 'PROXY_SSLKEY_BLOB';
/**
* Proxy client key type.
*
* @Link [`CURLOPT_PROXY_SSLKEYTYPE`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLKEYTYPE.html)
*/
readonly PROXY_SSLKEYTYPE: 'PROXY_SSLKEYTYPE';
/**
* Proxy SSL version to use.
*
* @Link [`CURLOPT_PROXY_SSLVERSION`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLVERSION.html)
*/
readonly PROXY_SSLVERSION: 'PROXY_SSLVERSION';
/**
* Proxy TLS 1.3 cipher suites to use.
*
* @Link [`CURLOPT_PROXY_TLS13_CIPHERS`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLS13_CIPHERS.html)
*/
readonly PROXY_TLS13_CIPHERS: 'PROXY_TLS13_CIPHERS';
/**
* Proxy TLS authentication password.
*
* @Link [`CURLOPT_PROXY_TLSAUTH_PASSWORD`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLSAUTH_PASSWORD.html)
*/
readonly PROXY_TLSAUTH_PASSWORD: 'PROXY_TLSAUTH_PASSWORD';
/**
* Proxy TLS authentication methods.
*
* @Link [`CURLOPT_PROXY_TLSAUTH_TYPE`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLSAUTH_TYPE.html)
*/
readonly PROXY_TLSAUTH_TYPE: 'PROXY_TLSAUTH_TYPE';
/**
* Proxy TLS authentication username.
*
* @Link [`CURLOPT_PROXY_TLSAUTH_USERNAME`](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.
*
* @Link [`CURLOPT_PROXY_TRANSFER_MODE`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TRANSFER_MODE.html)
*/
readonly PROXY_TRANSFER_MODE: 'PROXY_TRANSFER_MODE';
/**
* HTTP proxy authentication methods.
*
* @Link [`CURLOPT_PROXYAUTH`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYAUTH.html)
*/
readonly PROXYAUTH: 'PROXYAUTH';
/**
* Custom HTTP headers sent to proxy.
*
* @Link [`CURLOPT_PROXYHEADER`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYHEADER.html)
*/
readonly PROXYHEADER: 'PROXYHEADER';
/**
* Proxy password.
*
* @Link [`CURLOPT_PROXYPASSWORD`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYPASSWORD.html)
*/
readonly PROXYPASSWORD: 'PROXYPASSWORD';
/**
* Proxy port to use.
*
* @Link [`CURLOPT_PROXYPORT`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYPORT.html)
*/
readonly PROXYPORT: 'PROXYPORT';
/**
* Proxy type.
*
* @Link [`CURLOPT_PROXYTYPE`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYTYPE.html)
*/
readonly PROXYTYPE: 'PROXYTYPE';
/**
* Proxy username.
*
* @Link [`CURLOPT_PROXYUSERNAME`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYUSERNAME.html)
*/
readonly PROXYUSERNAME: 'PROXYUSERNAME';
/**
* Proxy username and password.
*
* @Link [`CURLOPT_PROXYUSERPWD`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYUSERPWD.html)
*/
readonly PROXYUSERPWD: 'PROXYUSERPWD';
/**
* Deprecated option Issue an HTTP PUT request.
*
* @Link [`CURLOPT_PUT`](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.
*
* @Link [`CURLOPT_QUICK_EXIT`](https://curl.haxx.se/libcurl/c/CURLOPT_QUICK_EXIT.html)
*/
readonly QUICK_EXIT: 'QUICK_EXIT';
/**
* Commands to run before transfer.
*
* @Link [`CURLOPT_QUOTE`](https://curl.haxx.se/libcurl/c/CURLOPT_QUOTE.html)
*/
readonly QUOTE: 'QUOTE';
/**
* OBSOLETE Provide source for entropy random data.
*
* @Link [`CURLOPT_RANDOM_FILE`](https://curl.haxx.se/libcurl/c/CURLOPT_RANDOM_FILE.html)
*/
readonly RANDOM_FILE: 'RANDOM_FILE';
/**
* Range requests.
*
* @Link [`CURLOPT_RANGE`](https://curl.haxx.se/libcurl/c/CURLOPT_RANGE.html)
*/
readonly RANGE: 'RANGE';
/**
* Data pointer to pass to the read callback.
*
* @Link [`CURLOPT_READDATA`](https://curl.haxx.se/libcurl/c/CURLOPT_READDATA.html)
*/
readonly READDATA: 'READDATA';
/**
* Callback for reading data.
*
* @Link [`CURLOPT_READFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_READFUNCTION.html)
*/
readonly READFUNCTION: 'READFUNCTION';
/**
* Deprecated option Protocols to allow redirects to.
*
* @Link [`CURLOPT_REDIR_PROTOCOLS`](https://curl.haxx.se/libcurl/c/CURLOPT_REDIR_PROTOCOLS.html)
*/
readonly REDIR_PROTOCOLS: 'REDIR_PROTOCOLS';
/**
* Protocols to allow redirects to.
*
* @Link [`CURLOPT_REDIR_PROTOCOLS_STR`](https://curl.haxx.se/libcurl/c/CURLOPT_REDIR_PROTOCOLS_STR.html)
*/
readonly REDIR_PROTOCOLS_STR: 'REDIR_PROTOCOLS_STR';
/**
* Referer: header.
*
* @Link [`CURLOPT_REFERER`](https://curl.haxx.se/libcurl/c/CURLOPT_REFERER.html)
*/
readonly REFERER: 'REFERER';
/**
* Set the request target.
*
* @Link [`CURLOPT_REQUEST_TARGET`](https://curl.haxx.se/libcurl/c/CURLOPT_REQUEST_TARGET.html)
*/
readonly REQUEST_TARGET: 'REQUEST_TARGET';
/**
* Provide fixed/fake name resolves.
*
* @Link [`CURLOPT_RESOLVE`](https://curl.haxx.se/libcurl/c/CURLOPT_RESOLVE.html)
*/
readonly RESOLVE: 'RESOLVE';
/**
* Resume a transfer.
*
* @Link [`CURLOPT_RESUME_FROM`](https://curl.haxx.se/libcurl/c/CURLOPT_RESUME_FROM.html)
*/
readonly RESUME_FROM: 'RESUME_FROM';
/**
* Resume a transfer.
*
* @Link [`CURLOPT_RESUME_FROM_LARGE`](https://curl.haxx.se/libcurl/c/CURLOPT_RESUME_FROM_LARGE.html)
*/
readonly RESUME_FROM_LARGE: 'RESUME_FROM_LARGE';
/**
* Client CSEQ number.
*
* @Link [`CURLOPT_RTSP_CLIENT_CSEQ`](https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_CLIENT_CSEQ.html)
*/
readonly RTSP_CLIENT_CSEQ: 'RTSP_CLIENT_CSEQ';
/**
* RTSP request.
*
* @Link [`CURLOPT_RTSP_REQUEST`](https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html)
*/
readonly RTSP_REQUEST: 'RTSP_REQUEST';
/**
* CSEQ number for RTSP Server-\>Client request.
*
* @Link [`CURLOPT_RTSP_SERVER_CSEQ`](https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_SERVER_CSEQ.html)
*/
readonly RTSP_SERVER_CSEQ: 'RTSP_SERVER_CSEQ';
/**
* RTSP session-id.
*
* @Link [`CURLOPT_RTSP_SESSION_ID`](https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_SESSION_ID.html)
*/
readonly RTSP_SESSION_ID: 'RTSP_SESSION_ID';
/**
* RTSP stream URI.
*
* @Link [`CURLOPT_RTSP_STREAM_URI`](https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_STREAM_URI.html)
*/
readonly RTSP_STREAM_URI: 'RTSP_STREAM_URI';
/**
* RTSP Transport: header.
*
* @Link [`CURLOPT_RTSP_TRANSPORT`](https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_TRANSPORT.html)
*/
readonly RTSP_TRANSPORT: 'RTSP_TRANSPORT';
/**
* SASL authorization identity (identity to act as).
*
* @Link [`CURLOPT_SASL_AUTHZID`](https://curl.haxx.se/libcurl/c/CURLOPT_SASL_AUTHZID.html)
*/
readonly SASL_AUTHZID: 'SASL_AUTHZID';
/**
* Enable SASL initial response.
*
* @Link [`CURLOPT_SASL_IR`](https://curl.haxx.se/libcurl/c/CURLOPT_SASL_IR.html)
*/
readonly SASL_IR: 'SASL_IR';
/**
* Callback for seek operations.
*
* @Link [`CURLOPT_SEEKFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_SEEKFUNCTION.html)
*/
readonly SEEKFUNCTION: 'SEEKFUNCTION';
/**
* Timeout for server responses.
*
* @Link [`CURLOPT_SERVER_RESPONSE_TIMEOUT`](https://curl.haxx.se/libcurl/c/CURLOPT_SERVER_RESPONSE_TIMEOUT.html)
*/
readonly SERVER_RESPONSE_TIMEOUT: 'SERVER_RESPONSE_TIMEOUT';
/**
* Timeout for server responses.
*
* @Link [`CURLOPT_SERVER_RESPONSE_TIMEOUT_MS`](https://curl.haxx.se/libcurl/c/CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.html)
*/
readonly SERVER_RESPONSE_TIMEOUT_MS: 'SERVER_RESPONSE_TIMEOUT_MS';
/**
* Authentication service name.
*
* @Link [`CURLOPT_SERVICE_NAME`](https://curl.haxx.se/libcurl/c/CURLOPT_SERVICE_NAME.html)
*/
readonly SERVICE_NAME: 'SERVICE_NAME';
/**
* Share object to use.
*
* @Link [`CURLOPT_SHARE`](https://curl.haxx.se/libcurl/c/CURLOPT_SHARE.html)
*/
readonly SHARE: 'SHARE';
/**
* Socks5 authentication methods.
*
* @Link [`CURLOPT_SOCKS5_AUTH`](https://curl.haxx.se/libcurl/c/CURLOPT_SOCKS5_AUTH.html)
*/
readonly SOCKS5_AUTH: 'SOCKS5_AUTH';
/**
* Socks5 GSSAPI NEC mode.
*
* @Link [`CURLOPT_SOCKS5_GSSAPI_NEC`](https://curl.haxx.se/libcurl/c/CURLOPT_SOCKS5_GSSAPI_NEC.html)
*/
readonly SOCKS5_GSSAPI_NEC: 'SOCKS5_GSSAPI_NEC';
/**
* Deprecated option Socks5 GSSAPI service name.
*
* @Link [`CURLOPT_SOCKS5_GSSAPI_SERVICE`](https://curl.haxx.se/libcurl/c/CURLOPT_SOCKS5_GSSAPI_SERVICE.html)
*/
readonly SOCKS5_GSSAPI_SERVICE: 'SOCKS5_GSSAPI_SERVICE';
/**
* SSH authentication types.
*
* @Link [`CURLOPT_SSH_AUTH_TYPES`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_AUTH_TYPES.html)
*/
readonly SSH_AUTH_TYPES: 'SSH_AUTH_TYPES';
/**
* Enable SSH compression.
*
* @Link [`CURLOPT_SSH_COMPRESSION`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_COMPRESSION.html)
*/
readonly SSH_COMPRESSION: 'SSH_COMPRESSION';
/**
* MD5 of host's public key.
*
* @Link [`CURLOPT_SSH_HOST_PUBLIC_KEY_MD5`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.html)
*/
readonly SSH_HOST_PUBLIC_KEY_MD5: 'SSH_HOST_PUBLIC_KEY_MD5';
/**
* Custom pointer to pass to ssh host key callback.
*
* @Link [`CURLOPT_SSH_HOSTKEYDATA`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_HOSTKEYDATA.html)
*/
readonly SSH_HOSTKEYDATA: 'SSH_HOSTKEYDATA';
/**
* Filename with known hosts.
*
* @Link [`CURLOPT_SSH_KNOWNHOSTS`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_KNOWNHOSTS.html)
*/
readonly SSH_KNOWNHOSTS: 'SSH_KNOWNHOSTS';
/**
* Filename of the private key.
*
* @Link [`CURLOPT_SSH_PRIVATE_KEYFILE`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_PRIVATE_KEYFILE.html)
*/
readonly SSH_PRIVATE_KEYFILE: 'SSH_PRIVATE_KEYFILE';
/**
* Filename of the public key.
*
* @Link [`CURLOPT_SSH_PUBLIC_KEYFILE`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_PUBLIC_KEYFILE.html)
*/
readonly SSH_PUBLIC_KEYFILE: 'SSH_PUBLIC_KEYFILE';
/**
* curl-impersonate: : Comma-separated list of certificate compression algorithms to use. These are published in the client hello. Supported algorithms are "zlib" and "brotli". See https://datatracker.ietf.org/doc/html/rfc8879.
*
* @Link [`CURLOPT_SSL_CERT_COMPRESSION`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L128)
*/
readonly SSL_CERT_COMPRESSION: 'SSL_CERT_COMPRESSION';
/**
* Ciphers to use.
*
* @Link [`CURLOPT_SSL_CIPHER_LIST`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_CIPHER_LIST.html)
*/
readonly SSL_CIPHER_LIST: 'SSL_CIPHER_LIST';
/**
* Set key exchange curves.
*
* @Link [`CURLOPT_SSL_EC_CURVES`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_EC_CURVES.html)
*/
readonly SSL_EC_CURVES: 'SSL_EC_CURVES';
/**
* Enable use of ALPN.
*
* @Link [`CURLOPT_SSL_ENABLE_ALPN`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_ENABLE_ALPN.html)
*/
readonly SSL_ENABLE_ALPN: 'SSL_ENABLE_ALPN';
/**
* curl-impersonate: Whether to enable ALPS in TLS or not. See https://datatracker.ietf.org/doc/html/draft-vvv-tls-alps. Support for ALPS is minimal and is intended only for the TLS client hello to match.
*
* @Link [`CURLOPT_SSL_ENABLE_ALPS`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L122)
*/
readonly SSL_ENABLE_ALPS: 'SSL_ENABLE_ALPS';
/**
* OBSOLETE Enable use of NPN.
*
* @Link [`CURLOPT_SSL_ENABLE_NPN`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_ENABLE_NPN.html)
*/
readonly SSL_ENABLE_NPN: 'SSL_ENABLE_NPN';
/**
* curl-impersonate: Enable/disable TLS session ticket extension (RFC5077).
*
* @Link [`CURLOPT_SSL_ENABLE_TICKET`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L131)
*/
readonly SSL_ENABLE_TICKET: 'SSL_ENABLE_TICKET';
/**
* Deprecated option Enable TLS False Start.
*
* @Link [`CURLOPT_SSL_FALSESTART`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_FALSESTART.html)
*/
readonly SSL_FALSESTART: 'SSL_FALSESTART';
/**
* Control SSL behavior.
*
* @Link [`CURLOPT_SSL_OPTIONS`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_OPTIONS.html)
*/
readonly SSL_OPTIONS: 'SSL_OPTIONS';
/**
* curl-impersonate: Whether to enable Boringssl permute extensions. See https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#SSL_set_permute_extensions.
*
* @Link [`CURLOPT_SSL_PERMUTE_EXTENSIONS`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L149)
*/
readonly SSL_PERMUTE_EXTENSIONS: 'SSL_PERMUTE_EXTENSIONS';
/**
* Disable SSL session-id cache.
*
* @Link [`CURLOPT_SSL_SESSIONID_CACHE`](ht