xref: /PHP-8.2/ext/mysqli/mysqli.stub.php (revision 0b887042)
1<?php
2
3/** @generate-class-entries */
4
5/* mysqli_options */
6/**
7 * @var int
8 * @cvalue MYSQL_READ_DEFAULT_GROUP
9 */
10const MYSQLI_READ_DEFAULT_GROUP = UNKNOWN;
11/**
12 * @var int
13 * @cvalue MYSQL_READ_DEFAULT_FILE
14 */
15const MYSQLI_READ_DEFAULT_FILE = UNKNOWN;
16/**
17 * @var int
18 * @cvalue MYSQL_OPT_CONNECT_TIMEOUT
19 */
20const MYSQLI_OPT_CONNECT_TIMEOUT = UNKNOWN;
21/**
22 * @var int
23 * @cvalue MYSQL_OPT_LOCAL_INFILE
24 */
25const MYSQLI_OPT_LOCAL_INFILE = UNKNOWN;
26/**
27 * @var int
28 * @cvalue MYSQL_OPT_LOAD_DATA_LOCAL_DIR
29 */
30const MYSQLI_OPT_LOAD_DATA_LOCAL_DIR = UNKNOWN;
31/**
32 * @var int
33 * @cvalue MYSQL_INIT_COMMAND
34 */
35const MYSQLI_INIT_COMMAND = UNKNOWN;
36/**
37 * @var int
38 * @cvalue MYSQL_OPT_READ_TIMEOUT
39 */
40const MYSQLI_OPT_READ_TIMEOUT = UNKNOWN;
41/**
42 * @var int
43 * @cvalue MYSQLND_OPT_NET_CMD_BUFFER_SIZE
44 */
45const MYSQLI_OPT_NET_CMD_BUFFER_SIZE = UNKNOWN;
46/**
47 * @var int
48 * @cvalue MYSQLND_OPT_NET_READ_BUFFER_SIZE
49 */
50const MYSQLI_OPT_NET_READ_BUFFER_SIZE = UNKNOWN;
51/**
52 * @var int
53 * @cvalue MYSQLND_OPT_INT_AND_FLOAT_NATIVE
54 */
55const MYSQLI_OPT_INT_AND_FLOAT_NATIVE = UNKNOWN;
56/**
57 * @var int
58 * @cvalue MYSQL_OPT_SSL_VERIFY_SERVER_CERT
59 */
60const MYSQLI_OPT_SSL_VERIFY_SERVER_CERT = UNKNOWN;
61
62/**
63 * @var int
64 * @cvalue MYSQL_SERVER_PUBLIC_KEY
65 */
66const MYSQLI_SERVER_PUBLIC_KEY = UNKNOWN;
67
68/* mysqli_real_connect flags */
69/**
70 * @var int
71 * @cvalue CLIENT_SSL
72 */
73const MYSQLI_CLIENT_SSL = UNKNOWN;
74/**
75 * @var int
76 * @cvalue CLIENT_COMPRESS
77 */
78const MYSQLI_CLIENT_COMPRESS = UNKNOWN;
79/**
80 * @var int
81 * @cvalue CLIENT_INTERACTIVE
82 */
83const MYSQLI_CLIENT_INTERACTIVE = UNKNOWN;
84/**
85 * @var int
86 * @cvalue CLIENT_IGNORE_SPACE
87 */
88const MYSQLI_CLIENT_IGNORE_SPACE = UNKNOWN;
89/**
90 * @var int
91 * @cvalue CLIENT_NO_SCHEMA
92 */
93const MYSQLI_CLIENT_NO_SCHEMA = UNKNOWN;
94/**
95 * @var int
96 * @cvalue CLIENT_FOUND_ROWS
97 */
98const MYSQLI_CLIENT_FOUND_ROWS = UNKNOWN;
99#ifdef CLIENT_SSL_VERIFY_SERVER_CERT
100/**
101 * @var int
102 * @cvalue CLIENT_SSL_VERIFY_SERVER_CERT
103 */
104const MYSQLI_CLIENT_SSL_VERIFY_SERVER_CERT = UNKNOWN;
105/**
106 * @var int
107 * @cvalue CLIENT_SSL_DONT_VERIFY_SERVER_CERT
108 */
109const MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT = UNKNOWN;
110#endif
111/**
112 * @var int
113 * @cvalue CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS
114 */
115const MYSQLI_CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS = UNKNOWN;
116/**
117 * @var int
118 * @cvalue MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS
119 */
120const MYSQLI_OPT_CAN_HANDLE_EXPIRED_PASSWORDS = UNKNOWN;
121
122/* for mysqli_query */
123/**
124 * @var int
125 * @cvalue MYSQLI_STORE_RESULT
126 */
127const MYSQLI_STORE_RESULT = UNKNOWN;
128/**
129 * @var int
130 * @cvalue MYSQLI_USE_RESULT
131 */
132const MYSQLI_USE_RESULT = UNKNOWN;
133/**
134 * @var int
135 * @cvalue MYSQLI_ASYNC
136 */
137const MYSQLI_ASYNC = UNKNOWN;
138/**
139 * @var int
140 * @cvalue MYSQLI_STORE_RESULT_COPY_DATA
141 */
142const MYSQLI_STORE_RESULT_COPY_DATA = UNKNOWN;
143
144/* for mysqli_fetch_assoc */
145/**
146 * @var int
147 * @cvalue MYSQLI_ASSOC
148 */
149const MYSQLI_ASSOC = UNKNOWN;
150/**
151 * @var int
152 * @cvalue MYSQLI_NUM
153 */
154const MYSQLI_NUM = UNKNOWN;
155/**
156 * @var int
157 * @cvalue MYSQLI_BOTH
158 */
159const MYSQLI_BOTH = UNKNOWN;
160
161/* for mysqli_stmt_set_attr */
162/**
163 * @var int
164 * @cvalue STMT_ATTR_UPDATE_MAX_LENGTH
165 */
166const MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH = UNKNOWN;
167
168/**
169 * @var int
170 * @cvalue STMT_ATTR_CURSOR_TYPE
171 */
172const MYSQLI_STMT_ATTR_CURSOR_TYPE = UNKNOWN;
173/**
174 * @var int
175 * @cvalue CURSOR_TYPE_NO_CURSOR
176 */
177const MYSQLI_CURSOR_TYPE_NO_CURSOR = UNKNOWN;
178/**
179 * @var int
180 * @cvalue CURSOR_TYPE_READ_ONLY
181 */
182const MYSQLI_CURSOR_TYPE_READ_ONLY = UNKNOWN;
183/**
184 * @var int
185 * @cvalue CURSOR_TYPE_FOR_UPDATE
186 */
187const MYSQLI_CURSOR_TYPE_FOR_UPDATE = UNKNOWN;
188/**
189 * @var int
190 * @cvalue CURSOR_TYPE_SCROLLABLE
191 */
192const MYSQLI_CURSOR_TYPE_SCROLLABLE = UNKNOWN;
193/**
194 * @var int
195 * @cvalue STMT_ATTR_PREFETCH_ROWS
196 */
197const MYSQLI_STMT_ATTR_PREFETCH_ROWS = UNKNOWN;
198
199/* column information */
200/**
201 * @var int
202 * @cvalue NOT_NULL_FLAG
203 */
204const MYSQLI_NOT_NULL_FLAG = UNKNOWN;
205/**
206 * @var int
207 * @cvalue PRI_KEY_FLAG
208 */
209const MYSQLI_PRI_KEY_FLAG = UNKNOWN;
210/**
211 * @var int
212 * @cvalue UNIQUE_KEY_FLAG
213 */
214const MYSQLI_UNIQUE_KEY_FLAG = UNKNOWN;
215/**
216 * @var int
217 * @cvalue MULTIPLE_KEY_FLAG
218 */
219const MYSQLI_MULTIPLE_KEY_FLAG = UNKNOWN;
220/**
221 * @var int
222 * @cvalue BLOB_FLAG
223 */
224const MYSQLI_BLOB_FLAG = UNKNOWN;
225/**
226 * @var int
227 * @cvalue UNSIGNED_FLAG
228 */
229const MYSQLI_UNSIGNED_FLAG = UNKNOWN;
230/**
231 * @var int
232 * @cvalue ZEROFILL_FLAG
233 */
234const MYSQLI_ZEROFILL_FLAG = UNKNOWN;
235/**
236 * @var int
237 * @cvalue AUTO_INCREMENT_FLAG
238 */
239const MYSQLI_AUTO_INCREMENT_FLAG = UNKNOWN;
240/**
241 * @var int
242 * @cvalue TIMESTAMP_FLAG
243 */
244const MYSQLI_TIMESTAMP_FLAG = UNKNOWN;
245/**
246 * @var int
247 * @cvalue SET_FLAG
248 */
249const MYSQLI_SET_FLAG = UNKNOWN;
250/**
251 * @var int
252 * @cvalue NUM_FLAG
253 */
254const MYSQLI_NUM_FLAG = UNKNOWN;
255/**
256 * @var int
257 * @cvalue PART_KEY_FLAG
258 */
259const MYSQLI_PART_KEY_FLAG = UNKNOWN;
260/**
261 * @var int
262 * @cvalue GROUP_FLAG
263 */
264const MYSQLI_GROUP_FLAG = UNKNOWN;
265/**
266 * @var int
267 * @cvalue ENUM_FLAG
268 */
269const MYSQLI_ENUM_FLAG = UNKNOWN;
270/**
271 * @var int
272 * @cvalue BINARY_FLAG
273 */
274const MYSQLI_BINARY_FLAG = UNKNOWN;
275/**
276 * @var int
277 * @cvalue NO_DEFAULT_VALUE_FLAG
278 */
279const MYSQLI_NO_DEFAULT_VALUE_FLAG = UNKNOWN;
280
281/**
282 * @var int
283 * @cvalue ON_UPDATE_NOW_FLAG
284 */
285const MYSQLI_ON_UPDATE_NOW_FLAG = UNKNOWN;
286
287/**
288 * @var int
289 * @cvalue FIELD_TYPE_DECIMAL
290 */
291const MYSQLI_TYPE_DECIMAL = UNKNOWN;
292/**
293 * @var int
294 * @cvalue FIELD_TYPE_TINY
295 */
296const MYSQLI_TYPE_TINY = UNKNOWN;
297/**
298 * @var int
299 * @cvalue FIELD_TYPE_SHORT
300 */
301const MYSQLI_TYPE_SHORT = UNKNOWN;
302/**
303 * @var int
304 * @cvalue FIELD_TYPE_LONG
305 */
306const MYSQLI_TYPE_LONG = UNKNOWN;
307/**
308 * @var int
309 * @cvalue FIELD_TYPE_FLOAT
310 */
311const MYSQLI_TYPE_FLOAT = UNKNOWN;
312/**
313 * @var int
314 * @cvalue FIELD_TYPE_DOUBLE
315 */
316const MYSQLI_TYPE_DOUBLE = UNKNOWN;
317/**
318 * @var int
319 * @cvalue FIELD_TYPE_NULL
320 */
321const MYSQLI_TYPE_NULL = UNKNOWN;
322/**
323 * @var int
324 * @cvalue FIELD_TYPE_TIMESTAMP
325 */
326const MYSQLI_TYPE_TIMESTAMP = UNKNOWN;
327/**
328 * @var int
329 * @cvalue FIELD_TYPE_LONGLONG
330 */
331const MYSQLI_TYPE_LONGLONG = UNKNOWN;
332/**
333 * @var int
334 * @cvalue FIELD_TYPE_INT24
335 */
336const MYSQLI_TYPE_INT24 = UNKNOWN;
337/**
338 * @var int
339 * @cvalue FIELD_TYPE_DATE
340 */
341const MYSQLI_TYPE_DATE = UNKNOWN;
342/**
343 * @var int
344 * @cvalue FIELD_TYPE_TIME
345 */
346const MYSQLI_TYPE_TIME = UNKNOWN;
347/**
348 * @var int
349 * @cvalue FIELD_TYPE_DATETIME
350 */
351const MYSQLI_TYPE_DATETIME = UNKNOWN;
352/**
353 * @var int
354 * @cvalue FIELD_TYPE_YEAR
355 */
356const MYSQLI_TYPE_YEAR = UNKNOWN;
357/**
358 * @var int
359 * @cvalue FIELD_TYPE_NEWDATE
360 */
361const MYSQLI_TYPE_NEWDATE = UNKNOWN;
362/**
363 * @var int
364 * @cvalue FIELD_TYPE_ENUM
365 */
366const MYSQLI_TYPE_ENUM = UNKNOWN;
367/**
368 * @var int
369 * @cvalue FIELD_TYPE_SET
370 */
371const MYSQLI_TYPE_SET = UNKNOWN;
372/**
373 * @var int
374 * @cvalue FIELD_TYPE_TINY_BLOB
375 */
376const MYSQLI_TYPE_TINY_BLOB = UNKNOWN;
377/**
378 * @var int
379 * @cvalue FIELD_TYPE_MEDIUM_BLOB
380 */
381const MYSQLI_TYPE_MEDIUM_BLOB = UNKNOWN;
382/**
383 * @var int
384 * @cvalue FIELD_TYPE_LONG_BLOB
385 */
386const MYSQLI_TYPE_LONG_BLOB = UNKNOWN;
387/**
388 * @var int
389 * @cvalue FIELD_TYPE_BLOB
390 */
391const MYSQLI_TYPE_BLOB = UNKNOWN;
392/**
393 * @var int
394 * @cvalue FIELD_TYPE_VAR_STRING
395 */
396const MYSQLI_TYPE_VAR_STRING = UNKNOWN;
397/**
398 * @var int
399 * @cvalue FIELD_TYPE_STRING
400 */
401const MYSQLI_TYPE_STRING = UNKNOWN;
402/**
403 * @var int
404 * @cvalue FIELD_TYPE_CHAR
405 */
406const MYSQLI_TYPE_CHAR = UNKNOWN;
407/**
408 * @var int
409 * @cvalue FIELD_TYPE_INTERVAL
410 */
411const MYSQLI_TYPE_INTERVAL = UNKNOWN;
412/**
413 * @var int
414 * @cvalue FIELD_TYPE_GEOMETRY
415 */
416const MYSQLI_TYPE_GEOMETRY = UNKNOWN;
417#ifdef FIELD_TYPE_JSON
418/**
419 * @var int
420 * @cvalue FIELD_TYPE_JSON
421 */
422const MYSQLI_TYPE_JSON = UNKNOWN;
423#endif
424/**
425 * @var int
426 * @cvalue FIELD_TYPE_NEWDECIMAL
427 */
428const MYSQLI_TYPE_NEWDECIMAL = UNKNOWN;
429/**
430 * @var int
431 * @cvalue FIELD_TYPE_BIT
432 */
433const MYSQLI_TYPE_BIT = UNKNOWN;
434/**
435 * @var int
436 * @cvalue MYSQL_SET_CHARSET_NAME
437 */
438const MYSQLI_SET_CHARSET_NAME = UNKNOWN;
439/**
440 * @var int
441 * @cvalue MYSQL_SET_CHARSET_DIR
442 */
443const MYSQLI_SET_CHARSET_DIR = UNKNOWN;
444
445/* bind support */
446/**
447 * @var int
448 * @cvalue MYSQL_NO_DATA
449 * @deprecated
450 */
451const MYSQLI_NO_DATA = UNKNOWN;
452#ifdef MYSQL_DATA_TRUNCATED
453/**
454 * @var int
455 * @cvalue MYSQL_DATA_TRUNCATED
456 * @deprecated
457 */
458const MYSQLI_DATA_TRUNCATED = UNKNOWN;
459#endif
460
461/* reporting */
462/**
463 * @var int
464 * @cvalue MYSQLI_REPORT_INDEX
465 */
466const MYSQLI_REPORT_INDEX = UNKNOWN;
467/**
468 * @var int
469 * @cvalue MYSQLI_REPORT_ERROR
470 */
471const MYSQLI_REPORT_ERROR = UNKNOWN;
472/**
473 * @var int
474 * @cvalue MYSQLI_REPORT_STRICT
475 */
476const MYSQLI_REPORT_STRICT = UNKNOWN;
477/**
478 * @var int
479 * @cvalue MYSQLI_REPORT_ALL
480 */
481const MYSQLI_REPORT_ALL = UNKNOWN;
482/**
483 * @var int
484 * @cvalue MYSQLI_REPORT_OFF
485 */
486const MYSQLI_REPORT_OFF = UNKNOWN;
487
488/**
489 * @var int
490 * @cvalue MYSQLND_DBG_ENABLED
491 */
492const MYSQLI_DEBUG_TRACE_ENABLED = UNKNOWN;
493
494/**
495 * @var int
496 * @cvalue SERVER_QUERY_NO_GOOD_INDEX_USED
497 * @deprecated
498 */
499const MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED = UNKNOWN;
500/**
501 * @var int
502 * @cvalue SERVER_QUERY_NO_INDEX_USED
503 * @deprecated
504 */
505const MYSQLI_SERVER_QUERY_NO_INDEX_USED = UNKNOWN;
506#ifdef SERVER_QUERY_WAS_SLOW
507/**
508 * @var int
509 * @cvalue SERVER_QUERY_WAS_SLOW
510 * @deprecated
511 */
512const MYSQLI_SERVER_QUERY_WAS_SLOW = UNKNOWN;
513#endif
514#ifdef SERVER_PS_OUT_PARAMS
515/**
516 * @var int
517 * @cvalue SERVER_PS_OUT_PARAMS
518 * @deprecated
519 */
520const MYSQLI_SERVER_PS_OUT_PARAMS = UNKNOWN;
521#endif
522
523/**
524 * @var int
525 * @cvalue REFRESH_GRANT
526 */
527const MYSQLI_REFRESH_GRANT = UNKNOWN;
528/**
529 * @var int
530 * @cvalue REFRESH_LOG
531 */
532const MYSQLI_REFRESH_LOG = UNKNOWN;
533/**
534 * @var int
535 * @cvalue REFRESH_TABLES
536 */
537const MYSQLI_REFRESH_TABLES = UNKNOWN;
538/**
539 * @var int
540 * @cvalue REFRESH_HOSTS
541 */
542const MYSQLI_REFRESH_HOSTS = UNKNOWN;
543/**
544 * @var int
545 * @cvalue REFRESH_STATUS
546 */
547const MYSQLI_REFRESH_STATUS = UNKNOWN;
548/**
549 * @var int
550 * @cvalue REFRESH_THREADS
551 */
552const MYSQLI_REFRESH_THREADS = UNKNOWN;
553/**
554 * @var int
555 * @cvalue REFRESH_SLAVE
556 */
557const MYSQLI_REFRESH_REPLICA = UNKNOWN;
558/**
559 * @var int
560 * @cvalue REFRESH_SLAVE
561 */
562const MYSQLI_REFRESH_SLAVE = UNKNOWN;
563/**
564 * @var int
565 * @cvalue REFRESH_MASTER
566 */
567const MYSQLI_REFRESH_MASTER = UNKNOWN;
568#ifdef REFRESH_BACKUP_LOG
569/**
570 * @var int
571 * @cvalue REFRESH_BACKUP_LOG
572 */
573const MYSQLI_REFRESH_BACKUP_LOG = UNKNOWN;
574#endif
575
576/**
577 * @var int
578 * @cvalue TRANS_START_WITH_CONSISTENT_SNAPSHOT
579 */
580const MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT = UNKNOWN;
581/**
582 * @var int
583 * @cvalue TRANS_START_READ_WRITE
584 */
585const MYSQLI_TRANS_START_READ_WRITE = UNKNOWN;
586/**
587 * @var int
588 * @cvalue TRANS_START_READ_ONLY
589 */
590const MYSQLI_TRANS_START_READ_ONLY = UNKNOWN;
591
592/**
593 * @var int
594 * @cvalue TRANS_COR_AND_CHAIN
595 */
596const MYSQLI_TRANS_COR_AND_CHAIN = UNKNOWN;
597/**
598 * @var int
599 * @cvalue TRANS_COR_AND_NO_CHAIN
600 */
601const MYSQLI_TRANS_COR_AND_NO_CHAIN = UNKNOWN;
602/**
603 * @var int
604 * @cvalue TRANS_COR_RELEASE
605 */
606const MYSQLI_TRANS_COR_RELEASE = UNKNOWN;
607/**
608 * @var int
609 * @cvalue TRANS_COR_NO_RELEASE
610 */
611const MYSQLI_TRANS_COR_NO_RELEASE = UNKNOWN;
612
613/**
614 * @var bool
615 * @deprecated
616 */
617const MYSQLI_IS_MARIADB = false;
618
619final class mysqli_driver
620{
621    /** @readonly */
622    public string $client_info;
623
624    /** @readonly */
625    public int $client_version;
626
627    /** @readonly */
628    public int $driver_version;
629
630    public int $report_mode = 0;
631}
632
633class mysqli
634{
635    /**
636     * @readonly
637     * @link mysqli.affected-rows
638     */
639    public int|string $affected_rows;
640
641    /**
642     * @readonly
643     * @link mysqli.get-client-info
644     */
645    public string $client_info;
646
647    /**
648     * @readonly
649     * @link mysqli.get-client-version
650     */
651    public int $client_version;
652
653    /**
654     * @readonly
655     * @link mysqli.connect-errno
656     */
657    public int $connect_errno;
658
659    /**
660     * @readonly
661     * @link mysqli.connect-error
662     */
663    public ?string $connect_error;
664
665    /**
666     * @readonly
667     * @link mysqli.errno
668     */
669    public int $errno;
670
671    /**
672     * @readonly
673     * @link mysqli.error
674     */
675    public string $error;
676
677    /**
678     * @readonly
679     * @link mysqli.error-list
680     */
681    public array $error_list;
682
683    /**
684     * @readonly
685     * @link mysqli.field-count
686     */
687    public int $field_count;
688
689    /**
690     * @readonly
691     * @link mysqli.get-host-info
692     */
693    public string $host_info;
694
695    /**
696     * @readonly
697     * @link mysqli.info
698     */
699    public ?string $info;
700
701    /**
702     * @readonly
703     * @link mysqli.insert-id
704     */
705    public int|string $insert_id;
706
707    /**
708     * @readonly
709     * @link mysqli.get-server-info
710     */
711    public string $server_info;
712
713    /**
714     * @readonly
715     * @link mysqli.get-server-version
716     */
717    public int $server_version;
718
719    /**
720     * @readonly
721     * @link mysqli.sqlstate
722     */
723    public string $sqlstate;
724
725    /**
726     * @readonly
727     * @link mysqli.get-proto-info
728     */
729    public int $protocol_version;
730
731    /**
732     * @readonly
733     * @link mysqli.thread-id
734     */
735    public int $thread_id;
736
737    /**
738     * @readonly
739     * @link mysqli.warning-count
740     */
741    public int $warning_count;
742
743    public function __construct(
744        ?string $hostname = null,
745        ?string $username = null,
746        #[\SensitiveParameter] ?string $password = null,
747        ?string $database = null,
748        ?int $port = null,
749        ?string $socket = null
750    ) {}
751
752    /**
753     * @tentative-return-type
754     * @alias mysqli_autocommit
755     */
756    public function autocommit(bool $enable): bool {}
757
758    /**
759     * @tentative-return-type
760     * @alias mysqli_begin_transaction
761     */
762    public function begin_transaction(int $flags = 0, ?string $name = null): bool {}
763
764    /**
765     * @tentative-return-type
766     * @alias mysqli_change_user
767     */
768    public function change_user(string $username, #[\SensitiveParameter] string $password, ?string $database): bool {}
769
770    /**
771     * @tentative-return-type
772     * @alias mysqli_character_set_name
773     */
774    public function character_set_name(): string {}
775
776    /**
777     * @return true
778     * @alias mysqli_close
779     * @no-verify
780     */
781    public function close() {} // TODO make return type void
782
783    /**
784     * @tentative-return-type
785     * @alias mysqli_commit
786     */
787    public function commit(int $flags = 0, ?string $name = null): bool {}
788
789    /**
790     * @tentative-return-type
791     * @alias mysqli_connect
792     * @no-verify
793     */
794    public function connect(
795        ?string $hostname = null,
796        ?string $username = null,
797        #[\SensitiveParameter] ?string $password = null,
798        ?string $database = null,
799        ?int $port = null,
800        ?string $socket = null
801    ): bool {}
802
803    /**
804     * @tentative-return-type
805     * @alias mysqli_dump_debug_info
806     */
807    public function dump_debug_info(): bool {}
808
809    /**
810     * @return true
811     * @alias mysqli_debug
812     * @no-verify Should really be a static method
813     */
814    public function debug(string $options) {} // TODO make return type void
815
816    /**
817     * @tentative-return-type
818     * @alias mysqli_get_charset
819     */
820    public function get_charset(): ?object {}
821
822    /**
823     * @alias mysqli_execute_query
824     */
825    public function execute_query(string $query, ?array $params = null): mysqli_result|bool {}
826
827    /**
828     * @tentative-return-type
829     * @alias mysqli_get_client_info
830     * @deprecated 8.1.0
831     */
832    public function get_client_info(): string {}
833
834    /**
835     * @return array<string, mixed>
836     * @tentative-return-type
837     * @alias mysqli_get_connection_stats
838     */
839    public function get_connection_stats(): array {}
840
841    /**
842     * @tentative-return-type
843     * @alias mysqli_get_server_info
844     */
845    public function get_server_info(): string {}
846
847    /**
848     * @tentative-return-type
849     * @alias mysqli_get_warnings
850     */
851    public function get_warnings(): mysqli_warning|false {}
852
853    /**
854     * @deprecated
855     * @return bool|null
856     * */
857    public function init() {}
858
859    /**
860     * @tentative-return-type
861     * @alias mysqli_kill
862     */
863    public function kill(int $process_id): bool {}
864
865    /**
866     * @tentative-return-type
867     * @alias mysqli_multi_query
868     */
869    public function multi_query(string $query): bool {}
870
871    /**
872     * @tentative-return-type
873     * @alias mysqli_more_results
874     */
875    public function more_results(): bool {}
876
877    /**
878     * @tentative-return-type
879     * @alias mysqli_next_result
880     */
881    public function next_result(): bool {}
882
883    /**
884     * @tentative-return-type
885     * @alias mysqli_ping
886     */
887    public function ping(): bool {}
888
889    /**
890     * @tentative-return-type
891     * @alias mysqli_poll
892     */
893    public static function poll(?array &$read, ?array &$error, array &$reject, int $seconds, int $microseconds = 0): int|false {}
894
895    /**
896     * @tentative-return-type
897     * @alias mysqli_prepare
898     */
899    public function prepare(string $query): mysqli_stmt|false {}
900
901    /**
902     * @tentative-return-type
903     * @alias mysqli_query
904     */
905    public function query(string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool {}
906
907    /**
908     * @tentative-return-type
909     * @alias mysqli_real_connect
910     */
911    public function real_connect(
912        ?string $hostname = null,
913        ?string $username = null,
914        #[\SensitiveParameter] ?string $password = null,
915        ?string $database = null,
916        ?int $port = null,
917        ?string $socket = null,
918        int $flags = 0
919    ): bool {}
920
921    /**
922     * @tentative-return-type
923     * @alias mysqli_real_escape_string
924     */
925    public function real_escape_string(string $string): string {}
926
927    /**
928     * @tentative-return-type
929     * @alias mysqli_reap_async_query
930     */
931    public function reap_async_query(): mysqli_result|bool {}
932
933    /**
934     * @tentative-return-type
935     * @alias mysqli_real_escape_string
936     */
937    public function escape_string(string $string): string {}
938
939    /**
940     * @tentative-return-type
941     * @alias mysqli_real_query
942     */
943    public function real_query(string $query): bool {}
944
945    /**
946     * @tentative-return-type
947     * @alias mysqli_release_savepoint
948     */
949    public function release_savepoint(string $name): bool {}
950
951    /**
952     * @tentative-return-type
953     * @alias mysqli_rollback
954     */
955    public function rollback(int $flags = 0, ?string $name = null): bool {}
956
957    /**
958     * @tentative-return-type
959     * @alias mysqli_savepoint
960     */
961    public function savepoint(string $name): bool {}
962
963    /**
964     * @tentative-return-type
965     * @alias mysqli_select_db
966     */
967    public function select_db(string $database): bool {}
968
969    /**
970     * @tentative-return-type
971     * @alias mysqli_set_charset
972     */
973    public function set_charset(string $charset): bool {}
974
975    /**
976     * @param string|int $value
977     * @tentative-return-type
978     * @alias mysqli_options
979     */
980    public function options(int $option, $value): bool {}
981
982    /**
983     * @param string|int $value
984     * @tentative-return-type
985     * @alias mysqli_options
986     */
987    public function set_opt(int $option, $value): bool {}
988
989    /**
990     * @return true
991     * @alias mysqli_ssl_set
992     * @no-verify
993     */
994    public function ssl_set(
995        ?string $key,
996        ?string $certificate,
997        ?string $ca_certificate,
998        ?string $ca_path,
999        ?string $cipher_algos
1000    ) {} // TODO make return type void
1001
1002    /**
1003     * @tentative-return-type
1004     * @alias mysqli_stat
1005     */
1006    public function stat(): string|false {}
1007
1008    /**
1009     * @tentative-return-type
1010     * @alias mysqli_stmt_init
1011     */
1012    public function stmt_init(): mysqli_stmt|false {}
1013
1014    /**
1015     * @tentative-return-type
1016     * @alias mysqli_store_result
1017     */
1018    public function store_result(int $mode = 0): mysqli_result|false {}
1019
1020    /**
1021     * @tentative-return-type
1022     * @alias mysqli_thread_safe
1023     */
1024    public function thread_safe(): bool {}
1025
1026    /**
1027     * @tentative-return-type
1028     * @alias mysqli_use_result
1029     */
1030    public function use_result(): mysqli_result|false {}
1031
1032    /**
1033     * @tentative-return-type
1034     * @alias mysqli_refresh
1035     */
1036    public function refresh(int $flags): bool {}
1037}
1038
1039class mysqli_result implements IteratorAggregate
1040{
1041    /**
1042     * @readonly
1043     * @link mysqli-result.current-field
1044     */
1045    public int $current_field;
1046
1047    /**
1048     * @readonly
1049     * @link mysqli-result.field-count
1050     */
1051    public int $field_count;
1052
1053    /**
1054     * @readonly
1055     * @link mysqli-result.lengths
1056     */
1057    public ?array $lengths;
1058
1059    /**
1060     * @readonly
1061     * @link mysqli-result.num-rows
1062     */
1063    public int|string $num_rows;
1064
1065    public int $type;
1066
1067    public function __construct(mysqli $mysql, int $result_mode = MYSQLI_STORE_RESULT) {}
1068
1069    /**
1070     * @tentative-return-type
1071     * @alias mysqli_free_result
1072     */
1073    public function close(): void {}
1074
1075    /**
1076     * @tentative-return-type
1077     * @alias mysqli_free_result
1078     */
1079    public function free(): void {}
1080
1081    /**
1082     * @tentative-return-type
1083     * @alias mysqli_data_seek
1084     */
1085    public function data_seek(int $offset): bool {}
1086
1087    /**
1088     * @tentative-return-type
1089     * @alias mysqli_fetch_field
1090     */
1091    public function fetch_field(): object|false {}
1092
1093    /**
1094     * @return array<int, object>
1095     * @tentative-return-type
1096     * @alias mysqli_fetch_fields
1097     */
1098    public function fetch_fields(): array {}
1099
1100    /**
1101     * @tentative-return-type
1102     * @alias mysqli_fetch_field_direct
1103     */
1104    public function fetch_field_direct(int $index): object|false {}
1105
1106    /**
1107     * @return array<int|string, mixed>
1108     * @tentative-return-type
1109     * @alias mysqli_fetch_all
1110     */
1111    public function fetch_all(int $mode = MYSQLI_NUM): array {}
1112
1113    /**
1114     * @return array<int|string, mixed>|null|false
1115     * @tentative-return-type
1116     * @alias mysqli_fetch_array
1117     */
1118    public function fetch_array(int $mode = MYSQLI_BOTH): array|null|false {}
1119
1120    /**
1121     * @return array<int|string, mixed>|null|false
1122     * @tentative-return-type
1123     * @alias mysqli_fetch_assoc
1124     */
1125    public function fetch_assoc(): array|null|false {}
1126
1127    /**
1128     * @tentative-return-type
1129     * @alias mysqli_fetch_object
1130     */
1131    public function fetch_object(string $class = "stdClass", array $constructor_args = []): object|null|false {}
1132
1133    /**
1134     * @return array<int, mixed>|null|false
1135     * @tentative-return-type
1136     * @alias mysqli_fetch_row
1137     */
1138    public function fetch_row(): array|null|false {}
1139
1140    /** @alias mysqli_fetch_column */
1141    public function fetch_column(int $column = 0): null|int|float|string|false {}
1142
1143    /**
1144     * @tentative-return-type
1145     * @alias mysqli_field_seek
1146     */
1147    public function field_seek(int $index): true {} // TODO make return type void
1148
1149    /**
1150     * @tentative-return-type
1151     * @alias mysqli_free_result
1152     */
1153    public function free_result(): void {}
1154
1155    public function getIterator(): Iterator {}
1156}
1157
1158class mysqli_stmt
1159{
1160    /**
1161     * @readonly
1162     * @link mysqli-stmt.affected-rows
1163     */
1164    public int|string $affected_rows;
1165
1166    /**
1167     * @readonly
1168     * @link mysqli-stmt.insert-id
1169     */
1170    public int|string $insert_id;
1171
1172    /**
1173     * @readonly
1174     * @link mysqli-stmt.num-rows
1175     */
1176    public int|string $num_rows;
1177
1178    /**
1179     * @readonly
1180     * @link mysqli-stmt.param-count
1181     */
1182    public int $param_count;
1183
1184    /**
1185     * @readonly
1186     * @link mysqli-stmt.field-count
1187     */
1188    public int $field_count;
1189
1190    /**
1191     * @readonly
1192     * @link mysqli-stmt.errno
1193     */
1194    public int $errno;
1195
1196    /**
1197     * @readonly
1198     * @link mysqli-stmt.error
1199     */
1200    public string $error;
1201
1202    /**
1203     * @readonly
1204     * @link mysqli-stmt.error-list
1205     */
1206    public array $error_list;
1207
1208    /**
1209     * @readonly
1210     * @link mysqli-stmt.sqlstate
1211     */
1212    public string $sqlstate;
1213
1214    public int $id;
1215
1216    public function __construct(mysqli $mysql, ?string $query = null) {}
1217
1218    /**
1219     * @tentative-return-type
1220     * @alias mysqli_stmt_attr_get
1221     */
1222    public function attr_get(int $attribute): int {}
1223
1224    /**
1225     * @tentative-return-type
1226     * @alias mysqli_stmt_attr_set
1227     */
1228    public function attr_set(int $attribute, int $value): bool {}
1229
1230    /**
1231     * @tentative-return-type
1232     * @alias mysqli_stmt_bind_param
1233     */
1234    public function bind_param(string $types, mixed &...$vars): bool {}
1235
1236    /**
1237     * @tentative-return-type
1238     * @alias mysqli_stmt_bind_result
1239     */
1240    public function bind_result(mixed &...$vars): bool {}
1241
1242    /**
1243     * @return true
1244     * @alias mysqli_stmt_close
1245     * @no-verify
1246     */
1247    public function close() {} // TODO make return type void
1248
1249    /**
1250     * @tentative-return-type
1251     * @alias mysqli_stmt_data_seek
1252     */
1253    public function data_seek(int $offset): void {}
1254
1255    /**
1256     * @tentative-return-type
1257     * @alias mysqli_stmt_execute
1258     */
1259    public function execute(?array $params = null): bool {}
1260
1261    /**
1262     * @tentative-return-type
1263     * @alias mysqli_stmt_fetch
1264     */
1265    public function fetch(): ?bool {}
1266
1267    /**
1268     * @tentative-return-type
1269     * @alias mysqli_stmt_get_warnings
1270     */
1271    public function get_warnings(): mysqli_warning|false {}
1272
1273    /**
1274     * @tentative-return-type
1275     * @alias mysqli_stmt_result_metadata
1276     */
1277    public function result_metadata(): mysqli_result|false {}
1278
1279    /**
1280     * @tentative-return-type
1281     * @alias mysqli_stmt_more_results
1282     */
1283    public function more_results(): bool {}
1284
1285    /**
1286     * @tentative-return-type
1287     * @alias mysqli_stmt_next_result
1288     */
1289    public function next_result(): bool {}
1290
1291    /**
1292     * @tentative-return-type
1293     * @alias mysqli_stmt_num_rows
1294     */
1295    public function num_rows(): int|string {}
1296
1297    /**
1298     * @tentative-return-type
1299     * @alias mysqli_stmt_send_long_data
1300     */
1301    public function send_long_data(int $param_num, string $data): bool {}
1302
1303    /**
1304     * @tentative-return-type
1305     * @alias mysqli_stmt_free_result
1306     */
1307    public function free_result(): void {}
1308
1309    /**
1310     * @tentative-return-type
1311     * @alias mysqli_stmt_reset
1312     */
1313    public function reset(): bool {}
1314
1315    /**
1316     * @tentative-return-type
1317     * @alias mysqli_stmt_prepare
1318     */
1319    public function prepare(string $query): bool {}
1320
1321    /**
1322     * @tentative-return-type
1323     * @alias mysqli_stmt_store_result
1324     */
1325    public function store_result(): bool {}
1326
1327    /**
1328     * @tentative-return-type
1329     * @alias mysqli_stmt_get_result
1330     */
1331    public function get_result(): mysqli_result|false {}
1332}
1333
1334final class mysqli_warning
1335{
1336    public string $message;
1337
1338    public string $sqlstate;
1339
1340    public int $errno;
1341
1342    private function __construct() {}
1343
1344    public function next(): bool {}
1345}
1346
1347final class mysqli_sql_exception extends RuntimeException
1348{
1349    protected string $sqlstate = "00000";
1350
1351    public function getSqlState(): string {}
1352}
1353
1354/** @refcount 1 */
1355function mysqli_affected_rows(mysqli $mysql): int|string {}
1356
1357function mysqli_autocommit(mysqli $mysql, bool $enable): bool {}
1358
1359function mysqli_begin_transaction(mysqli $mysql, int $flags = 0, ?string $name = null): bool {}
1360
1361function mysqli_change_user(mysqli $mysql, string $username, #[\SensitiveParameter] string $password, ?string $database): bool {}
1362
1363/** @refcount 1 */
1364function mysqli_character_set_name(mysqli $mysql): string {}
1365
1366function mysqli_close(mysqli $mysql): true {} // TODO make return type void
1367
1368function mysqli_commit(mysqli $mysql, int $flags = 0, ?string $name = null): bool {}
1369
1370/**
1371 * @refcount 1
1372 */
1373function mysqli_connect(
1374    ?string $hostname = null,
1375    ?string $username = null,
1376    #[\SensitiveParameter] ?string $password = null,
1377    ?string $database = null,
1378    ?int $port = null,
1379    ?string $socket = null
1380): mysqli|false {}
1381
1382function mysqli_connect_errno(): int {}
1383
1384/** @refcount 1 */
1385function mysqli_connect_error(): ?string {}
1386
1387function mysqli_data_seek(mysqli_result $result, int $offset): bool {}
1388
1389function mysqli_dump_debug_info(mysqli $mysql): bool {}
1390
1391function mysqli_debug(string $options): true {} // TODO make return type void
1392
1393function mysqli_errno(mysqli $mysql): int {}
1394
1395/** @refcount 1 */
1396function mysqli_error(mysqli $mysql): string {}
1397
1398/**
1399 * @return array<int, array>
1400 * @refcount 1
1401 */
1402function mysqli_error_list(mysqli $mysql): array {}
1403
1404function mysqli_stmt_execute(mysqli_stmt $statement, ?array $params = null): bool {}
1405
1406/** @alias mysqli_stmt_execute */
1407function mysqli_execute(mysqli_stmt $statement, ?array $params = null): bool {}
1408
1409function mysqli_execute_query(mysqli $mysql, string $query, ?array $params = null): mysqli_result|bool {}
1410
1411/** @refcount 1 */
1412function mysqli_fetch_field(mysqli_result $result): object|false {}
1413
1414/**
1415 * @return array<int, object>
1416 * @refcount 1
1417 */
1418function mysqli_fetch_fields(mysqli_result $result): array {}
1419
1420/** @refcount 1 */
1421function mysqli_fetch_field_direct(mysqli_result $result, int $index): object|false {}
1422
1423/**
1424 * @return array<int, int>|false
1425 * @refcount 1
1426 */
1427function mysqli_fetch_lengths(mysqli_result $result): array|false {}
1428
1429/**
1430 * @return array<int|string, mixed>
1431 * @refcount 1
1432 */
1433function mysqli_fetch_all(mysqli_result $result, int $mode = MYSQLI_NUM): array {}
1434
1435/**
1436 * @return array<int|string, mixed>|null|false
1437 * @refcount 1
1438 */
1439function mysqli_fetch_array(mysqli_result $result, int $mode = MYSQLI_BOTH): array|null|false {}
1440
1441/**
1442 * @return array<int|string, mixed>|null|false
1443 * @refcount 1
1444 */
1445function mysqli_fetch_assoc(mysqli_result $result): array|null|false {}
1446
1447/** @refcount 1 */
1448function mysqli_fetch_object(mysqli_result $result, string $class = "stdClass", array $constructor_args = []): object|null|false {}
1449
1450/**
1451 * @return array<int, mixed>|null|false
1452 * @refcount 1
1453 */
1454function mysqli_fetch_row(mysqli_result $result): array|null|false {}
1455
1456function mysqli_fetch_column(mysqli_result $result, int $column = 0): null|int|float|string|false {}
1457
1458function mysqli_field_count(mysqli $mysql): int {}
1459
1460function mysqli_field_seek(mysqli_result $result, int $index): true {} // TODO make return type void
1461
1462function mysqli_field_tell(mysqli_result $result): int {}
1463
1464function mysqli_free_result(mysqli_result $result): void {}
1465
1466/**
1467 * @return array<string, mixed>
1468 * @refcount 1
1469 */
1470function mysqli_get_connection_stats(mysqli $mysql): array {}
1471
1472/**
1473 * @return array<string, string>
1474 * @refcount 1
1475 */
1476function mysqli_get_client_stats(): array {}
1477
1478/** @refcount 1 */
1479function mysqli_get_charset(mysqli $mysql): ?object {}
1480
1481/** @refcount 1 */
1482function mysqli_get_client_info(?mysqli $mysql = null): string {}
1483
1484function mysqli_get_client_version(): int {}
1485
1486/**
1487 * @return array<string, int>
1488 * @refcount 1
1489 */
1490function mysqli_get_links_stats(): array {}
1491
1492/** @refcount 1 */
1493function mysqli_get_host_info(mysqli $mysql): string {}
1494
1495function mysqli_get_proto_info(mysqli $mysql): int {}
1496
1497/** @refcount 1 */
1498function mysqli_get_server_info(mysqli $mysql): string {}
1499
1500function mysqli_get_server_version(mysqli $mysql): int {}
1501
1502/** @refcount 1 */
1503function mysqli_get_warnings(mysqli $mysql): mysqli_warning|false {}
1504
1505/** @refcount 1 */
1506function mysqli_init(): mysqli|false {}
1507
1508/** @refcount 1 */
1509function mysqli_info(mysqli $mysql): ?string {}
1510
1511/** @refcount 1 */
1512function mysqli_insert_id(mysqli $mysql): int|string {}
1513
1514function mysqli_kill(mysqli $mysql, int $process_id): bool {}
1515
1516function mysqli_more_results(mysqli $mysql): bool {}
1517
1518function mysqli_multi_query(mysqli $mysql, string $query): bool {}
1519
1520function mysqli_next_result(mysqli $mysql): bool {}
1521
1522function mysqli_num_fields(mysqli_result $result): int {}
1523
1524/** @refcount 1 */
1525function mysqli_num_rows(mysqli_result $result): int|string {}
1526
1527/** @param string|int $value */
1528function mysqli_options(mysqli $mysql, int $option, $value): bool {}
1529
1530/**
1531 * @param string|int $value
1532 * @alias mysqli_options
1533 */
1534function mysqli_set_opt(mysqli $mysql, int $option, $value): bool {}
1535
1536function mysqli_ping(mysqli $mysql): bool {}
1537
1538function mysqli_poll(?array &$read, ?array &$error, array &$reject, int $seconds, int $microseconds = 0): int|false {}
1539
1540/** @refcount 1 */
1541function mysqli_prepare(mysqli $mysql, string $query): mysqli_stmt|false {}
1542
1543function mysqli_report(int $flags): bool {}
1544
1545/** @refcount 1 */
1546function mysqli_query(mysqli $mysql, string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool {}
1547
1548function mysqli_real_connect(
1549    mysqli $mysql,
1550    ?string $hostname = null,
1551    ?string $username = null,
1552    #[\SensitiveParameter]
1553    ?string $password = null,
1554    ?string $database = null,
1555    ?int $port = null,
1556    ?string $socket = null,
1557    int $flags = 0
1558): bool {}
1559
1560/** @refcount 1 */
1561function mysqli_real_escape_string(mysqli $mysql, string $string): string {}
1562
1563/** @alias mysqli_real_escape_string */
1564function mysqli_escape_string(mysqli $mysql, string $string): string {}
1565
1566function mysqli_real_query(mysqli $mysql, string $query): bool {}
1567
1568/** @refcount 1 */
1569function mysqli_reap_async_query(mysqli $mysql): mysqli_result|bool {}
1570
1571function mysqli_release_savepoint(mysqli $mysql, string $name): bool {}
1572
1573function mysqli_rollback(mysqli $mysql, int $flags = 0, ?string $name = null): bool {}
1574
1575function mysqli_savepoint(mysqli $mysql, string $name): bool {}
1576
1577function mysqli_select_db(mysqli $mysql, string $database): bool {}
1578
1579function mysqli_set_charset(mysqli $mysql, string $charset): bool {}
1580
1581/** @refcount 1 */
1582function mysqli_stmt_affected_rows(mysqli_stmt $statement): int|string {}
1583
1584function mysqli_stmt_attr_get(mysqli_stmt $statement, int $attribute): int {}
1585
1586function mysqli_stmt_attr_set(mysqli_stmt $statement, int $attribute, int $value): bool {}
1587
1588function mysqli_stmt_bind_param(mysqli_stmt $statement, string $types, mixed &...$vars): bool {}
1589
1590function mysqli_stmt_bind_result(mysqli_stmt $statement, mixed &...$vars): bool {}
1591
1592function mysqli_stmt_close(mysqli_stmt $statement): true {}
1593
1594function mysqli_stmt_data_seek(mysqli_stmt $statement, int $offset): void {}
1595
1596function mysqli_stmt_errno(mysqli_stmt $statement): int {}
1597
1598/** @refcount 1 */
1599function mysqli_stmt_error(mysqli_stmt $statement): string {}
1600
1601/**
1602 * @return array<int, array>
1603 * @refcount 1
1604 */
1605function mysqli_stmt_error_list(mysqli_stmt $statement): array {}
1606
1607function mysqli_stmt_fetch(mysqli_stmt $statement): ?bool {}
1608
1609function mysqli_stmt_field_count(mysqli_stmt $statement): int {}
1610
1611function mysqli_stmt_free_result(mysqli_stmt $statement): void {}
1612
1613/** @refcount 1 */
1614function mysqli_stmt_get_result(mysqli_stmt $statement): mysqli_result|false {}
1615
1616/** @refcount 1 */
1617function mysqli_stmt_get_warnings(mysqli_stmt $statement): mysqli_warning|false {}
1618
1619/** @refcount 1 */
1620function mysqli_stmt_init(mysqli $mysql): mysqli_stmt|false {}
1621
1622/** @refcount 1 */
1623function mysqli_stmt_insert_id(mysqli_stmt $statement): int|string {}
1624
1625function mysqli_stmt_more_results(mysqli_stmt $statement): bool {}
1626
1627function mysqli_stmt_next_result(mysqli_stmt $statement): bool {}
1628
1629/** @refcount 1 */
1630function mysqli_stmt_num_rows(mysqli_stmt $statement): int|string {}
1631
1632function mysqli_stmt_param_count(mysqli_stmt $statement): int {}
1633
1634function mysqli_stmt_prepare(mysqli_stmt $statement, string $query): bool {}
1635
1636function mysqli_stmt_reset(mysqli_stmt $statement): bool {}
1637
1638/** @refcount 1 */
1639function mysqli_stmt_result_metadata(mysqli_stmt $statement): mysqli_result|false {}
1640
1641function mysqli_stmt_send_long_data(mysqli_stmt $statement, int $param_num, string $data): bool {}
1642
1643function mysqli_stmt_store_result(mysqli_stmt $statement): bool {}
1644
1645/** @refcount 1 */
1646function mysqli_stmt_sqlstate(mysqli_stmt $statement): string {}
1647
1648/** @refcount 1 */
1649function mysqli_sqlstate(mysqli $mysql): string {}
1650
1651function mysqli_ssl_set(
1652    mysqli $mysql,
1653    ?string $key,
1654    ?string $certificate,
1655    ?string $ca_certificate,
1656    ?string $ca_path,
1657    ?string $cipher_algos
1658): true {} // TODO make return type void
1659
1660/** @refcount 1 */
1661function mysqli_stat(mysqli $mysql): string|false {}
1662
1663/** @refcount 1 */
1664function mysqli_store_result(mysqli $mysql, int $mode = 0): mysqli_result|false {}
1665
1666function mysqli_thread_id(mysqli $mysql): int {}
1667
1668function mysqli_thread_safe(): bool {}
1669
1670/** @refcount 1 */
1671function mysqli_use_result(mysqli $mysql): mysqli_result|false {}
1672
1673function mysqli_warning_count(mysqli $mysql): int {}
1674
1675function mysqli_refresh(mysqli $mysql, int $flags): bool {}
1676