. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Contracts; use Fisharebest\Webtrees\Tree; use League\Flysystem\FilesystemInterface; /** * Make a filesystem. */ interface FilesystemFactoryInterface { /** * Describe a filesystem for the user's data folder. * * @return string */ public function dataName(): string; /** * Create a filesystem for the user's data folder. * * @return FilesystemInterface */ public function data(): FilesystemInterface; /** * Create a filesystem for a tree's media folder. * * @param Tree $tree * * @return FilesystemInterface */ public function media(Tree $tree): FilesystemInterface; /** * Create a filesystem for the application's root folder. * * @return FilesystemInterface */ public function root(): FilesystemInterface; /** * Describe a filesystem for the application's root folder. * * @return string */ public function rootName(): string; }