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