. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Contracts; use Fisharebest\Webtrees\Tree; use League\Flysystem\FilesystemOperator; /** * 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 FilesystemOperator */ public function data(): FilesystemOperator; /** * Create a filesystem for a tree's media folder. * * @param Tree $tree * * @return FilesystemOperator */ public function media(Tree $tree): FilesystemOperator; /** * Create a filesystem for the application's root folder. * * @return FilesystemOperator */ public function root(): FilesystemOperator; /** * Describe a filesystem for the application's root folder. * * @return string */ public function rootName(): string; }