<?php

declare(strict_types=1);

namespace App\Module\Integration\Domain\Service;

interface FileSource
{
    /**
     * @return FileEntry[] dossiers d'abord, puis fichiers, triés par nom
     */
    public function dir(string $relativePath): array;

    /**
     * Recherche récursive, par fragment de nom (insensible à la casse), dans tout le partage.
     *
     * @return FileEntry[] dossiers d'abord, puis fichiers, triés par nom (limités)
     */
    public function search(string $query, int $limit = 200): array;

    /**
     * @return resource flux binaire en lecture
     */
    public function read(string $relativePath);

    public function test(): ShareTestResult;
}
