<?php  namespace App\Services\Pdf\BrandAwarenessReport;  use Throwable; use App\Models\Question; use App\Contracts\Reportable; use Illuminate\Support\Collection; use App\Contracts\RowDataInterface; use App\Services\Pdf\GeneralReport\Services\PdfRowGenerator; use App\Services\Pdf\GeneralReport\DataProviders\DataProvider; use App\Services\Pdf\GeneralReport\DataProviders\ExtraQuestionsDataProvider; use App\Services\Pdf\BrandAwarenessReport\DataProviders\BaQuestionsDataProvider;  abstract class Questions { 	public const PER_PAGE = 13; 	public const DIV_WIDTH_PX = 700;  	public ?PdfRowGenerator $pdfRow = null;  	/** 	 * @param BaQuestionsDataProvider|ExtraQuestionsDataProvider $dataProvider 	 */ 	public function __construct(protected DataProvider $dataProvider){}  	abstract protected function fetchAnswersForQuestions(array $applicants, array $questions): Collection;  	abstract protected function getQuestionsForPdf(Reportable $survey, mixed ...$extras): Collection;  	abstract protected function makeRowDataObject(Collection $answers, Question $item, PdfRowGenerator $rowAdder, string $locale, array $filters): RowDataInterface;  	public function calculate(Reportable $survey, array $applicants, string $locale, array $filters): array{}  	public function createQuestionsFinalArray(array $applicants, Collection $questions, string $locale, array $filters): array{}  	public function resultReturnMode(array $result): array{}  	final public function reset(): void{}  	protected function setRowGenerator(PdfRowGenerator $rowGenerator): void{} }