*/ 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 {} } #[Attribute(Attribute::TARGET_PARAMETER)] final class SensitiveParameter { public function __construct() {} } #[Attribute(Attribute::TARGET_CLASS)] final class AllowDynamicProperties { public function __construct() {} } /** * @psalm-pure * @param positive-int $length * @return list * * @psalm-flow ($string) -> return */ function str_split(string $string, int $length = 1) {} }