<?php

define('CURLINFO_EFFECTIVE_URL', 100000);
define('CURLINFO_RESPONSE_CODE', 100001);
define('CURLINFO_HTTP_CODE', CURLINFO_RESPONSE_CODE);
define('CURLINFO_FILETIME', 100002);
define('CURLINFO_TOTAL_TIME', 100003);
define('CURLINFO_NAMELOOKUP_TIME', 100004);
define('CURLINFO_CONNECT_TIME', 100005);
define('CURLINFO_PRETRANSFER_TIME', 100006);
define('CURLINFO_STARTTRANSFER_TIME', 100007);
define('CURLINFO_REDIRECT_COUNT', 100008);
define('CURLINFO_REDIRECT_TIME', 100009);
define('CURLINFO_SIZE_UPLOAD', 100010);
define('CURLINFO_SIZE_DOWNLOAD', 100011);
define('CURLINFO_SPEED_UPLOAD', 100012);
define('CURLINFO_HEADER_SIZE', 100013);
define('CURLINFO_REQUEST_SIZE', 100014);
define('CURLINFO_SSL_VERIFYRESULT', 100015);
define('CURLINFO_CONTENT_LENGTH_DOWNLOAD', 100016);
define('CURLINFO_CONTENT_LENGTH_UPLOAD', 100017);
define('CURLINFO_CONTENT_TYPE', 100018);
define('CURLINFO_PRIVATE', 100019);
define('CURLINFO_SPEED_DOWNLOAD', 100020);
define('CURLINFO_REDIRECT_URL', 100021);
define('CURLINFO_PRIMARY_IP', 100022);
define('CURLINFO_PRIMARY_PORT', 100023);
define('CURLINFO_LOCAL_IP', 100024);
define('CURLINFO_LOCAL_PORT', 100025);
define('CURLINFO_HTTP_CONNECTCODE', 100026);
define('CURLINFO_HTTPAUTH_AVAIL', 100027);
define('CURLINFO_PROXYAUTH_AVAIL', 100028);
define('CURLINFO_OS_ERRNO', 100029);
define('CURLINFO_NUM_CONNECTS', 100030);
define('CURLINFO_FTP_ENTRY_PATH', 100031);
define('CURLINFO_APPCONNECT_TIME', 100032);
define('CURLINFO_CONDITION_UNMET', 100033);
define('CURLINFO_RTSP_CLIENT_CSEQ', 100034);
define('CURLINFO_RTSP_CSEQ_RECV', 100035);
define('CURLINFO_RTSP_SERVER_CSEQ', 100036);
define('CURLINFO_RTSP_SESSION_ID', 100037);

define('CURLOPT_ADDRESS_SCOPE', 200000);
define('CURLOPT_APPEND', 200001);
define('CURLOPT_AUTOREFERER', 200002);
define('CURLOPT_BUFFERSIZE', 200003);
define('CURLOPT_CONNECT_ONLY', 200004);
define('CURLOPT_CONNECTTIMEOUT', 200005);
define('CURLOPT_CONNECTTIMEOUT_MS', 200006);
define('CURLOPT_COOKIESESSION', 200007);
define('CURLOPT_CRLF', 200008);
define('CURLOPT_DIRLISTONLY', 200009);
define('CURLOPT_DNS_CACHE_TIMEOUT', 200010);
define('CURLOPT_FAILONERROR', 200011);
define('CURLOPT_FILETIME', 200012);
define('CURLOPT_FOLLOWLOCATION', 200013);
define('CURLOPT_FORBID_REUSE', 200014);
define('CURLOPT_FRESH_CONNECT', 200015);
define('CURLOPT_FTP_CREATE_MISSING_DIRS', 200016);
define('CURLOPT_FTP_RESPONSE_TIMEOUT', 200017);
define('CURLOPT_FTP_SKIP_PASV_IP', 200018);
define('CURLOPT_FTP_USE_EPRT', 200019);
define('CURLOPT_FTP_USE_EPSV', 200020);
define('CURLOPT_FTP_USE_PRET', 200021);
define('CURLOPT_HEADER', 200022);
define('CURLOPT_HTTP_CONTENT_DECODING', 200023);
define('CURLOPT_HTTP_TRANSFER_DECODING', 200024);
define('CURLOPT_HTTPGET', 200025);
define('CURLOPT_HTTPPROXYTUNNEL', 200026);
define('CURLOPT_IGNORE_CONTENT_LENGTH', 200027);
define('CURLOPT_INFILESIZE', 200028);
define('CURLOPT_LOW_SPEED_LIMIT', 200029);
define('CURLOPT_LOW_SPEED_TIME', 200030);
define('CURLOPT_MAXCONNECTS', 200031);
define('CURLOPT_MAXFILESIZE', 200032);
define('CURLOPT_MAXREDIRS', 200033);
define('CURLOPT_NETRC', 200034);
define('CURLOPT_NEW_DIRECTORY_PERMS', 200035);
define('CURLOPT_NEW_FILE_PERMS', 200036);
define('CURLOPT_NOBODY', 200037);
define('CURLOPT_PORT', 200038);
define('CURLOPT_POST', 200039);
define('CURLOPT_PROXY_TRANSFER_MODE', 200040);
define('CURLOPT_PROXYPORT', 200041);
define('CURLOPT_RESUME_FROM', 200042);
define('CURLOPT_SOCKS5_GSSAPI_NEC', 200043);
define('CURLOPT_SSL_SESSIONID_CACHE', 200044);
define('CURLOPT_SSL_VERIFYHOST', 200045);
define('CURLOPT_SSL_VERIFYPEER', 200046);
define('CURLOPT_TCP_NODELAY', 200047);
define('CURLOPT_TFTP_BLKSIZE', 200048);
define('CURLOPT_TIMEOUT', 200049);
define('CURLOPT_TIMEOUT_MS', 200050);
define('CURLOPT_TRANSFERTEXT', 200051);
define('CURLOPT_UNRESTRICTED_AUTH', 200052);
define('CURLOPT_UPLOAD', 200053);
define('CURLOPT_VERBOSE', 200054);
define('CURLOPT_WILDCARDMATCH', 200055);
define('CURLOPT_PROXYTYPE', 200056);
define('CURLOPT_SSLVERSION', 200057);
define('CURLOPT_HTTPAUTH', 200058);
define('CURLOPT_PROXYAUTH', 200059);
define('CURLOPT_IPRESOLVE', 200060);
define('CURLOPT_FTPSSLAUTH', 200061);
define('CURLOPT_FTP_FILEMETHOD', 200062);
define('CURLOPT_CAINFO', 200063);
define('CURLOPT_CAPATH', 200064);
define('CURLOPT_COOKIE', 200065);
define('CURLOPT_COOKIEFILE', 200066);
define('CURLOPT_COOKIEJAR', 200067);
define('CURLOPT_COOKIELIST', 200068);
define('CURLOPT_CRLFILE', 200069);
define('CURLOPT_CUSTOMREQUEST', 200070);
define('CURLOPT_EGDSOCKET', 200071);
define('CURLOPT_FTP_ACCOUNT', 200072);
define('CURLOPT_FTP_ALTERNATIVE_TO_USER', 200073);
define('CURLOPT_FTPPORT', 200074);
define('CURLOPT_INTERFACE', 200075);
define('CURLOPT_ISSUERCERT', 200076);
define('CURLOPT_KRBLEVEL', 200077);
define('CURLOPT_MAIL_FROM', 200078);
define('CURLOPT_NETRC_FILE', 200079);
define('CURLOPT_NOPROXY', 200080);
define('CURLOPT_PASSWORD', 200081);
define('CURLOPT_PROXY', 200082);
define('CURLOPT_PROXYPASSWORD', 200083);
define('CURLOPT_PROXYUSERNAME', 200084);
define('CURLOPT_PROXYUSERPWD', 200085);
define('CURLOPT_RANDOM_FILE', 200086);
define('CURLOPT_RANGE', 200087);
define('CURLOPT_REFERER', 200088);
define('CURLOPT_RTSP_SESSION_ID', 200089);
define('CURLOPT_RTSP_STREAM_URI', 200090);
define('CURLOPT_RTSP_TRANSPORT', 200091);
define('CURLOPT_SOCKS5_GSSAPI_SERVICE', 200092);
define('CURLOPT_SSH_HOST_PUBLIC_KEY_MD5', 200093);
define('CURLOPT_SSH_KNOWNHOSTS', 200094);
define('CURLOPT_SSH_PRIVATE_KEYFILE', 200095);
define('CURLOPT_SSH_PUBLIC_KEYFILE', 200096);
define('CURLOPT_SSLCERT', 200097);
define('CURLOPT_SSLCERTTYPE', 200098);
define('CURLOPT_SSLENGINE', 200099);
define('CURLOPT_SSLENGINE_DEFAULT', 200100);
define('CURLOPT_SSLKEY', 200101);
define('CURLOPT_SSLKEYPASSWD', 200102);
define('CURLOPT_SSLKEYTYPE', 200103);
define('CURLOPT_SSL_CIPHER_LIST', 200104);
define('CURLOPT_URL', 200105);
define('CURLOPT_USERAGENT', 200106);
define('CURLOPT_USERNAME', 200107);
define('CURLOPT_USERPWD', 200108);
define('CURLOPT_HTTP200ALIASES', 200109);
define('CURLOPT_HTTPHEADER', 200110);
define('CURLOPT_POSTQUOTE', 200111);
define('CURLOPT_PREQUOTE', 200112);
define('CURLOPT_QUOTE', 200113);
define('CURLOPT_MAIL_RCPT', 200114);
define('CURLOPT_POSTFIELDS', 200115);
define('CURLOPT_MAX_RECV_SPEED_LARGE', 200116);
define('CURLOPT_MAX_SEND_SPEED_LARGE', 200117);
define('CURLOPT_PUT', 200118);
define('CURLOPT_RESOLVE', 200119);
define('CURLOPT_HTTP_VERSION', 200120);
define('CURLOPT_SSL_ENABLE_ALPN', 200121);
define('CURLOPT_SSL_ENABLE_NPN', 200122);
define('CURLOPT_TCP_KEEPALIVE', 200123);
define('CURLOPT_TCP_KEEPIDLE', 200124);
define('CURLOPT_TCP_KEEPINTVL', 200125);
define('CURLOPT_PRIVATE', 200126);
define('CURLOPT_ACCEPT_ENCODING', 200127);

define('CURLPROXY_HTTP', 400000);
define('CURLPROXY_HTTP_1_0', 400001);
define('CURLPROXY_SOCKS4', 400002);
define('CURLPROXY_SOCKS5', 400003);
define('CURLPROXY_SOCKS4A', 400004);
define('CURLPROXY_SOCKS5_HOSTNAME', 400005);

define('CURL_SSLVERSION_DEFAULT', 0);
define('CURL_SSLVERSION_TLSv1', 1);
define('CURL_SSLVERSION_SSLv2', 2);
define('CURL_SSLVERSION_SSLv3', 3);
define('CURL_SSLVERSION_TLSv1_0', 4);
define('CURL_SSLVERSION_TLSv1_1', 5);
define('CURL_SSLVERSION_TLSv1_2', 6);

define('CURLAUTH_BASIC', 600001);
define('CURLAUTH_DIGEST', 600002);
// curl-kphp-vk не поддеживает эту опцию
// define('CURLAUTH_GSSNEGOTIATE', 600004);
define('CURLAUTH_NTLM', 600008);
define('CURLAUTH_ANYSAFE', 600014);
define('CURLAUTH_ANY', 600015);

define('CURL_IPRESOLVE_WHATEVER', 700000);
define('CURL_IPRESOLVE_V4', 700001);
define('CURL_IPRESOLVE_V6', 700002);

define('CURLFTPAUTH_DEFAULT', 800000);
define('CURLFTPAUTH_SSL', 800001);
define('CURLFTPAUTH_TLS', 800002);

define('CURLFTPMETHOD_MULTICWD', 900000);
define('CURLFTPMETHOD_NOCWD', 900001);
define('CURLFTPMETHOD_SINGLECWD', 900002);

define('CURLOPT_RETURNTRANSFER', 1234567);
define('CURLINFO_HEADER_OUT', 7654321);

define('CURLMOPT_PIPELINING', 1000);
define('CURLMOPT_MAXCONNECTS', 1001);
define('CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE', 1002);
define('CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE', 1003);
define('CURLMOPT_MAX_HOST_CONNECTIONS', 1004);
define('CURLMOPT_MAX_PIPELINE_LENGTH', 1005);
define('CURLMOPT_MAX_TOTAL_CONNECTIONS', 1006);

define('CURLPIPE_NOTHING', 0);
define('CURLPIPE_HTTP1', 1);
define('CURLPIPE_MULTIPLEX', 2);

define('CURL_HTTP_VERSION_NONE', 0);
define('CURL_HTTP_VERSION_1_0', 1);
define('CURL_HTTP_VERSION_1_1', 2);
define('CURL_HTTP_VERSION_2_0', 3);
define('CURL_HTTP_VERSION_2', CURL_HTTP_VERSION_2_0);
define('CURL_HTTP_VERSION_2TLS', 4);
define('CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE', 5);

define("CURLM_CALL_MULTI_PERFORM", -1);
define("CURLM_OK", 0);
define("CURLM_BAD_HANDLE", 1);
define("CURLM_BAD_EASY_HANDLE", 2);
define("CURLM_OUT_OF_MEMORY", 3);
define("CURLM_INTERNAL_ERROR", 4);
define("CURLM_BAD_SOCKET", 5);
define("CURLM_UNKNOWN_OPTION", 6);
define("CURLM_ADDED_ALREADY", 7);

define('UPLOAD_ERR_OK', 0);
define('UPLOAD_ERR_INI_SIZE', 1);
define('UPLOAD_ERR_FORM_SIZE', 2);
define('UPLOAD_ERR_PARTIAL', 3);
define('UPLOAD_ERR_NO_FILE', 4);
define('UPLOAD_ERR_NO_TMP_DIR', 6);
define('UPLOAD_ERR_CANT_WRITE', 7);
define('UPLOAD_ERR_EXTENSION', 8);

/** @kphp-extern-func-info generate-stub */
function curl_init ($url ::: string = "") ::: int;
/** @kphp-extern-func-info generate-stub */
function curl_reset ($curl_handle ::: int) ::: void;
/** @kphp-extern-func-info generate-stub */
function curl_setopt ($curl_handle ::: int, $option ::: int, $value ::: mixed) ::: bool;

function curl_setopt_array ($curl_handle ::: int, $options ::: array) ::: bool;
/** @kphp-extern-func-info generate-stub */
function curl_exec ($curl_handle ::: int) ::: mixed;
/** @kphp-extern-func-info generate-stub */
function curl_getinfo ($curl_handle ::: int, $option ::: int = 0) ::: mixed;
/** @kphp-extern-func-info generate-stub */
function curl_error ($curl_handle ::: int) ::: string;
/** @kphp-extern-func-info generate-stub */
function curl_errno ($curl_handle ::: int) ::: int;
/** @kphp-extern-func-info generate-stub */
function curl_close ($curl_handle ::: int) ::: void;
/** @kphp-extern-func-info generate-stub */
function curl_exec_concurrently($curl_handle ::: int, $timeout ::: float = 1.0): string|false;

/** @kphp-extern-func-info generate-stub */
function curl_multi_init () ::: int;
/** @kphp-extern-func-info generate-stub */
function curl_multi_add_handle ($multi_handle ::: int, $curl_handle ::: int) ::: int|false;
/** @kphp-extern-func-info generate-stub */
function curl_multi_getcontent ($curl_handle ::: int ) ::: string|false|null;
/** @kphp-extern-func-info generate-stub */
function curl_multi_setopt ($multi_handle ::: int, $option ::: int, $value ::: int) ::: bool;
/** @kphp-extern-func-info generate-stub */
function curl_multi_exec ($multi_handle ::: int, &$still_running ::: int) ::: int|false;
/** @kphp-extern-func-info generate-stub */
function curl_multi_select ($multi_handle ::: int, $timeout ::: float = 1.0) ::: int|false;

function curl_multi_info_read ($multi_handle ::: int, &$msgs_in_queue ::: int = TODO) ::: int[]|false;
/** @kphp-extern-func-info generate-stub */
function curl_multi_remove_handle ($multi_handle ::: int, $curl_handle ::: int) ::: int|false;
/** @kphp-extern-func-info generate-stub */
function curl_multi_errno ($multi_handle ::: int) ::: int|false;
/** @kphp-extern-func-info generate-stub */
function curl_multi_close ($multi_handle ::: int) ::: void;
/** @kphp-extern-func-info generate-stub */
function curl_multi_strerror ($errornum ::: int) ::: string|null;
