count = $count; $this->ids = $ids; } public function hasIds(): bool { return $this->ids !== null; } public function hasCount(): bool { return $this->count !== null; } /** * @return string[] */ public function getIds(): array { if (!$this->hasIds()) { throw new RuntimeException("No IDs."); } /** @var string[] */ return $this->ids; } public function getCount(): int { if (!$this->hasCount()) { throw new RuntimeException("No count."); } /** @var int */ return $this->count; } public function withNoIds(): self { return new self($this->count); } /** * @deprecated * @param array{ * count?: ?int, * ids?: ?string[], * } $data */ public static function fromArray(array $data): self { return new self( $data['count'] ?? null, $data['ids'] ?? null ); } }