<?php  namespace App\Models;  use App\Traits\HasTranslations; use Illuminate\Validation\Rule; use App\Observers\FilterObserver; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Relations\HasMany; use App\Contracts\HasTranslations as ContractsHasTranslations;  class Filter extends Model implements ContractsHasTranslations { 	use HasTranslations;  	public const FILTER_TYPE_TEXT = 'text'; 	public const FILTER_TYPE_NUMBER = 'number'; 	public const FILTER_TYPE_EMAIL = 'email'; 	public const FILTER_TYPE_TEL = 'tel'; 	public const FILTER_TYPE_URL = 'url'; 	public const FILTER_TYPE_COLOR = 'color'; 	public const FILTER_TYPE_RANGE = 'range'; 	public const FILTER_TYPE_TEXTAREA = 'textarea'; 	public const FILTER_TYPE_SELECT = 'select';  	protected $casts = [ 		'active' => 'boolean', 		'required' => 'boolean', 		'searchable' => 'boolean', 	];  	public static function getAvailableFilterTypes(): array 	{ 		return [ 			self::FILTER_TYPE_TEXT, 			self::FILTER_TYPE_NUMBER, 			self::FILTER_TYPE_EMAIL, 			self::FILTER_TYPE_TEL, 			self::FILTER_TYPE_URL, 			self::FILTER_TYPE_COLOR, 			self::FILTER_TYPE_RANGE, 			self::FILTER_TYPE_TEXTAREA, 			self::FILTER_TYPE_SELECT, 		]; 	}  	public function scopeIncludes(object $query, ?string $lang = null): Builder{}  	public function categoryFilters(): HasMany{}  	public function defaultTranslationLocale(): string{}  	public function getAvailableOperands(): array{}  	public function getValidationRules(?string $lang = null): array{}  	public function getFilterValue(?string $lang = null): string|array|null{}  	public function scopeAvailable(Builder $query): Builder{}  	public function scopeSearchable(object $query): Builder{}  	public function setNameAttribute(string $value): void{}  	public function setMessageAttribute(?string $value): void{}  	public function setValueAttribute(?string $value): void{}  	/** 	 * This method trims provided string and removes unwanted multiple whitespaces except new lines. 	 */ 	public function trimSelectValues(?string $value): string{}  	protected static function initObservers(): ?string 	{ 		return FilterObserver::class; 	} }