1<?php
2
3/** @generate-class-entries */
4
5class ReflectionException extends Exception
6{
7}
8
9class Reflection
10{
11    /** @tentative-return-type */
12    public static function getModifierNames(int $modifiers): array {}
13}
14
15interface Reflector extends Stringable
16{
17}
18
19/** @not-serializable */
20abstract class ReflectionFunctionAbstract implements Reflector
21{
22    public string $name;
23
24    /** @implementation-alias ReflectionClass::__clone */
25    private function __clone(): void {}
26
27    /** @tentative-return-type */
28    public function inNamespace(): bool {}
29
30    /** @tentative-return-type */
31    public function isClosure(): bool {}
32
33    /** @tentative-return-type */
34    public function isDeprecated(): bool {}
35
36    /** @tentative-return-type */
37    public function isInternal(): bool {}
38
39    /** @tentative-return-type */
40    public function isUserDefined(): bool {}
41
42    /** @tentative-return-type */
43    public function isGenerator(): bool {}
44
45    /** @tentative-return-type */
46    public function isVariadic(): bool {}
47
48    /** @tentative-return-type */
49    public function isStatic(): bool {}
50
51    /** @tentative-return-type */
52    public function getClosureThis(): ?object {}
53
54    /** @tentative-return-type */
55    public function getClosureScopeClass(): ?ReflectionClass {}
56
57    /** @tentative-return-type */
58    public function getClosureCalledClass(): ?ReflectionClass {}
59
60    public function getClosureUsedVariables(): array {}
61
62    /** @tentative-return-type */
63    public function getDocComment(): string|false {}
64
65    /** @tentative-return-type */
66    public function getEndLine(): int|false {}
67
68    /** @tentative-return-type */
69    public function getExtension(): ?ReflectionExtension {}
70
71    /** @tentative-return-type */
72    public function getExtensionName(): string|false {}
73
74    /** @tentative-return-type */
75    public function getFileName(): string|false {}
76
77    /** @tentative-return-type */
78    public function getName(): string {}
79
80    /** @tentative-return-type */
81    public function getNamespaceName(): string {}
82
83    /** @tentative-return-type */
84    public function getNumberOfParameters(): int {}
85
86    /** @tentative-return-type */
87    public function getNumberOfRequiredParameters(): int {}
88
89    /** @tentative-return-type */
90    public function getParameters(): array {}
91
92    /** @tentative-return-type */
93    public function getShortName(): string {}
94
95    /** @tentative-return-type */
96    public function getStartLine(): int|false {}
97
98    /** @tentative-return-type */
99    public function getStaticVariables(): array {}
100
101    /** @tentative-return-type */
102    public function returnsReference(): bool {}
103
104    /** @tentative-return-type */
105    public function hasReturnType(): bool {}
106
107    /** @tentative-return-type */
108    public function getReturnType(): ?ReflectionType {}
109
110    public function hasTentativeReturnType(): bool {}
111
112    public function getTentativeReturnType(): ?ReflectionType {}
113
114    public function getAttributes(?string $name = null, int $flags = 0): array {}
115}
116
117class ReflectionFunction extends ReflectionFunctionAbstract
118{
119    /** @cvalue ZEND_ACC_DEPRECATED */
120    public const int IS_DEPRECATED = UNKNOWN;
121
122    public function __construct(Closure|string $function) {}
123
124    public function __toString(): string {}
125
126    public function isAnonymous(): bool {}
127
128    /**
129     * @tentative-return-type
130     */
131    #[\Deprecated(since: '8.0', message: "as ReflectionFunction can no longer be constructed for disabled functions")]
132    public function isDisabled(): bool {}
133
134    /** @tentative-return-type */
135    public function invoke(mixed ...$args): mixed {}
136
137    /** @tentative-return-type */
138    public function invokeArgs(array $args): mixed {}
139
140    /** @tentative-return-type */
141    public function getClosure(): Closure {}
142}
143
144/** @not-serializable */
145final class ReflectionGenerator
146{
147    public function __construct(Generator $generator) {}
148
149    /** @tentative-return-type */
150    public function getExecutingLine(): int {}
151
152    /** @tentative-return-type */
153    public function getExecutingFile(): string {}
154
155    /** @tentative-return-type */
156    public function getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array {}
157
158    /** @tentative-return-type */
159    public function getFunction(): ReflectionFunctionAbstract {}
160
161    /** @tentative-return-type */
162    public function getThis(): ?object {}
163
164    /** @tentative-return-type */
165    public function getExecutingGenerator(): Generator {}
166
167    public function isClosed(): bool {}
168}
169
170class ReflectionMethod extends ReflectionFunctionAbstract
171{
172    /** @cvalue ZEND_ACC_STATIC */
173    public const int IS_STATIC = UNKNOWN;
174    /** @cvalue ZEND_ACC_PUBLIC */
175    public const int IS_PUBLIC = UNKNOWN;
176    /** @cvalue ZEND_ACC_PROTECTED */
177    public const int IS_PROTECTED = UNKNOWN;
178    /** @cvalue ZEND_ACC_PRIVATE */
179    public const int IS_PRIVATE = UNKNOWN;
180    /** @cvalue ZEND_ACC_ABSTRACT */
181    public const int IS_ABSTRACT = UNKNOWN;
182    /** @cvalue ZEND_ACC_FINAL */
183    public const int IS_FINAL = UNKNOWN;
184
185    public string $class;
186
187    public function __construct(object|string $objectOrMethod, ?string $method = null) {}
188
189    public static function createFromMethodName(string $method): static {}
190
191    public function __toString(): string {}
192
193    /** @tentative-return-type */
194    public function isPublic(): bool {}
195
196    /** @tentative-return-type */
197    public function isPrivate(): bool {}
198
199    /** @tentative-return-type */
200    public function isProtected(): bool {}
201
202    /** @tentative-return-type */
203    public function isAbstract(): bool {}
204
205    /** @tentative-return-type */
206    public function isFinal(): bool {}
207
208    /** @tentative-return-type */
209    public function isConstructor(): bool {}
210
211    /** @tentative-return-type */
212    public function isDestructor(): bool {}
213
214    /** @tentative-return-type */
215    public function getClosure(?object $object = null): Closure {}
216
217    /** @tentative-return-type */
218    public function getModifiers(): int {}
219
220    /** @tentative-return-type */
221    public function invoke(?object $object, mixed ...$args): mixed {}
222
223    /** @tentative-return-type */
224    public function invokeArgs(?object $object, array $args): mixed {}
225
226    /** @tentative-return-type */
227    public function getDeclaringClass(): ReflectionClass {}
228
229    /** @tentative-return-type */
230    public function getPrototype(): ReflectionMethod {}
231
232    public function hasPrototype(): bool {}
233
234    /** @tentative-return-type */
235    public function setAccessible(bool $accessible): void {}
236}
237
238/** @not-serializable */
239class ReflectionClass implements Reflector
240{
241    /**
242     * @cvalue ZEND_ACC_IMPLICIT_ABSTRACT_CLASS
243     * @todo deprecate
244     */
245    public const int IS_IMPLICIT_ABSTRACT = UNKNOWN;
246    /** @cvalue ZEND_ACC_EXPLICIT_ABSTRACT_CLASS */
247    public const int IS_EXPLICIT_ABSTRACT = UNKNOWN;
248    /** @cvalue ZEND_ACC_FINAL */
249    public const int IS_FINAL = UNKNOWN;
250    /** @cvalue ZEND_ACC_READONLY_CLASS */
251    public const int IS_READONLY = UNKNOWN;
252
253    /** @cvalue ZEND_LAZY_OBJECT_SKIP_INITIALIZATION_ON_SERIALIZE */
254    public const int SKIP_INITIALIZATION_ON_SERIALIZE = UNKNOWN;
255
256    /** @cvalue ZEND_LAZY_OBJECT_SKIP_DESTRUCTOR */
257    public const int SKIP_DESTRUCTOR = UNKNOWN;
258
259    public string $name;
260
261    private function __clone(): void {}
262
263    public function __construct(object|string $objectOrClass) {}
264
265    public function __toString(): string {}
266
267    /** @tentative-return-type */
268    public function getName(): string {}
269
270    /** @tentative-return-type */
271    public function isInternal(): bool {}
272
273    /** @tentative-return-type */
274    public function isUserDefined(): bool {}
275
276    /** @tentative-return-type */
277    public function isAnonymous(): bool {}
278
279    /** @tentative-return-type */
280    public function isInstantiable(): bool {}
281
282    /** @tentative-return-type */
283    public function isCloneable(): bool {}
284
285    /** @tentative-return-type */
286    public function getFileName(): string|false {}
287
288    /** @tentative-return-type */
289    public function getStartLine(): int|false {}
290
291    /** @tentative-return-type */
292    public function getEndLine(): int|false {}
293
294    /** @tentative-return-type */
295    public function getDocComment(): string|false {}
296
297    /** @tentative-return-type */
298    public function getConstructor(): ?ReflectionMethod {}
299
300    /** @tentative-return-type */
301    public function hasMethod(string $name): bool {}
302
303    /** @tentative-return-type */
304    public function getMethod(string $name): ReflectionMethod {}
305
306    /** @tentative-return-type */
307    public function getMethods(?int $filter = null): array {}
308
309    /** @tentative-return-type */
310    public function hasProperty(string $name): bool {}
311
312    /** @tentative-return-type */
313    public function getProperty(string $name): ReflectionProperty {}
314
315    /** @tentative-return-type */
316    public function getProperties(?int $filter = null): array {}
317
318    /** @tentative-return-type */
319    public function hasConstant(string $name): bool {}
320
321    /** @tentative-return-type */
322    public function getConstants(?int $filter = null): array {}
323
324    /** @tentative-return-type */
325    public function getReflectionConstants(?int $filter = null): array {}
326
327    /** @tentative-return-type */
328    public function getConstant(string $name): mixed {} // TODO throw exception when the constant doesn't exist
329
330    /** @tentative-return-type */
331    public function getReflectionConstant(string $name): ReflectionClassConstant|false {}
332
333    /** @tentative-return-type */
334    public function getInterfaces(): array {}
335
336    /** @tentative-return-type */
337    public function getInterfaceNames(): array {}
338
339    /** @tentative-return-type */
340    public function isInterface(): bool {}
341
342    /** @tentative-return-type */
343    public function getTraits(): array {}
344
345    /** @tentative-return-type */
346    public function getTraitNames(): array {}
347
348    /** @tentative-return-type */
349    public function getTraitAliases(): array {}
350
351    /** @tentative-return-type */
352    public function isTrait(): bool {}
353
354    public function isEnum(): bool {}
355
356    /** @tentative-return-type */
357    public function isAbstract(): bool {}
358
359    /** @tentative-return-type */
360    public function isFinal(): bool {}
361
362    public function isReadOnly(): bool {}
363
364    /** @tentative-return-type */
365    public function getModifiers(): int {}
366
367    /** @tentative-return-type */
368    public function isInstance(object $object): bool {}
369
370    /** @tentative-return-type */
371    public function newInstance(mixed ...$args): object {}
372
373    /** @tentative-return-type */
374    public function newInstanceWithoutConstructor(): object {}
375
376    /** @tentative-return-type */
377    public function newInstanceArgs(array $args = []): ?object {}
378
379    public function newLazyGhost(callable $initializer, int $options = 0): object {}
380
381    public function newLazyProxy(callable $factory, int $options = 0): object {}
382
383    public function resetAsLazyGhost(object $object, callable $initializer, int $options = 0): void {}
384
385    public function resetAsLazyProxy(object $object, callable $factory, int $options = 0): void {}
386
387    public function initializeLazyObject(object $object): object {}
388
389    public function isUninitializedLazyObject(object $object): bool {}
390
391    public function markLazyObjectAsInitialized(object $object): object {}
392
393    public function getLazyInitializer(object $object): ?callable {}
394
395    /** @tentative-return-type */
396    public function getParentClass(): ReflectionClass|false {}
397
398    /** @tentative-return-type */
399    public function isSubclassOf(ReflectionClass|string $class): bool {}
400
401    /** @tentative-return-type */
402    public function getStaticProperties(): array {}
403
404    /** @tentative-return-type */
405    public function getStaticPropertyValue(string $name, mixed $default = UNKNOWN): mixed {}
406
407    /** @tentative-return-type */
408    public function setStaticPropertyValue(string $name, mixed $value): void {}
409
410    /** @tentative-return-type */
411    public function getDefaultProperties(): array {}
412
413    /** @tentative-return-type */
414    public function isIterable(): bool {}
415
416    /**
417     * @tentative-return-type
418     * @alias ReflectionClass::isIterable
419     */
420    public function isIterateable(): bool {}
421
422    /** @tentative-return-type */
423    public function implementsInterface(ReflectionClass|string $interface): bool {}
424
425    /** @tentative-return-type */
426    public function getExtension(): ?ReflectionExtension {}
427
428    /** @tentative-return-type */
429    public function getExtensionName(): string|false {}
430
431    /** @tentative-return-type */
432    public function inNamespace(): bool {}
433
434    /** @tentative-return-type */
435    public function getNamespaceName(): string {}
436
437    /** @tentative-return-type */
438    public function getShortName(): string {}
439
440    public function getAttributes(?string $name = null, int $flags = 0): array {}
441}
442
443class ReflectionObject extends ReflectionClass
444{
445    public function __construct(object $object) {}
446}
447
448enum PropertyHookType: string
449{
450    case Get = 'get';
451    case Set = 'set';
452}
453
454/** @not-serializable */
455class ReflectionProperty implements Reflector
456{
457    /** @cvalue ZEND_ACC_STATIC */
458    public const int IS_STATIC = UNKNOWN;
459    /** @cvalue ZEND_ACC_READONLY */
460    public const int IS_READONLY = UNKNOWN;
461    /** @cvalue ZEND_ACC_PUBLIC */
462    public const int IS_PUBLIC = UNKNOWN;
463    /** @cvalue ZEND_ACC_PROTECTED */
464    public const int IS_PROTECTED = UNKNOWN;
465    /** @cvalue ZEND_ACC_PRIVATE */
466    public const int IS_PRIVATE = UNKNOWN;
467    /** @cvalue ZEND_ACC_ABSTRACT */
468    public const int IS_ABSTRACT = UNKNOWN;
469    /** @cvalue ZEND_ACC_PROTECTED_SET */
470    public const int IS_PROTECTED_SET = UNKNOWN;
471    /** @cvalue ZEND_ACC_PRIVATE_SET */
472    public const int IS_PRIVATE_SET = UNKNOWN;
473    /** @cvalue ZEND_ACC_VIRTUAL */
474    public const int IS_VIRTUAL = UNKNOWN;
475    /** @cvalue ZEND_ACC_FINAL */
476    public const int IS_FINAL = UNKNOWN;
477
478    public string $name;
479    public string $class;
480
481    /** @implementation-alias ReflectionClass::__clone */
482    private function __clone(): void {}
483
484    public function __construct(object|string $class, string $property) {}
485
486    public function __toString(): string {}
487
488    /** @tentative-return-type */
489    public function getName(): string {}
490
491    /** @tentative-return-type */
492    public function getValue(?object $object = null): mixed {}
493
494    /** @tentative-return-type */
495    public function setValue(mixed $objectOrValue, mixed $value = UNKNOWN): void {}
496
497    public function getRawValue(object $object): mixed {}
498
499    public function setRawValue(object $object, mixed $value): void {}
500
501    public function setRawValueWithoutLazyInitialization(object $object, mixed $value): void {}
502
503    public function skipLazyInitialization(object $object): void {}
504
505    public function isLazy(object $object): bool {}
506
507    /** @tentative-return-type */
508    public function isInitialized(?object $object = null): bool {}
509
510    /** @tentative-return-type */
511    public function isPublic(): bool {}
512
513    /** @tentative-return-type */
514    public function isPrivate(): bool {}
515
516    /** @tentative-return-type */
517    public function isProtected(): bool {}
518
519    public function isPrivateSet(): bool {}
520
521    public function isProtectedSet(): bool {}
522
523    /** @tentative-return-type */
524    public function isStatic(): bool {}
525
526    public function isReadOnly(): bool {}
527
528    /** @tentative-return-type */
529    public function isDefault(): bool {}
530
531    public function isDynamic(): bool {}
532
533    public function isAbstract(): bool {}
534
535    public function isVirtual(): bool {}
536
537    public function isPromoted(): bool {}
538
539    /** @tentative-return-type */
540    public function getModifiers(): int {}
541
542    /** @tentative-return-type */
543    public function getDeclaringClass(): ReflectionClass {}
544
545    /** @tentative-return-type */
546    public function getDocComment(): string|false {}
547
548    /** @tentative-return-type */
549    public function setAccessible(bool $accessible): void {}
550
551    /** @tentative-return-type */
552    public function getType(): ?ReflectionType {}
553
554    public function getSettableType(): ?ReflectionType {}
555
556    /** @tentative-return-type */
557    public function hasType(): bool {}
558
559    public function hasDefaultValue(): bool {}
560
561    /** @tentative-return-type */
562    public function getDefaultValue(): mixed {}
563
564    public function getAttributes(?string $name = null, int $flags = 0): array {}
565
566    public function hasHooks(): bool {}
567
568    /** @return array<string, ReflectionMethod> */
569    public function getHooks(): array {}
570
571    public function hasHook(PropertyHookType $type): bool {}
572
573    public function getHook(PropertyHookType $type): ?ReflectionMethod {}
574
575    public function isFinal(): bool {}
576}
577
578/** @not-serializable */
579class ReflectionClassConstant implements Reflector
580{
581    /** @cvalue ZEND_ACC_PUBLIC */
582    public const int IS_PUBLIC = UNKNOWN;
583    /** @cvalue ZEND_ACC_PROTECTED */
584    public const int IS_PROTECTED = UNKNOWN;
585    /** @cvalue ZEND_ACC_PRIVATE */
586    public const int IS_PRIVATE = UNKNOWN;
587    /** @cvalue ZEND_ACC_FINAL */
588    public const int IS_FINAL = UNKNOWN;
589
590    public string $name;
591    public string $class;
592
593    /** @implementation-alias ReflectionClass::__clone */
594    private function __clone(): void {}
595
596    public function __construct(object|string $class, string $constant) {}
597
598    public function __toString(): string {}
599
600    /** @tentative-return-type */
601    public function getName(): string {}
602
603    /** @tentative-return-type */
604    public function getValue(): mixed {}
605
606    /** @tentative-return-type */
607    public function isPublic(): bool {}
608
609    /** @tentative-return-type */
610    public function isPrivate(): bool {}
611
612    /** @tentative-return-type */
613    public function isProtected(): bool {}
614
615    public function isFinal(): bool {}
616
617    /** @tentative-return-type */
618    public function getModifiers(): int {}
619
620    /** @tentative-return-type */
621    public function getDeclaringClass(): ReflectionClass {}
622
623    /** @tentative-return-type */
624    public function getDocComment(): string|false {}
625
626    public function getAttributes(?string $name = null, int $flags = 0): array {}
627
628    public function isEnumCase(): bool {}
629
630    public function isDeprecated(): bool {}
631
632    public function hasType(): bool {}
633
634    public function getType(): ?ReflectionType {}
635}
636
637/** @not-serializable */
638class ReflectionParameter implements Reflector
639{
640    public string $name;
641
642    /** @implementation-alias ReflectionClass::__clone */
643    private function __clone(): void {}
644
645    /** @param string|array|object $function */
646    public function __construct($function, int|string $param) {}
647
648    public function __toString(): string {}
649
650    /** @tentative-return-type */
651    public function getName(): string {}
652
653    /** @tentative-return-type */
654    public function isPassedByReference(): bool {}
655
656    /** @tentative-return-type */
657    public function canBePassedByValue(): bool {}
658
659    /** @tentative-return-type */
660    public function getDeclaringFunction(): ReflectionFunctionAbstract {}
661
662    /** @tentative-return-type */
663    public function getDeclaringClass(): ?ReflectionClass {}
664
665    /**
666     * @tentative-return-type
667     */
668    #[\Deprecated(since: '8.0', message: "use ReflectionParameter::getType() instead")]
669    public function getClass(): ?ReflectionClass {}
670
671    /** @tentative-return-type */
672    public function hasType(): bool {}
673
674    /** @tentative-return-type */
675    public function getType(): ?ReflectionType {}
676
677    /**
678     * @tentative-return-type
679     */
680    #[\Deprecated(since: '8.0', message: "use ReflectionParameter::getType() instead")]
681    public function isArray(): bool {}
682
683    /**
684     * @tentative-return-type
685     */
686    #[\Deprecated(since: '8.0', message: "use ReflectionParameter::getType() instead")]
687    public function isCallable(): bool {}
688
689    /** @tentative-return-type */
690    public function allowsNull(): bool {}
691
692    /** @tentative-return-type */
693    public function getPosition(): int {}
694
695    /** @tentative-return-type */
696    public function isOptional(): bool {}
697
698    /** @tentative-return-type */
699    public function isDefaultValueAvailable(): bool {}
700
701    /** @tentative-return-type */
702    public function getDefaultValue(): mixed {}
703
704    /** @tentative-return-type */
705    public function isDefaultValueConstant(): bool {}
706
707    /** @tentative-return-type */
708    public function getDefaultValueConstantName(): ?string {}
709
710    /** @tentative-return-type */
711    public function isVariadic(): bool {}
712
713    public function isPromoted(): bool {}
714
715    public function getAttributes(?string $name = null, int $flags = 0): array {}
716}
717
718/** @not-serializable */
719abstract class ReflectionType implements Stringable
720{
721    /** @implementation-alias ReflectionClass::__clone */
722    private function __clone(): void {}
723
724    /** @tentative-return-type */
725    public function allowsNull(): bool {}
726
727    public function __toString(): string {}
728}
729
730class ReflectionNamedType extends ReflectionType
731{
732    /** @tentative-return-type */
733    public function getName(): string {}
734
735    /** @tentative-return-type */
736    public function isBuiltin(): bool {}
737}
738
739class ReflectionUnionType extends ReflectionType
740{
741    public function getTypes(): array {}
742}
743
744class ReflectionIntersectionType extends ReflectionType
745{
746    public function getTypes(): array {}
747}
748
749/** @not-serializable */
750class ReflectionExtension implements Reflector
751{
752    public string $name;
753
754    /** @implementation-alias ReflectionClass::__clone */
755    private function __clone(): void {}
756
757    public function __construct(string $name) {}
758
759    public function __toString(): string {}
760
761    /** @tentative-return-type */
762    public function getName(): string {}
763
764    /** @tentative-return-type */
765    public function getVersion(): ?string {}
766
767    /** @tentative-return-type */
768    public function getFunctions(): array {}
769
770    /** @tentative-return-type */
771    public function getConstants(): array {}
772
773    /** @tentative-return-type */
774    public function getINIEntries(): array {}
775
776    /** @tentative-return-type */
777    public function getClasses(): array {}
778
779    /** @tentative-return-type */
780    public function getClassNames(): array {}
781
782    /** @tentative-return-type */
783    public function getDependencies(): array {}
784
785    /** @tentative-return-type */
786    public function info(): void {}
787
788    /** @tentative-return-type */
789    public function isPersistent(): bool {}
790
791    /** @tentative-return-type */
792    public function isTemporary(): bool {}
793}
794
795/** @not-serializable */
796class ReflectionZendExtension implements Reflector
797{
798    public string $name;
799
800    /** @implementation-alias ReflectionClass::__clone */
801    private function __clone(): void {}
802
803    public function __construct(string $name) {}
804
805    public function __toString(): string {}
806
807    /** @tentative-return-type */
808    public function getName(): string {}
809
810    /** @tentative-return-type */
811    public function getVersion(): string {}
812
813    /** @tentative-return-type */
814    public function getAuthor(): string {}
815
816    /** @tentative-return-type */
817    public function getURL(): string {}
818
819    /** @tentative-return-type */
820    public function getCopyright(): string {}
821}
822
823/** @not-serializable */
824final class ReflectionReference
825{
826    public static function fromArrayElement(array $array, int|string $key): ?ReflectionReference {}
827
828    public function getId(): string {}
829
830    /** @implementation-alias ReflectionClass::__clone */
831    private function __clone(): void {}
832
833    private function __construct() {}
834}
835
836/** @not-serializable */
837class ReflectionAttribute implements Reflector
838{
839    /** @cvalue REFLECTION_ATTRIBUTE_IS_INSTANCEOF */
840    public const int IS_INSTANCEOF = UNKNOWN;
841
842    public string $name;
843
844    public function getName(): string {}
845    public function getTarget(): int {}
846    public function isRepeated(): bool {}
847    public function getArguments(): array {}
848    public function newInstance(): object {}
849
850    public function __toString(): string {}
851
852    private function __clone(): void {}
853
854    private function __construct() {}
855}
856
857class ReflectionEnum extends ReflectionClass
858{
859    public function __construct(object|string $objectOrClass) {}
860
861    public function hasCase(string $name): bool {}
862
863    public function getCase(string $name): ReflectionEnumUnitCase {}
864
865    public function getCases(): array {}
866
867    public function isBacked(): bool {}
868
869    public function getBackingType(): ?ReflectionNamedType {}
870}
871
872class ReflectionEnumUnitCase extends ReflectionClassConstant
873{
874    public function __construct(object|string $class, string $constant) {}
875
876    public function getEnum(): ReflectionEnum {}
877
878    /** @implementation-alias ReflectionClassConstant::getValue */
879    public function getValue(): UnitEnum {}
880}
881
882class ReflectionEnumBackedCase extends ReflectionEnumUnitCase
883{
884    public function __construct(object|string $class, string $constant) {}
885
886    public function getBackingValue(): int|string {}
887}
888
889/** @not-serializable */
890final class ReflectionFiber
891{
892    public function __construct(Fiber $fiber) {}
893
894    public function getFiber(): Fiber {}
895
896    public function getExecutingFile(): ?string {}
897
898    public function getExecutingLine(): ?int {}
899
900    public function getCallable(): callable {}
901
902    public function getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array {}
903}
904
905/**
906 * @strict-properties
907 * @not-serializable
908 */
909final class ReflectionConstant implements Reflector
910{
911    public string $name;
912
913    public function __construct(string $name) {}
914
915    public function getName(): string {}
916
917    public function getNamespaceName(): string {}
918
919    public function getShortName(): string {}
920
921    public function getValue(): mixed {}
922
923    public function isDeprecated(): bool {}
924
925    public function __toString(): string {}
926}
927