. */ declare(strict_types=1); namespace FireflyIII\Generator\Report; use Carbon\Carbon; use Illuminate\Support\Collection; /** * Interface ReportGeneratorInterface. */ interface ReportGeneratorInterface { /** * Generate the report. * * @return string */ public function generate(): string; /** * Set the involved accounts. * * @param Collection $accounts * * @return ReportGeneratorInterface */ public function setAccounts(Collection $accounts): ReportGeneratorInterface; /** * Set the involved budgets. * * @param Collection $budgets * * @return ReportGeneratorInterface */ public function setBudgets(Collection $budgets): ReportGeneratorInterface; /** * Set the involved categories. * * @param Collection $categories * * @return ReportGeneratorInterface */ public function setCategories(Collection $categories): ReportGeneratorInterface; /** * Set the end date. * * @param Carbon $date * * @return ReportGeneratorInterface */ public function setEndDate(Carbon $date): ReportGeneratorInterface; /** * Set the expense accounts. * * @param Collection $expense * * @return ReportGeneratorInterface */ public function setExpense(Collection $expense): ReportGeneratorInterface; /** * Set the start date. * * @param Carbon $date * * @return ReportGeneratorInterface */ public function setStartDate(Carbon $date): ReportGeneratorInterface; /** * Set the tags. * * @param Collection $tags * * @return ReportGeneratorInterface */ public function setTags(Collection $tags): ReportGeneratorInterface; }