. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Module; use Fisharebest\Webtrees\Tree; /** * Interface ModuleInterface - Classes and libraries for module system */ interface ModuleInterface { /** * A unique internal name for this module (based on the installation folder). * * @param string $name * * @return self */ public function setName(string $name): self; /** * A unique internal name for this module (based on the installation folder). * * @return string */ public function name(): string; /** * Has the module been disabled in the control panel? * * @param bool $enabled * * @return self */ public function setEnabled(bool $enabled): self; /** * Has the module been disabled in the control panel? * * @return bool */ public function isEnabled(): bool; /** * How should this module be labelled on tabs, menus, etc.? * * @return string */ public function title(): string; /** * A sentence describing what this module does. * * @return string */ public function description(): string; /** * Get a the current access level for a module * * @param Tree $tree * @param string $component tab, block, menu, etc * * @return int */ public function accessLevel(Tree $tree, string $component): int; }