. */ declare(strict_types=1); namespace FireflyIII\Repositories\Budget; use Carbon\Carbon; use FireflyIII\Models\AvailableBudget; use FireflyIII\Models\TransactionCurrency; use FireflyIII\User; use Illuminate\Support\Collection; /** * Interface AvailableBudgetRepositoryInterface */ interface AvailableBudgetRepositoryInterface { /** * @param AvailableBudget $availableBudget */ public function destroyAvailableBudget(AvailableBudget $availableBudget): void; /** * @param TransactionCurrency $currency * @param Carbon $start * @param Carbon $end * * @return string */ public function getAvailableBudget(TransactionCurrency $currency, Carbon $start, Carbon $end): string; /** * @param Carbon $start * @param Carbon $end * * @return array */ public function getAvailableBudgetWithCurrency(Carbon $start, Carbon $end): array; /** * Returns all available budget objects. * * @param TransactionCurrency $currency * * @return Collection */ public function getAvailableBudgetsByCurrency(TransactionCurrency $currency): Collection; /** * @param User $user */ public function setUser(User $user): void; }