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 $factory, 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_FINAL */
474    public const int IS_FINAL = UNKNOWN;
475
476    public string $name;
477    public string $class;
478
479    /** @implementation-alias ReflectionClass::__clone */
480    private function __clone(): void {}
481
482    public function __construct(object|string $class, string $property) {}
483
484    public function __toString(): string {}
485
486    /** @tentative-return-type */
487    public function getName(): string {}
488
489    /** @tentative-return-type */
490    public function getValue(?object $object = null): mixed {}
491
492    /** @tentative-return-type */
493    public function setValue(mixed $objectOrValue, mixed $value = UNKNOWN): void {}
494
495    public function getRawValue(object $object): mixed {}
496
497    public function setRawValue(object $object, mixed $value): void {}
498
499    public function setRawValueWithoutLazyInitialization(object $object, mixed $value): void {}
500
501    public function skipLazyInitialization(object $object): void {}
502
503    /** @tentative-return-type */
504    public function isInitialized(?object $object = null): bool {}
505
506    /** @tentative-return-type */
507    public function isPublic(): bool {}
508
509    /** @tentative-return-type */
510    public function isPrivate(): bool {}
511
512    /** @tentative-return-type */
513    public function isProtected(): bool {}
514
515    public function isPrivateSet(): bool {}
516
517    public function isProtectedSet(): bool {}
518
519    /** @tentative-return-type */
520    public function isStatic(): bool {}
521
522    public function isReadOnly(): bool {}
523
524    /** @tentative-return-type */
525    public function isDefault(): bool {}
526
527    public function isDynamic(): bool {}
528
529    public function isAbstract(): bool {}
530
531    public function isVirtual(): bool {}
532
533    public function isPromoted(): bool {}
534
535    /** @tentative-return-type */
536    public function getModifiers(): int {}
537
538    /** @tentative-return-type */
539    public function getDeclaringClass(): ReflectionClass {}
540
541    /** @tentative-return-type */
542    public function getDocComment(): string|false {}
543
544    /** @tentative-return-type */
545    public function setAccessible(bool $accessible): void {}
546
547    /** @tentative-return-type */
548    public function getType(): ?ReflectionType {}
549
550    public function getSettableType(): ?ReflectionType {}
551
552    /** @tentative-return-type */
553    public function hasType(): bool {}
554
555    public function hasDefaultValue(): bool {}
556
557    /** @tentative-return-type */
558    public function getDefaultValue(): mixed {}
559
560    public function getAttributes(?string $name = null, int $flags = 0): array {}
561
562    public function hasHooks(): bool {}
563
564    /** @return array<string, ReflectionMethod> */
565    public function getHooks(): array {}
566
567    public function hasHook(PropertyHookType $type): bool {}
568
569    public function getHook(PropertyHookType $type): ?ReflectionMethod {}
570
571    public function isFinal(): bool {}
572}
573
574/** @not-serializable */
575class ReflectionClassConstant implements Reflector
576{
577    /** @cvalue ZEND_ACC_PUBLIC */
578    public const int IS_PUBLIC = UNKNOWN;
579    /** @cvalue ZEND_ACC_PROTECTED */
580    public const int IS_PROTECTED = UNKNOWN;
581    /** @cvalue ZEND_ACC_PRIVATE */
582    public const int IS_PRIVATE = UNKNOWN;
583    /** @cvalue ZEND_ACC_FINAL */
584    public const int IS_FINAL = UNKNOWN;
585
586    public string $name;
587    public string $class;
588
589    /** @implementation-alias ReflectionClass::__clone */
590    private function __clone(): void {}
591
592    public function __construct(object|string $class, string $constant) {}
593
594    public function __toString(): string {}
595
596    /** @tentative-return-type */
597    public function getName(): string {}
598
599    /** @tentative-return-type */
600    public function getValue(): mixed {}
601
602    /** @tentative-return-type */
603    public function isPublic(): bool {}
604
605    /** @tentative-return-type */
606    public function isPrivate(): bool {}
607
608    /** @tentative-return-type */
609    public function isProtected(): bool {}
610
611    public function isFinal(): bool {}
612
613    /** @tentative-return-type */
614    public function getModifiers(): int {}
615
616    /** @tentative-return-type */
617    public function getDeclaringClass(): ReflectionClass {}
618
619    /** @tentative-return-type */
620    public function getDocComment(): string|false {}
621
622    public function getAttributes(?string $name = null, int $flags = 0): array {}
623
624    public function isEnumCase(): bool {}
625
626    public function isDeprecated(): bool {}
627
628    public function hasType(): bool {}
629
630    public function getType(): ?ReflectionType {}
631}
632
633/** @not-serializable */
634class ReflectionParameter implements Reflector
635{
636    public string $name;
637
638    /** @implementation-alias ReflectionClass::__clone */
639    private function __clone(): void {}
640
641    /** @param string|array|object $function */
642    public function __construct($function, int|string $param) {}
643
644    public function __toString(): string {}
645
646    /** @tentative-return-type */
647    public function getName(): string {}
648
649    /** @tentative-return-type */
650    public function isPassedByReference(): bool {}
651
652    /** @tentative-return-type */
653    public function canBePassedByValue(): bool {}
654
655    /** @tentative-return-type */
656    public function getDeclaringFunction(): ReflectionFunctionAbstract {}
657
658    /** @tentative-return-type */
659    public function getDeclaringClass(): ?ReflectionClass {}
660
661    /**
662     * @tentative-return-type
663     */
664    #[\Deprecated(since: '8.0', message: "use ReflectionParameter::getType() instead")]
665    public function getClass(): ?ReflectionClass {}
666
667    /** @tentative-return-type */
668    public function hasType(): bool {}
669
670    /** @tentative-return-type */
671    public function getType(): ?ReflectionType {}
672
673    /**
674     * @tentative-return-type
675     */
676    #[\Deprecated(since: '8.0', message: "use ReflectionParameter::getType() instead")]
677    public function isArray(): bool {}
678
679    /**
680     * @tentative-return-type
681     */
682    #[\Deprecated(since: '8.0', message: "use ReflectionParameter::getType() instead")]
683    public function isCallable(): bool {}
684
685    /** @tentative-return-type */
686    public function allowsNull(): bool {}
687
688    /** @tentative-return-type */
689    public function getPosition(): int {}
690
691    /** @tentative-return-type */
692    public function isOptional(): bool {}
693
694    /** @tentative-return-type */
695    public function isDefaultValueAvailable(): bool {}
696
697    /** @tentative-return-type */
698    public function getDefaultValue(): mixed {}
699
700    /** @tentative-return-type */
701    public function isDefaultValueConstant(): bool {}
702
703    /** @tentative-return-type */
704    public function getDefaultValueConstantName(): ?string {}
705
706    /** @tentative-return-type */
707    public function isVariadic(): bool {}
708
709    public function isPromoted(): bool {}
710
711    public function getAttributes(?string $name = null, int $flags = 0): array {}
712}
713
714/** @not-serializable */
715abstract class ReflectionType implements Stringable
716{
717    /** @implementation-alias ReflectionClass::__clone */
718    private function __clone(): void {}
719
720    /** @tentative-return-type */
721    public function allowsNull(): bool {}
722
723    public function __toString(): string {}
724}
725
726class ReflectionNamedType extends ReflectionType
727{
728    /** @tentative-return-type */
729    public function getName(): string {}
730
731    /** @tentative-return-type */
732    public function isBuiltin(): bool {}
733}
734
735class ReflectionUnionType extends ReflectionType
736{
737    public function getTypes(): array {}
738}
739
740class ReflectionIntersectionType extends ReflectionType
741{
742    public function getTypes(): array {}
743}
744
745/** @not-serializable */
746class ReflectionExtension implements Reflector
747{
748    public string $name;
749
750    /** @implementation-alias ReflectionClass::__clone */
751    private function __clone(): void {}
752
753    public function __construct(string $name) {}
754
755    public function __toString(): string {}
756
757    /** @tentative-return-type */
758    public function getName(): string {}
759
760    /** @tentative-return-type */
761    public function getVersion(): ?string {}
762
763    /** @tentative-return-type */
764    public function getFunctions(): array {}
765
766    /** @tentative-return-type */
767    public function getConstants(): array {}
768
769    /** @tentative-return-type */
770    public function getINIEntries(): array {}
771
772    /** @tentative-return-type */
773    public function getClasses(): array {}
774
775    /** @tentative-return-type */
776    public function getClassNames(): array {}
777
778    /** @tentative-return-type */
779    public function getDependencies(): array {}
780
781    /** @tentative-return-type */
782    public function info(): void {}
783
784    /** @tentative-return-type */
785    public function isPersistent(): bool {}
786
787    /** @tentative-return-type */
788    public function isTemporary(): bool {}
789}
790
791/** @not-serializable */
792class ReflectionZendExtension implements Reflector
793{
794    public string $name;
795
796    /** @implementation-alias ReflectionClass::__clone */
797    private function __clone(): void {}
798
799    public function __construct(string $name) {}
800
801    public function __toString(): string {}
802
803    /** @tentative-return-type */
804    public function getName(): string {}
805
806    /** @tentative-return-type */
807    public function getVersion(): string {}
808
809    /** @tentative-return-type */
810    public function getAuthor(): string {}
811
812    /** @tentative-return-type */
813    public function getURL(): string {}
814
815    /** @tentative-return-type */
816    public function getCopyright(): string {}
817}
818
819/** @not-serializable */
820final class ReflectionReference
821{
822    public static function fromArrayElement(array $array, int|string $key): ?ReflectionReference {}
823
824    public function getId(): string {}
825
826    /** @implementation-alias ReflectionClass::__clone */
827    private function __clone(): void {}
828
829    private function __construct() {}
830}
831
832/** @not-serializable */
833class ReflectionAttribute implements Reflector
834{
835    /** @cvalue REFLECTION_ATTRIBUTE_IS_INSTANCEOF */
836    public const int IS_INSTANCEOF = UNKNOWN;
837
838    public string $name;
839
840    public function getName(): string {}
841    public function getTarget(): int {}
842    public function isRepeated(): bool {}
843    public function getArguments(): array {}
844    public function newInstance(): object {}
845
846    public function __toString(): string {}
847
848    private function __clone(): void {}
849
850    private function __construct() {}
851}
852
853class ReflectionEnum extends ReflectionClass
854{
855    public function __construct(object|string $objectOrClass) {}
856
857    public function hasCase(string $name): bool {}
858
859    public function getCase(string $name): ReflectionEnumUnitCase {}
860
861    public function getCases(): array {}
862
863    public function isBacked(): bool {}
864
865    public function getBackingType(): ?ReflectionNamedType {}
866}
867
868class ReflectionEnumUnitCase extends ReflectionClassConstant
869{
870    public function __construct(object|string $class, string $constant) {}
871
872    public function getEnum(): ReflectionEnum {}
873
874    /** @implementation-alias ReflectionClassConstant::getValue */
875    public function getValue(): UnitEnum {}
876}
877
878class ReflectionEnumBackedCase extends ReflectionEnumUnitCase
879{
880    public function __construct(object|string $class, string $constant) {}
881
882    public function getBackingValue(): int|string {}
883}
884
885/** @not-serializable */
886final class ReflectionFiber
887{
888    public function __construct(Fiber $fiber) {}
889
890    public function getFiber(): Fiber {}
891
892    public function getExecutingFile(): ?string {}
893
894    public function getExecutingLine(): ?int {}
895
896    public function getCallable(): callable {}
897
898    public function getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array {}
899}
900
901/**
902 * @strict-properties
903 * @not-serializable
904 */
905final class ReflectionConstant implements Reflector
906{
907    public string $name;
908
909    public function __construct(string $name) {}
910
911    public function getName(): string {}
912
913    public function getNamespaceName(): string {}
914
915    public function getShortName(): string {}
916
917    public function getValue(): mixed {}
918
919    public function isDeprecated(): bool {}
920
921    public function __toString(): string {}
922}
923