$urls URLs to submit. * @param array> $contexts Context keyed by URL. * @param int $scannedProducts Number of product rows scanned. * @param int $nextPage Next cursor page. */ public function __construct( private array $urls, private array $contexts, private int $scannedProducts, private int $nextPage ) {} /** * URLs to submit. * * @return list */ public function urls(): array { return $this->urls; } /** * Context keyed by URL. * * @return array> */ public function contexts(): array { return $this->contexts; } /** * Number of product rows scanned. */ public function scannedProducts(): int { return $this->scannedProducts; } /** * Next cursor page. */ public function nextPage(): int { return $this->nextPage; } /** * Whether no URLs were selected for submission. */ public function isEmpty(): bool { return $this->urls === array(); } }