$flags */ public function __construct(int $flags = self::TARGET_ALL) { } } class ReflectionUnionType extends ReflectionType { /** * @return non-empty-list */ public function getTypes() {} } class UnhandledMatchError extends Error {} /** * @psalm-immutable * * @template-covariant Start of string|DateTimeInterface * @implements IteratorAggregate */ class DatePeriod implements IteratorAggregate { const EXCLUDE_START_DATE = 1; /** * @param Start $start * @param (Start is string ? 0|self::EXCLUDE_START_DATE : DateInterval) $interval * @param (Start is string ? never : DateTimeInterface|positive-int) $end * @param (Start is string ? never : 0|self::EXCLUDE_START_DATE) $options */ public function __construct($start, $interval = 0, $end = 1, $options = 0) {} /** @psalm-return (Start is string ? (Traversable&Iterator) : (Traversable&Iterator)) */ public function getIterator(): Iterator {} }