<?php  namespace App\Contracts;  use App\Services\MediaStorage; use Illuminate\Support\Carbon; use App\Models\Media as MediaModel; use Spatie\MediaLibrary\HasMedia as HasMediaBase; use Spatie\MediaLibrary\MediaCollections\FileAdder; use Spatie\MediaLibrary\MediaCollections\MediaCollection;  interface HasMedia extends HasMediaBase { 	public function getStorageConfig(): array;  	public function getStorageDisk(): string;  	public function getStorageMaxUploadSize(): int;  	public function getStorageThumbWidth(): int;  	public function shouldQueueMediaConversions(): bool;  	public function getProtectedMediaExpirationTime(MediaModel $file): ?Carbon;  	public function getVideoThumbAtSecond(): int;  	public function getDefaultMediaPrefix(): string;  	public function mediaConfig(): array;  	public function storage(): MediaStorage;  	public function getFirstMedia(string $collectionName = 'default', array|callable $filters = []): ?object;  	public function addMediaFromUrl(string $url, array|string ...$allowedMimeTypes): FileAdder;  	public function addMediaFromString(string $text): FileAdder;  	public function addMediaFromBase64(string $base64data, array|string ...$allowedMimeTypes): FileAdder;  	public function addMediaFromStream(mixed $stream): FileAdder;  	public function addMediaCollection(string $name): MediaCollection;{}