. */ declare(strict_types=1); namespace FireflyIII\Helpers\Collector; use Carbon\Carbon; use FireflyIII\User; use Illuminate\Support\Collection; /** * Interface GroupCollectorInterface */ interface GroupCollectorInterface { /** * Return the groups. * * @return Collection */ public function getGroups(): Collection; /** * Define which accounts can be part of the source and destination transactions. * * @param Collection $accounts * * @return GroupCollectorInterface */ public function setAccounts(Collection $accounts): GroupCollectorInterface; /** * Limit the number of returned entries. * * @param int $limit * * @return GroupCollectorInterface */ public function setLimit(int $limit): GroupCollectorInterface; /** * Set the page to get. * * @param int $page * * @return GroupCollectorInterface */ public function setPage(int $page): GroupCollectorInterface; /** * Set the start and end time of the results to return. * * @param Carbon $start * @param Carbon $end * * @return GroupCollectorInterface */ public function setRange(Carbon $start, Carbon $end): GroupCollectorInterface; /** * Set the user object and start the query. * * @param User $user * * @return GroupCollectorInterface */ public function setUser(User $user): GroupCollectorInterface; }