*/ public function getTypes(): array {} } /** * @psalm-immutable * * @template-covariant Start of string|DateTimeInterface * @implements IteratorAggregate */ class DatePeriod implements IteratorAggregate { const EXCLUDE_START_DATE = 1; const INCLUDE_END_DATE = 2; /** * @param Start $start * @param (Start is string ? int-mask : DateInterval) $interval * @param (Start is string ? never : (DateTimeInterface|positive-int)) $end * @param (Start is string ? never : int-mask) $options */ public function __construct($start, $interval = 0, $end = 1, $options = 0) {} /** @psalm-return (Start is string ? Iterator : Iterator) */ public function getIterator(): Iterator {} } /** * @psalm-pure * @param positive-int $length * @return list * * @psalm-flow ($string) -> return */ function str_split(string $string, int $length = 1) {} /** * @psalm-immutable * @template TValue * * @since 8.2.0 */ final class SensitiveParameterValue { /** @param TValue $value */ public function __construct(private readonly mixed $value) {} /** @return array */ public function __debugInfo(): array {} /** @return TValue */ public function getValue(): mixed {} } }