<?php

declare(strict_types=1);

namespace apexl\Io\modules\file\interfaces;

use apexl\Io\modules\file\entities\fileEntity;
use app\module\newtonsTrailers\Collection\FilesCollection;

interface HasFilesInterface
{
    public function files(?string $key): FilesCollection;

    public function addFile(string $key, int|fileEntity $file): void;

    public function removeFile(string $key): void;

    public function removeFiles(string $keyPattern): void;

    public function hasFile(string $key): bool;

    public function getPrimaryKey(): string|int;
}
