. */ declare(strict_types=1); namespace FireflyIII\Helpers\Collector; use Carbon\Carbon; use FireflyIII\User; /** * Interface GroupSumCollectorInterface * @codeCoverageIgnore */ interface GroupSumCollectorInterface { /** * Return the final sum. * * @return array */ public function getSum(): array; /** * @param Carbon $start * @param Carbon $end * * @return GroupSumCollectorInterface */ public function setRange(Carbon $start, Carbon $end): GroupSumCollectorInterface; /** * Reset the query. * * @return GroupSumCollectorInterface */ public function resetQuery(): GroupSumCollectorInterface; /** * Limit the sum to a set of transaction types. * * @param array $types * * @return GroupSumCollectorInterface */ public function setTypes(array $types): GroupSumCollectorInterface; /** * Set the user object and start the query. * * @param User $user * * @return GroupSumCollectorInterface */ public function setUser(User $user): GroupSumCollectorInterface; }