. */ declare(strict_types=1); namespace FireflyIII\Helpers\Collector; use Carbon\Carbon; use FireflyIII\Models\Budget; use FireflyIII\Models\Category; use FireflyIII\Models\Tag; use FireflyIII\User; use Illuminate\Database\Eloquent\Builder as EloquentBuilder; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Collection; /** * Interface JournalCollectorInterface. */ interface JournalCollectorInterface { /** * @param string $filter * * @return JournalCollectorInterface */ public function addFilter(string $filter): JournalCollectorInterface; /** * @param string $amount * * @return JournalCollectorInterface */ public function amountIs(string $amount): JournalCollectorInterface; /** * @param string $amount * * @return JournalCollectorInterface */ public function amountLess(string $amount): JournalCollectorInterface; /** * @param string $amount * * @return JournalCollectorInterface */ public function amountMore(string $amount): JournalCollectorInterface; /** * @return int */ public function count(): int; /** * @return Collection */ public function getJournals(): Collection; /** * @return LengthAwarePaginator */ public function getPaginatedJournals(): LengthAwarePaginator; /** * @param string $filter * * @return JournalCollectorInterface */ public function removeFilter(string $filter): JournalCollectorInterface; /** * @param Collection $accounts * * @return JournalCollectorInterface */ public function setAccounts(Collection $accounts): JournalCollectorInterface; /** * @param Carbon $after * * @return JournalCollectorInterface */ public function setAfter(Carbon $after): JournalCollectorInterface; /** * @return JournalCollectorInterface */ public function setAllAssetAccounts(): JournalCollectorInterface; /** * @param Carbon $before * * @return JournalCollectorInterface */ public function setBefore(Carbon $before): JournalCollectorInterface; /** * @param Collection $bills * * @return JournalCollectorInterface */ public function setBills(Collection $bills): JournalCollectorInterface; /** * @param Budget $budget * * @return JournalCollectorInterface */ public function setBudget(Budget $budget): JournalCollectorInterface; /** * @param Collection $budgets * * @return JournalCollectorInterface */ public function setBudgets(Collection $budgets): JournalCollectorInterface; /** * @param Collection $categories * * @return JournalCollectorInterface */ public function setCategories(Collection $categories): JournalCollectorInterface; /** * @param Category $category * * @return JournalCollectorInterface */ public function setCategory(Category $category): JournalCollectorInterface; /** * @param int $limit * * @return JournalCollectorInterface */ public function setLimit(int $limit): JournalCollectorInterface; /** * @param int $offset * * @return JournalCollectorInterface */ public function setOffset(int $offset): JournalCollectorInterface; /** * @param Collection $accounts * * @return JournalCollectorInterface */ public function setOpposingAccounts(Collection $accounts): JournalCollectorInterface; /** * @param int $page * * @return JournalCollectorInterface */ public function setPage(int $page): JournalCollectorInterface; /** * @param Carbon $start * @param Carbon $end * * @return JournalCollectorInterface */ public function setRange(Carbon $start, Carbon $end): JournalCollectorInterface; /** * @param Tag $tag * * @return JournalCollectorInterface */ public function setTag(Tag $tag): JournalCollectorInterface; /** * @param Collection $tags * * @return JournalCollectorInterface */ public function setTags(Collection $tags): JournalCollectorInterface; /** * @param array $types * * @return JournalCollectorInterface */ public function setTypes(array $types): JournalCollectorInterface; /** * @param User $user * * @return mixed */ public function setUser(User $user); /** * */ public function startQuery(); /** * @return JournalCollectorInterface */ public function withBudgetInformation(): JournalCollectorInterface; /** * @return JournalCollectorInterface */ public function withCategoryInformation(): JournalCollectorInterface; /** * @return JournalCollectorInterface */ public function withOpposingAccount(): JournalCollectorInterface; /** * @return JournalCollectorInterface */ public function withoutBudget(): JournalCollectorInterface; /** * @return JournalCollectorInterface */ public function withoutCategory(): JournalCollectorInterface; }