*/ public function getTypesAllowed(): array; /** * Is a given package already registered? * * @param non-empty-string $package */ public function isRegistered(string $package): bool; /** * Register a package with the configuration. * * @param non-empty-string $package Package to inject into configuration. * @param InjectorInterface::TYPE_* $type * @throws Exception\RuntimeException */ public function inject(string $package, int $type): bool; /** * Remove a package from the configuration. * * @param non-empty-string $package Package to remove. * @throws Exception\RuntimeException */ public function remove(string $package): bool; /** * Set modules of the application. * * @param list $modules */ public function setApplicationModules(array $modules): self; /** * Create an injector for dependencies for the module. * * @param list $modules */ public function setModuleDependencies(array $modules): self; }