*/ public function findByUserId(string $userId): array; /** * Find pending registrations for a campaign * * @return array */ public function findPendingByCampaign(int $campaignId): array; /** * Find retryable failed registrations * * @return array */ public function findRetryable(int $campaignId, int $maxRetries): array; /** * Get status counts for a campaign * * @return array */ public function getStatusCounts(int $campaignId): array; /** * Delete registration */ public function delete(int $id): bool; }