} */ interface StoragePluginFactoryInterface { /** * @psalm-param PluginArrayConfigurationType $configuration */ public function createFromArrayConfiguration(array $configuration): PluginInterface; /** * @psalm-param non-empty-string $plugin * @param array $options * @psalm-param array $options */ public function create(string $plugin, array $options = []): PluginInterface; /** * @param array $configuration * @psalm-assert PluginArrayConfigurationType $configuration * @throws InvalidArgumentException If the provided configuration is invalid. */ public function assertValidConfigurationStructure(array $configuration): void; }