*/ namespace Flasher\Prime\Plugin; use Flasher\Prime\Factory\NotificationFactoryInterface; interface PluginInterface { /** * @return string */ public function getAlias(); /** * @return string */ public function getName(); /** * @return string */ public function getServiceID(); /** * @return class-string */ public function getFactory(); /** * @return string|string[]|array{cdn?: string|string[], local?: string|string[]} */ public function getScripts(); /** * @return string|string[]|array{cdn?: string|string[], local?: string|string[]} */ public function getStyles(); /** * @return array */ public function getOptions(); /** * @return string */ public function getAssetsDir(); /** * @return string */ public function getResourcesDir(); /** * @phpstan-param array{ * scripts?: string|array, * styles?: string|array, * options?: array, * } $config * * @phpstan-return array{ * scripts?: array, * styles?: array, * options?: array, * } */ public function normalizeConfig(array $config); /** * @param array $options * * @return array */ public function processConfiguration(array $options = array()); }