diff --git a/core/.phpstan-baseline.php b/core/.phpstan-baseline.php
index 5468cfee172c50231745ff5fed6cb1ed2845b09e..34507f85460a3ab5244afd63367c8cbde7cd112e 100644
--- a/core/.phpstan-baseline.php
+++ b/core/.phpstan-baseline.php
@@ -11503,12 +11503,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/UniqueFieldValueValidator.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\announcements_feed\\\\Hook\\\\AnnouncementsFeedHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/announcements_feed/src/Hook/AnnouncementsFeedHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Function automated_cron_settings_submit\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -11521,12 +11515,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/automated_cron/src/EventSubscriber/AutomatedCron.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\automated_cron\\\\Hook\\\\AutomatedCronHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/automated_cron/src/Hook/AutomatedCronHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\ban\\\\BanIpManager\\:\\:banIp\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -11581,12 +11569,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/ban/src/Form/BanDelete.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\ban\\\\Hook\\\\BanHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/ban/src/Hook/BanHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\Tests\\\\ban\\\\Kernel\\\\Migrate\\\\d7\\\\MigrateBlockedIpsTest\\:\\:assertConfigSchema\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -11599,12 +11581,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/ban/tests/src/Kernel/Migrate/d7/MigrateBlockedIpsTest.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\basic_auth\\\\Hook\\\\BasicAuthHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/basic_auth/src/Hook/BasicAuthHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\basic_auth_test\\\\BasicAuthTestController\\:\\:modifyState\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -11635,12 +11611,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/big_pipe/src/EventSubscriber/NoBigPipeRouteAlterSubscriber.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\big_pipe\\\\Hook\\\\BigPipeHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/big_pipe/src/Hook/BigPipeHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\big_pipe\\\\Render\\\\BigPipe\\:\\:performPostSendTasks\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -11905,12 +11875,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/block/src/Form/BlockDeleteForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\block\\\\Hook\\\\BlockHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/block/src/Hook/BlockHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\block_test\\\\BlockRenderAlterContent\\:\\:preRender\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -12271,12 +12235,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/block_content/src/Event/BlockContentGetDependencyEvent.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\block_content\\\\Hook\\\\BlockContentHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/block_content/src/Hook/BlockContentHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\block_content\\\\Plugin\\\\Block\\\\BlockContentBlock\\:\\:blockSubmit\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -12565,12 +12523,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/breakpoint/src/BreakpointManager.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\breakpoint\\\\Hook\\\\BreakpointHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/breakpoint/src/Hook/BreakpointHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Function _update_ckeditor5_html_filter\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -12595,12 +12547,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/ckeditor5/src/EventSubscriber/CKEditor5CacheTag.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\ckeditor5\\\\Hook\\\\Ckeditor5Hooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/ckeditor5/src/Hook/Ckeditor5Hooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\ckeditor5\\\\Plugin\\\\CKEditor5Plugin\\\\Alignment\\:\\:setConfiguration\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -13441,12 +13387,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/comment/src/Form/DeleteForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\comment\\\\Hook\\\\CommentHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/comment/src/Hook/CommentHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\comment\\\\Plugin\\\\EntityReferenceSelection\\\\CommentSelection\\:\\:entityQueryAlter\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -14233,12 +14173,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/config/src/Form/ConfigSync.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\config\\\\Hook\\\\ConfigHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/config/src/Hook/ConfigHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\config_collection_install_test\\\\EventSubscriber\\:\\:addCollections\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -14731,12 +14665,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/config_translation/src/FormElement/PluralVariants.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\config_translation\\\\Hook\\\\ConfigTranslationHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/config_translation/src/Hook/ConfigTranslationHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\config_translation\\\\Routing\\\\RouteSubscriber\\:\\:alterRoutes\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -14875,12 +14803,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/contact/src/Entity/Message.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\contact\\\\Hook\\\\ContactHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/contact/src/Hook/ContactHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\contact\\\\MailHandler\\:\\:sendMailMessages\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -15463,12 +15385,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/content_moderation/src/Form/EntityModerationForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\content_moderation\\\\Hook\\\\ContentModerationHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/content_moderation/src/Hook/ContentModerationHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\content_moderation\\\\ModerationInformation\\:\\:getAffectedRevisionTranslation\\(\\) should return Drupal\\\\Core\\\\Entity\\\\ContentEntityInterface but return statement is missing\\.$#',
 	'identifier' => 'return.missing',
@@ -16297,12 +16213,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/content_translation/src/FieldTranslationSynchronizerInterface.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\content_translation\\\\Hook\\\\ContentTranslationHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/content_translation/src/Hook/ContentTranslationHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\content_translation\\\\Plugin\\\\Validation\\\\Constraint\\\\ContentTranslationSynchronizedFieldsConstraintValidator\\:\\:create\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -16609,12 +16519,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/contextual/src/ContextualController.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\contextual\\\\Hook\\\\ContextualHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/contextual/src/Hook/ContextualHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\contextual\\\\Plugin\\\\views\\\\field\\\\ContextualLinks\\:\\:buildOptionsForm\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -16663,12 +16567,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/datetime/src/DateTimeComputed.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\datetime\\\\Hook\\\\DatetimeHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/datetime/src/Hook/DatetimeHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\datetime\\\\Plugin\\\\Field\\\\FieldFormatter\\\\DateTimeFormatterBase\\:\\:setTimeZone\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -16801,12 +16699,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/datetime/tests/src/Unit/Plugin/migrate/field/DateFieldTest.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\datetime_range\\\\Hook\\\\DatetimeRangeHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/datetime_range/src/Hook/DatetimeRangeHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\datetime_range\\\\Plugin\\\\Field\\\\FieldType\\\\DateRangeFieldItemList\\:\\:defaultValuesForm\\(\\) should return array but return statement is missing\\.$#',
 	'identifier' => 'return.missing',
@@ -16885,12 +16777,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/dblog/src/Form/DblogFilterForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\dblog\\\\Hook\\\\DblogHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/dblog/src/Hook/DblogHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Variable \\$view in isset\\(\\) always exists and is not nullable\\.$#',
 	'identifier' => 'isset.variable',
@@ -16999,12 +16885,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/dynamic_page_cache/src/EventSubscriber/DynamicPageCacheSubscriber.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\dynamic_page_cache\\\\Hook\\\\DynamicPageCacheHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/dynamic_page_cache/src/Hook/DynamicPageCacheHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Function _editor_delete_file_usage\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -17071,12 +16951,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/editor/src/EventSubscriber/EditorConfigTranslationSubscriber.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\editor\\\\Hook\\\\EditorHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/editor/src/Hook/EditorHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\editor\\\\Plugin\\\\EditorBase\\:\\:submitConfigurationForm\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -17317,12 +17191,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/field/src/FieldConfigStorage.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\field\\\\Hook\\\\FieldHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/field/src/Hook/FieldHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\field\\\\Plugin\\\\migrate\\\\field\\\\Email\\:\\:defineValueProcessPipeline\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -18085,12 +17953,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/field_layout/src/Form/FieldLayoutEntityViewDisplayEditForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\field_layout\\\\Hook\\\\FieldLayoutHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/field_layout/src/Hook/FieldLayoutHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\field_layout_test\\\\Form\\\\EmbeddedForm\\:\\:submitForm\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -18403,12 +18265,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/field_ui/src/Form/FieldStorageReuseForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\field_ui\\\\Hook\\\\FieldUiHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/field_ui/src/Hook/FieldUiHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\field_ui\\\\Plugin\\\\Derivative\\\\FieldUiLocalTask\\:\\:alterLocalTasks\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -19741,12 +19597,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/filter/src/Form/FilterDisableForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\filter\\\\Hook\\\\FilterHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/filter/src/Hook/FilterHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\filter\\\\Plugin\\\\Filter\\\\FilterHtml\\:\\:filterElementAttributes\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -19915,12 +19765,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/help/src/HelpTopicTwigLoader.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\help\\\\Hook\\\\HelpHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/help/src/Hook/HelpHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\help\\\\Plugin\\\\Search\\\\HelpSearch\\:\\:indexClear\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -19957,36 +19801,12 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/help/src/Plugin/Search/HelpSearch.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\help_page_test\\\\Hook\\\\HelpPageTestHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/help/tests/modules/help_page_test/src/Hook/HelpPageTestHooks.php',
-];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\help_test\\\\Hook\\\\HelpTestHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/help/tests/modules/help_test/src/Hook/HelpTestHooks.php',
-];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\help_topics_test\\\\Hook\\\\HelpTopicsTestHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/help/tests/modules/help_topics_test/src/Hook/HelpTopicsTestHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\help_topics_twig_tester\\\\HelpTestTwigNodeVisitor\\:\\:setStateValue\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
 	'count' => 1,
 	'path' => __DIR__ . '/modules/help/tests/modules/help_topics_twig_tester/src/HelpTestTwigNodeVisitor.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\more_help_page_test\\\\Hook\\\\MoreHelpPageTestHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/help/tests/modules/more_help_page_test/src/Hook/MoreHelpPageTestHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\Tests\\\\help\\\\Functional\\\\HelpTopicSearchTest\\:\\:cronRun\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -20029,12 +19849,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/history/src/Controller/HistoryController.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\history\\\\Hook\\\\HistoryHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/history/src/Hook/HistoryHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\history\\\\Plugin\\\\views\\\\field\\\\HistoryUserTimestamp\\:\\:buildOptionsForm\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -20299,12 +20113,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/image/src/Form/ImageStyleFormBase.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\image\\\\Hook\\\\ImageHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/image/src/Hook/ImageHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\image\\\\ImageEffectBase\\:\\:setConfiguration\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -20737,12 +20545,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/inline_form_errors/src/FormErrorHandler.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\inline_form_errors\\\\Hook\\\\InlineFormErrorsHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/inline_form_errors/src/Hook/InlineFormErrorsHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\inline_form_errors\\\\InlineFormErrorsServiceProvider\\:\\:alter\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -20935,12 +20737,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/jsonapi/src/Exception/UnprocessableHttpEntityException.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\jsonapi\\\\Hook\\\\JsonapiHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/jsonapi/src/Hook/JsonapiHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\jsonapi\\\\JsonApiResource\\\\Data\\:\\:getIterator\\(\\) return type with generic class ArrayIterator does not specify its types\\: TKey, TValue$#',
 	'identifier' => 'missingType.generics',
@@ -22045,12 +21841,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/language/src/Form/NegotiationUrlForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\language\\\\Hook\\\\LanguageHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/language/src/Hook/LanguageHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\language\\\\HttpKernel\\\\PathProcessorLanguage\\:\\:initConfigSubscriber\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -22537,12 +22327,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/language/tests/src/Unit/Menu/LanguageLocalTasksTest.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\layout_builder_expose_all_field_blocks\\\\Hook\\\\LayoutBuilderExposeAllFieldBlocksHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/layout_builder/modules/layout_builder_expose_all_field_blocks/src/Hook/LayoutBuilderExposeAllFieldBlocksHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\layout_builder\\\\Annotation\\\\SectionStorage\\:\\:get\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -22855,12 +22639,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/layout_builder/src/Form/RevertOverridesForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\layout_builder\\\\Hook\\\\LayoutBuilderHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/layout_builder/src/Hook/LayoutBuilderHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\layout_builder\\\\InlineBlockEntityOperations\\:\\:create\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -23707,12 +23485,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/layout_builder/tests/src/Unit/SectionTest.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\layout_discovery\\\\Hook\\\\LayoutDiscoveryHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/layout_discovery/src/Hook/LayoutDiscoveryHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\Tests\\\\layout_discovery\\\\Kernel\\\\LayoutTest\\:\\:processCallback\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -23725,12 +23497,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/layout_discovery/tests/src/Kernel/LayoutTest.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\link\\\\Hook\\\\LinkHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/link/src/Hook/LinkHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\link\\\\Plugin\\\\Field\\\\FieldType\\\\LinkItem\\:\\:setValue\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -24175,12 +23941,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/locale/src/Form/TranslationStatusForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\locale\\\\Hook\\\\LocaleHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/locale/src/Hook/LocaleHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\locale\\\\LocaleConfigManager\\:\\:deleteLanguageTranslations\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -24823,12 +24583,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/media/src/Form/MediaTypeDeleteConfirmForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\media\\\\Hook\\\\MediaHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/media/src/Hook/MediaHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\media\\\\MediaForm\\:\\:form\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -25699,12 +25453,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/media_library/src/Form/SettingsForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\media_library\\\\Hook\\\\MediaLibraryHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/media_library/src/Hook/MediaLibraryHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\media_library\\\\MediaLibraryServiceProvider\\:\\:register\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -26005,12 +25753,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/menu_link_content/src/Form/MenuLinkContentForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\menu_link_content\\\\Hook\\\\MenuLinkContentHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/menu_link_content/src/Hook/MenuLinkContentHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\menu_link_content\\\\MenuLinkContentInterface\\:\\:setInsidePlugin\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -26233,12 +25975,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/menu_ui/src/Form/MenuLinkResetForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\menu_ui\\\\Hook\\\\MenuUiHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/menu_ui/src/Hook/MenuUiHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\menu_ui\\\\MenuForm\\:\\:buildOverviewForm\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -26365,12 +26101,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/migrate/src/Form/MessageForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\migrate\\\\Hook\\\\MigrateHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/migrate/src/Hook/MigrateHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Constructor of class Drupal\\\\migrate\\\\MigrateException has an unused parameter \\$code\\.$#',
 	'identifier' => 'constructor.unusedParameter',
@@ -27403,12 +27133,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/migrate_drupal/src/FieldDiscoveryInterface.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\migrate_drupal\\\\Hook\\\\MigrateDrupalHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/migrate_drupal/src/Hook/MigrateDrupalHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\migrate_drupal\\\\MigrateDrupalServiceProvider\\:\\:alter\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -28069,12 +27793,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/migrate_drupal_ui/src/Form/ReviewForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\migrate_drupal_ui\\\\Hook\\\\MigrateDrupalUiHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/migrate_drupal_ui/src/Hook/MigrateDrupalUiHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\migrate_drupal_ui\\\\Routing\\\\MigrateDrupalUiRouteSubscriber\\:\\:alterRoutes\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -28321,12 +28039,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/mysql/src/Driver/Database/mysql/Schema.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\mysql\\\\Hook\\\\MysqlHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/mysql/src/Hook/MysqlHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\Tests\\\\mysql\\\\Kernel\\\\mysql\\\\DbDumpTest\\:\\:assertPathAliasExists\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -28351,12 +28063,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/mysql/tests/src/Kernel/mysql/SchemaTest.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\navigation_top_bar\\\\Hook\\\\NavigationTopBarHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/navigation/modules/navigation_top_bar/src/Hook/NavigationTopBarHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Function navigation_post_update_set_logo_dimensions_default\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -28387,12 +28093,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/navigation/src/Form/SettingsForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\navigation\\\\Hook\\\\NavigationHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/navigation/src/Hook/NavigationHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\navigation\\\\NavigationContentLinks\\:\\:create\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -28699,12 +28399,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/node/src/Form/RebuildPermissionsForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\node\\\\Hook\\\\NodeHooks1\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/node/src/Hook/NodeHooks1.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\node\\\\NodeAccessControlHandler\\:\\:deleteGrants\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -29659,12 +29353,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/options/options.module',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\options\\\\Hook\\\\OptionsHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/options/src/Hook/OptionsHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Access to an undefined property Drupal\\\\options\\\\Plugin\\\\Field\\\\FieldType\\\\ListItemBase\\:\\:\\$value\\.$#',
 	'identifier' => 'property.notFound',
@@ -29773,12 +29461,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/options/tests/src/Kernel/Views/OptionsTestBase.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\page_cache\\\\Hook\\\\PageCacheHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/page_cache/src/Hook/PageCacheHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\page_cache\\\\StackMiddleware\\\\PageCache\\:\\:set\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -29875,12 +29557,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/path/src/Form/PathFilterForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\path\\\\Hook\\\\PathHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/path/src/Hook/PathHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\path\\\\PathAliasForm\\:\\:save\\(\\) should return int but return statement is missing\\.$#',
 	'identifier' => 'return.missing',
@@ -30409,24 +30085,12 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/pgsql/src/Driver/Database/pgsql/Upsert.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\pgsql\\\\Hook\\\\PgsqlHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/pgsql/src/Hook/PgsqlHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\Tests\\\\pgsql\\\\Unit\\\\SchemaTest\\:\\:providerComputedConstraintName\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
 	'count' => 1,
 	'path' => __DIR__ . '/modules/pgsql/tests/src/Unit/SchemaTest.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\phpass\\\\Hook\\\\PhpassHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/phpass/src/Hook/PhpassHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\Tests\\\\phpass\\\\Unit\\\\PasswordVerifyTest\\:\\:providerLongPasswords\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -30439,12 +30103,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/responsive_image/responsive_image.module',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\responsive_image\\\\Hook\\\\ResponsiveImageHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/responsive_image/src/Hook/ResponsiveImageHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Variable \\$responsive_image_styles in empty\\(\\) always exists and is not falsy\\.$#',
 	'identifier' => 'empty.variable',
@@ -30601,12 +30259,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/rest/src/EventSubscriber/ResourceResponseSubscriber.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\rest\\\\Hook\\\\RestHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/rest/src/Hook/RestHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\rest\\\\Plugin\\\\rest\\\\resource\\\\EntityResource\\:\\:addLinkHeaders\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -31327,12 +30979,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/search/src/Form/SearchPageFormBase.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\search\\\\Hook\\\\SearchHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/search/src/Hook/SearchHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\search\\\\Plugin\\\\Block\\\\SearchBlock\\:\\:blockSubmit\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -31873,12 +31519,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/serialization/src/EventSubscriber/UserRouteAlterSubscriber.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\serialization\\\\Hook\\\\SerializationHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/serialization/src/Hook/SerializationHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\serialization\\\\Normalizer\\\\ComplexDataNormalizer\\:\\:normalize\\(\\) return type with generic class ArrayObject does not specify its types\\: TKey, TValue$#',
 	'identifier' => 'missingType.generics',
@@ -32137,12 +31777,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/settings_tray/src/Block/BlockEntitySettingTrayForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\settings_tray\\\\Hook\\\\SettingsTrayHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/settings_tray/src/Hook/SettingsTrayHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\settings_tray_test\\\\Form\\\\SettingsTrayFormAnnotationIsClassBlockForm\\:\\:submitConfigurationForm\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -32275,12 +31909,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/shortcut/src/Form/SwitchShortcutSet.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\shortcut\\\\Hook\\\\ShortcutHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/shortcut/src/Hook/ShortcutHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\shortcut\\\\ShortcutForm\\:\\:form\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -32749,18 +32377,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/sqlite/src/Driver/Database/sqlite/Schema.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\sqlite\\\\Hook\\\\SqliteHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/sqlite/src/Hook/SqliteHooks.php',
-];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\syslog\\\\Hook\\\\SyslogHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/syslog/src/Hook/SyslogHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\syslog\\\\Logger\\\\SysLog\\:\\:openConnection\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -33283,12 +32899,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/system/src/Form/ThemeSettingsForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\system\\\\Hook\\\\SystemHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/system/src/Hook/SystemHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\system\\\\PhpStorage\\\\MockPhpStorage\\:\\:getConfiguration\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -34893,18 +34503,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/system/tests/modules/error_test/src/Controller/ErrorTestController.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\experimental_module_requirements_test\\\\Hook\\\\ExperimentalModuleRequirementsTestHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/system/tests/modules/experimental_module_requirements_test/src/Hook/ExperimentalModuleRequirementsTestHooks.php',
-];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\experimental_module_test\\\\Hook\\\\ExperimentalModuleTestHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/system/tests/modules/experimental_module_test/src/Hook/ExperimentalModuleTestHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\form_test\\\\Callbacks\\:\\:validateName\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -36267,12 +35865,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/system/tests/modules/system_test/src/Form/CopyFieldValueTestForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\system_test\\\\Hook\\\\SystemTestHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/system/tests/modules/system_test/src/Hook/SystemTestHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\system_test\\\\MockFileTransfer\\:\\:getSettingsForm\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -38451,12 +38043,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/taxonomy/src/Form/VocabularyResetForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\taxonomy\\\\Hook\\\\TaxonomyHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/taxonomy/src/Hook/TaxonomyHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\taxonomy\\\\Plugin\\\\Validation\\\\Constraint\\\\TaxonomyTermHierarchyConstraintValidator\\:\\:create\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -39243,18 +38829,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/taxonomy/tests/src/Unit/Menu/TaxonomyLocalTasksTest.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\telephone\\\\Hook\\\\TelephoneHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/telephone/src/Hook/TelephoneHooks.php',
-];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\text\\\\Hook\\\\TextHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/text/src/Hook/TextHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\text\\\\Plugin\\\\Field\\\\FieldType\\\\TextFieldItemList\\:\\:defaultValuesFormValidate\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -39327,12 +38901,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/toolbar/src/Controller/ToolbarController.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\toolbar\\\\Hook\\\\ToolbarHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/toolbar/src/Hook/ToolbarHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\Tests\\\\toolbar\\\\Functional\\\\ToolbarCacheContextsTest\\:\\:assertCacheContext\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -39411,12 +38979,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/update/src/Form/UpdateReady.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\update\\\\Hook\\\\UpdateHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/update/src/Hook/UpdateHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\update\\\\ProjectCoreCompatibility\\:\\:setReleaseMessage\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -39981,12 +39543,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/user/src/Form/UserPermissionsForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\user\\\\Hook\\\\UserHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/user/src/Hook/UserHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\user\\\\Plugin\\\\Action\\\\AddRoleUser\\:\\:execute\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -41547,12 +41103,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/views/src/Form/ViewsFormMainForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\views\\\\Hook\\\\ViewsHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/views/src/Hook/ViewsHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\views\\\\ManyToOneHelper\\:\\:addFilter\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -49281,12 +48831,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/views_ui/src/Form/BreakLockForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\views_ui\\\\Hook\\\\ViewsUiHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/views_ui/src/Hook/ViewsUiHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\views_ui\\\\ViewAddForm\\:\\:cancel\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
@@ -49995,12 +49539,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/modules/workflows/src/Form/WorkflowTransitionEditForm.php',
 ];
-$ignoreErrors[] = [
-	'message' => '#^Method Drupal\\\\workflows\\\\Hook\\\\WorkflowsHooks\\:\\:help\\(\\) has no return type specified\\.$#',
-	'identifier' => 'missingType.return',
-	'count' => 1,
-	'path' => __DIR__ . '/modules/workflows/src/Hook/WorkflowsHooks.php',
-];
 $ignoreErrors[] = [
 	'message' => '#^Method Drupal\\\\workflows\\\\Plugin\\\\WorkflowTypeBase\\:\\:setConfiguration\\(\\) has no return type specified\\.$#',
 	'identifier' => 'missingType.return',
diff --git a/core/modules/announcements_feed/src/Hook/AnnouncementsFeedHooks.php b/core/modules/announcements_feed/src/Hook/AnnouncementsFeedHooks.php
index 47eb5113d9c03d216f28c52f6a2093b68efca9b0..5c87ef9a74e5fe51bbaeddf83ab532f462c1c08c 100644
--- a/core/modules/announcements_feed/src/Hook/AnnouncementsFeedHooks.php
+++ b/core/modules/announcements_feed/src/Hook/AnnouncementsFeedHooks.php
@@ -19,7 +19,7 @@ class AnnouncementsFeedHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.announcements_feed':
         $output = '';
@@ -35,6 +35,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/automated_cron/src/Hook/AutomatedCronHooks.php b/core/modules/automated_cron/src/Hook/AutomatedCronHooks.php
index 3c0ffbdfc86d30072c8948b633144baaf7c36d99..05c4ee14505c45182e9f90404641e049be5f661c 100644
--- a/core/modules/automated_cron/src/Hook/AutomatedCronHooks.php
+++ b/core/modules/automated_cron/src/Hook/AutomatedCronHooks.php
@@ -18,7 +18,7 @@ class AutomatedCronHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.automated_cron':
         $output = '';
@@ -37,6 +37,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/ban/src/Hook/BanHooks.php b/core/modules/ban/src/Hook/BanHooks.php
index b299f4274514b6a29f36743d719695007c13f617..db2dcf30ec5fadc20d1c689be22fc407ac8bd9b0 100644
--- a/core/modules/ban/src/Hook/BanHooks.php
+++ b/core/modules/ban/src/Hook/BanHooks.php
@@ -18,7 +18,7 @@ class BanHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.ban':
         $output = '';
@@ -34,6 +34,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
       case 'ban.admin_page':
         return '<p>' . $this->t('IP addresses listed here are banned from your site. Banned addresses are completely forbidden from accessing the site and instead see a brief message explaining the situation.') . '</p>';
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/basic_auth/src/Hook/BasicAuthHooks.php b/core/modules/basic_auth/src/Hook/BasicAuthHooks.php
index a133c99ef2304c66be3910b5a5091d65b496e6f2..73a8e64ed7679966de7039afdb769cbe25eab140 100644
--- a/core/modules/basic_auth/src/Hook/BasicAuthHooks.php
+++ b/core/modules/basic_auth/src/Hook/BasicAuthHooks.php
@@ -18,7 +18,7 @@ class BasicAuthHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.basic_auth':
         $output = '';
@@ -31,6 +31,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         ]) . '</p>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/big_pipe/src/Hook/BigPipeHooks.php b/core/modules/big_pipe/src/Hook/BigPipeHooks.php
index f9d2a87f1c0abf4d3251a9edc0ee36ab9c7c08cd..0e6a56b8f6ec0c0911a0f0a9cc47868e25bf50bc 100644
--- a/core/modules/big_pipe/src/Hook/BigPipeHooks.php
+++ b/core/modules/big_pipe/src/Hook/BigPipeHooks.php
@@ -19,7 +19,7 @@ class BigPipeHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.big_pipe':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -33,6 +33,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/block/src/Hook/BlockHooks.php b/core/modules/block/src/Hook/BlockHooks.php
index 5b0991bcc502c0e09691890ce4590ab0fb3e5202..a40532284a15fba0fa7b3ac16dae39c76ac945be 100644
--- a/core/modules/block/src/Hook/BlockHooks.php
+++ b/core/modules/block/src/Hook/BlockHooks.php
@@ -23,7 +23,7 @@ class BlockHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.block':
         $block_content = \Drupal::moduleHandler()->moduleExists('block_content') ? Url::fromRoute('help.page', ['name' => 'block_content'])->toString() : '#';
@@ -54,6 +54,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
       $output .= '<p>' . Link::fromTextAndUrl($this->t('Demonstrate block regions (@theme)', ['@theme' => $themes[$demo_theme]->info['name']]), Url::fromRoute('block.admin_demo', ['theme' => $demo_theme]))->toString() . '</p>';
       return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/block_content/src/Hook/BlockContentHooks.php b/core/modules/block_content/src/Hook/BlockContentHooks.php
index d7907dfdf34d665622561302bbfbba5b00281582..6852bd4d49ede7c5b9c952fbd65c5f4c033bc651 100644
--- a/core/modules/block_content/src/Hook/BlockContentHooks.php
+++ b/core/modules/block_content/src/Hook/BlockContentHooks.php
@@ -23,7 +23,7 @@ class BlockContentHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.block_content':
         $field_ui = \Drupal::moduleHandler()->moduleExists('field_ui') ? Url::fromRoute('help.page', ['name' => 'field_ui'])->toString() : '#';
@@ -48,6 +48,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/breakpoint/src/Hook/BreakpointHooks.php b/core/modules/breakpoint/src/Hook/BreakpointHooks.php
index b1da0df2d45eaccbb5c3aed6dc0cf70fd0c666ea..55e0f605b6bf6baa2eecf74cfd9ee32d84d8d85d 100644
--- a/core/modules/breakpoint/src/Hook/BreakpointHooks.php
+++ b/core/modules/breakpoint/src/Hook/BreakpointHooks.php
@@ -17,7 +17,7 @@ class BreakpointHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.breakpoint':
         $output = '';
@@ -41,6 +41,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/ckeditor5/src/Hook/Ckeditor5Hooks.php b/core/modules/ckeditor5/src/Hook/Ckeditor5Hooks.php
index bd3f133c0eea75bd54a62b4c726f13dab6fd6629..d47451528cf58f69109246d66d1b807995fdf114 100644
--- a/core/modules/ckeditor5/src/Hook/Ckeditor5Hooks.php
+++ b/core/modules/ckeditor5/src/Hook/Ckeditor5Hooks.php
@@ -23,7 +23,7 @@ class Ckeditor5Hooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.ckeditor5':
         $output = '';
@@ -87,6 +87,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/comment/src/Hook/CommentHooks.php b/core/modules/comment/src/Hook/CommentHooks.php
index 196fdf6890b9eedd165f427b34092fd5a4c1e704..b4550ad66eb88afdfd9d8494c69c55c6efe442ee 100644
--- a/core/modules/comment/src/Hook/CommentHooks.php
+++ b/core/modules/comment/src/Hook/CommentHooks.php
@@ -31,7 +31,7 @@ class CommentHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.comment':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -68,6 +68,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output = '<p>' . $this->t('This page provides a list of all comment types on the site and allows you to manage the fields, form and display settings for each.') . '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/config/src/Hook/ConfigHooks.php b/core/modules/config/src/Hook/ConfigHooks.php
index 1fafec387a7720d2cb87834e4dd76b83322af910..b28e2519fb228e1aa0cb88602bb94513b2e59eaa 100644
--- a/core/modules/config/src/Hook/ConfigHooks.php
+++ b/core/modules/config/src/Hook/ConfigHooks.php
@@ -19,7 +19,7 @@ class ConfigHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.config':
         $output = '';
@@ -69,6 +69,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '<p>' . $this->t('Import a single configuration item by pasting its YAML structure into the text field.') . '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/config_translation/src/Hook/ConfigTranslationHooks.php b/core/modules/config_translation/src/Hook/ConfigTranslationHooks.php
index f1fd2434efcac8ac65f6dfd36611178d3aa3dee9..21daa8b7a2c953e30384a2a4650dc846e8aa205c 100644
--- a/core/modules/config_translation/src/Hook/ConfigTranslationHooks.php
+++ b/core/modules/config_translation/src/Hook/ConfigTranslationHooks.php
@@ -21,7 +21,7 @@ class ConfigTranslationHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.config_translation':
         $output = '';
@@ -62,6 +62,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output = '<p>' . $this->t('This page lists all configuration items on your site that have translatable text, like your site name, role names, etc.') . '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/contact/src/Hook/ContactHooks.php b/core/modules/contact/src/Hook/ContactHooks.php
index 16fb53327227c61d32d0f86189ff430a55b6195d..3ed2831c122bf5ca562031ad9b0b223754150d66 100644
--- a/core/modules/contact/src/Hook/ContactHooks.php
+++ b/core/modules/contact/src/Hook/ContactHooks.php
@@ -21,7 +21,7 @@ class ContactHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.contact':
         $menu_page = \Drupal::moduleHandler()->moduleExists('menu_ui') ? Url::fromRoute('entity.menu.collection')->toString() : '#';
@@ -43,6 +43,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/content_moderation/src/Hook/ContentModerationHooks.php b/core/modules/content_moderation/src/Hook/ContentModerationHooks.php
index ad2d2fe411de11c7e3a06a65aa39451b894e34c6..bace7d9d24ee3bba6aa3d0139ff0f87a62bbf4ff 100644
--- a/core/modules/content_moderation/src/Hook/ContentModerationHooks.php
+++ b/core/modules/content_moderation/src/Hook/ContentModerationHooks.php
@@ -41,7 +41,7 @@ class ContentModerationHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       // Main module help for the content_moderation module.
       case 'help.page.content_moderation':
@@ -78,6 +78,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/content_translation/src/Hook/ContentTranslationHooks.php b/core/modules/content_translation/src/Hook/ContentTranslationHooks.php
index 69fb38b712040b5ab25a6d8b9adb41d7a108dc56..0f38a7f005dbd98859021152abf987b804531f5c 100644
--- a/core/modules/content_translation/src/Hook/ContentTranslationHooks.php
+++ b/core/modules/content_translation/src/Hook/ContentTranslationHooks.php
@@ -29,7 +29,7 @@ class ContentTranslationHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.content_translation':
         $output = '';
@@ -79,6 +79,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         }
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/contextual/src/Hook/ContextualHooks.php b/core/modules/contextual/src/Hook/ContextualHooks.php
index f0d0c7efb9ab1555c9c3eff89a77c0b74db4d28d..3c3f451d0d849946d25ad4981f96c187267e4d0b 100644
--- a/core/modules/contextual/src/Hook/ContextualHooks.php
+++ b/core/modules/contextual/src/Hook/ContextualHooks.php
@@ -75,7 +75,7 @@ public function pageAttachments(array &$page): void {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.contextual':
         $output = '';
@@ -105,6 +105,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/datetime/src/Hook/DatetimeHooks.php b/core/modules/datetime/src/Hook/DatetimeHooks.php
index 34b9eb81eb5d150f779426acf608b1be0ebe5c3a..66fbd1babfe86e54c7db3a476d894eddba52e9d4 100644
--- a/core/modules/datetime/src/Hook/DatetimeHooks.php
+++ b/core/modules/datetime/src/Hook/DatetimeHooks.php
@@ -18,7 +18,7 @@ class DatetimeHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.datetime':
         $output = '';
@@ -47,6 +47,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/datetime_range/src/Hook/DatetimeRangeHooks.php b/core/modules/datetime_range/src/Hook/DatetimeRangeHooks.php
index 2bc26e726c19a0b6abdc2688db502a5db7dea925..bd8aa1a77be6929e738bef4e7d52f31512c0f272 100644
--- a/core/modules/datetime_range/src/Hook/DatetimeRangeHooks.php
+++ b/core/modules/datetime_range/src/Hook/DatetimeRangeHooks.php
@@ -18,7 +18,7 @@ class DatetimeRangeHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.datetime_range':
         $output = '';
@@ -47,6 +47,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/dblog/src/Hook/DblogHooks.php b/core/modules/dblog/src/Hook/DblogHooks.php
index d6675f88d353e02407f2afbb8df894c5293450f5..5303fcc090e449452bb0228615e596fbd6589e50 100644
--- a/core/modules/dblog/src/Hook/DblogHooks.php
+++ b/core/modules/dblog/src/Hook/DblogHooks.php
@@ -21,7 +21,7 @@ class DblogHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.dblog':
         $output = '';
@@ -41,6 +41,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
       case 'dblog.overview':
         return '<p>' . $this->t('The Database Logging module logs system events in the Drupal database. Monitor your site or debug site problems on this page.') . '</p>';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/dynamic_page_cache/src/Hook/DynamicPageCacheHooks.php b/core/modules/dynamic_page_cache/src/Hook/DynamicPageCacheHooks.php
index 7eab2af3795e2eb7d9466e396ed720c05f09d967..43a88cea81534da49d25109e522c9c723548e22e 100644
--- a/core/modules/dynamic_page_cache/src/Hook/DynamicPageCacheHooks.php
+++ b/core/modules/dynamic_page_cache/src/Hook/DynamicPageCacheHooks.php
@@ -17,7 +17,7 @@ class DynamicPageCacheHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.dynamic_page_cache':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -32,6 +32,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/editor/src/Hook/EditorHooks.php b/core/modules/editor/src/Hook/EditorHooks.php
index 92958c468fff002583c4258df9a4721ca9f3d05e..952dbff1db5e469820a3b252db5aa010239998a8 100644
--- a/core/modules/editor/src/Hook/EditorHooks.php
+++ b/core/modules/editor/src/Hook/EditorHooks.php
@@ -26,7 +26,7 @@ class EditorHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.editor':
         $output = '';
@@ -55,6 +55,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/field/src/Hook/FieldHooks.php b/core/modules/field/src/Hook/FieldHooks.php
index 888fd503acdc8473a293b3d26356ea5357126e43..aa759522f458b3980798580ad7f11f4927385977 100644
--- a/core/modules/field/src/Hook/FieldHooks.php
+++ b/core/modules/field/src/Hook/FieldHooks.php
@@ -67,7 +67,7 @@ class FieldHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.field':
         $field_ui_url = \Drupal::moduleHandler()->moduleExists('field_ui') ? Url::fromRoute('help.page', ['name' => 'field_ui'])->toString() : '#';
@@ -160,6 +160,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/field_layout/src/Hook/FieldLayoutHooks.php b/core/modules/field_layout/src/Hook/FieldLayoutHooks.php
index 7d8b0b80145b6768590b2f5aaa99bae78d02985a..04b7ae4a55f90fce5c4bf8b460933206ff198f16 100644
--- a/core/modules/field_layout/src/Hook/FieldLayoutHooks.php
+++ b/core/modules/field_layout/src/Hook/FieldLayoutHooks.php
@@ -27,7 +27,7 @@ class FieldLayoutHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.field_layout':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -37,6 +37,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         ]) . '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/field_ui/src/Hook/FieldUiHooks.php b/core/modules/field_ui/src/Hook/FieldUiHooks.php
index ff4a88dc8da1f0b2bb9dcf1383e78cf8fbacd352..06434e2ec4dfe7e33ef6f25ab34ed7b5f0858a42 100644
--- a/core/modules/field_ui/src/Hook/FieldUiHooks.php
+++ b/core/modules/field_ui/src/Hook/FieldUiHooks.php
@@ -25,7 +25,7 @@ class FieldUiHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.field_ui':
         $output = '';
@@ -68,6 +68,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
       case 'entity.field_storage_config.collection':
         return '<p>' . $this->t('This list shows all fields currently in use for easy reference.') . '</p>';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/filter/src/Hook/FilterHooks.php b/core/modules/filter/src/Hook/FilterHooks.php
index e08779ad0be5034dcf77a2dc4ec563064d1b415a..cda7d6ec9fdacad93b0c05448df0c7d1278b762a 100644
--- a/core/modules/filter/src/Hook/FilterHooks.php
+++ b/core/modules/filter/src/Hook/FilterHooks.php
@@ -18,7 +18,7 @@ class FilterHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.filter':
         $output = '';
@@ -61,6 +61,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output = '<p>' . $this->t('A text format contains filters that change the display of user input; for example, stripping out malicious HTML or making URLs clickable. Filters are executed from top to bottom and the order is important, since one filter may prevent another filter from doing its job. For example, when URLs are converted into links before disallowed HTML tags are removed, all links may be removed. When this happens, the order of filters may need to be rearranged.') . '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/help/help.api.php b/core/modules/help/help.api.php
index 1dc6fb0d84e7646145916cd2e3d9bc72ee500ac2..9546e6b9776beb778d1f0ebe863bd82196554980 100644
--- a/core/modules/help/help.api.php
+++ b/core/modules/help/help.api.php
@@ -65,11 +65,11 @@
  *   The current route match. This can be used to generate different help
  *   output for different pages that share the same route.
  *
- * @return string|array
+ * @return string|\Stringable|array|null
  *   A render array, localized string, or object that can be rendered into
  *   a string, containing the help text.
  */
-function hook_help($route_name, RouteMatchInterface $route_match) {
+function hook_help($route_name, RouteMatchInterface $route_match): string|\Stringable|array|null {
   switch ($route_name) {
     // Main module help for the block module.
     case 'help.page.block':
@@ -79,6 +79,7 @@ function hook_help($route_name, RouteMatchInterface $route_match) {
     case 'block.admin_display':
       return '<p>' . t('This page provides a drag-and-drop interface for assigning a block to a region, and for controlling the order of blocks within regions. Since not all themes implement the same regions, or display regions in the same way, blocks are positioned on a per-theme basis. Remember that your changes will not be saved until you click the <em>Save blocks</em> button at the bottom of the page.') . '</p>';
   }
+  return NULL;
 }
 
 /**
diff --git a/core/modules/help/src/Hook/HelpHooks.php b/core/modules/help/src/Hook/HelpHooks.php
index b2367f7debb618dc3c6b76f4813124a1ee234138..201a08b0a7254762148f74109a0fb121e87803c8 100644
--- a/core/modules/help/src/Hook/HelpHooks.php
+++ b/core/modules/help/src/Hook/HelpHooks.php
@@ -19,7 +19,7 @@ class HelpHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): string|array|null {
     switch ($route_name) {
       case 'help.main':
         $output = '<h2>' . $this->t('Getting Started') . '</h2>';
@@ -87,6 +87,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $help_home = Url::fromRoute('help.main')->toString();
         return '<p>' . $this->t('See the <a href=":help_page">Help page</a> for more topics.', [':help_page' => $help_home]) . '</p>';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/help/tests/modules/help_page_test/src/Hook/HelpPageTestHooks.php b/core/modules/help/tests/modules/help_page_test/src/Hook/HelpPageTestHooks.php
index d45575b021ca2bd42051625cb2b71085b77d38d4..0d06550c714af98a5e96d05ff4dcccba129024a6 100644
--- a/core/modules/help/tests/modules/help_page_test/src/Hook/HelpPageTestHooks.php
+++ b/core/modules/help/tests/modules/help_page_test/src/Hook/HelpPageTestHooks.php
@@ -16,7 +16,7 @@ class HelpPageTestHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): string|array {
     switch ($route_name) {
       case 'help.page.help_page_test':
         // Make the help text conform to core standards. See
diff --git a/core/modules/help/tests/modules/help_test/src/Hook/HelpTestHooks.php b/core/modules/help/tests/modules/help_test/src/Hook/HelpTestHooks.php
index e716664ff48b55bf15523005f2111050dbfca1b2..4175f500cd135dca21fbb534e5e65b071e644a63 100644
--- a/core/modules/help/tests/modules/help_test/src/Hook/HelpTestHooks.php
+++ b/core/modules/help/tests/modules/help_test/src/Hook/HelpTestHooks.php
@@ -16,9 +16,10 @@ class HelpTestHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): null {
     // Do not implement a module overview page to test an empty implementation.
     // @see \Drupal\help\Tests\HelpTest
+    return NULL;
   }
 
 }
diff --git a/core/modules/help/tests/modules/help_topics_test/src/Hook/HelpTopicsTestHooks.php b/core/modules/help/tests/modules/help_topics_test/src/Hook/HelpTopicsTestHooks.php
index f1704f4c408da04dbf0395108bc0941a5c6df91c..a363dc709af71bbdeaa05efb1fb415a0eb843f73 100644
--- a/core/modules/help/tests/modules/help_topics_test/src/Hook/HelpTopicsTestHooks.php
+++ b/core/modules/help/tests/modules/help_topics_test/src/Hook/HelpTopicsTestHooks.php
@@ -16,11 +16,12 @@ class HelpTopicsTestHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.help_topics_test':
         return 'Some kind of non-empty output for testing';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/help/tests/modules/more_help_page_test/src/Hook/MoreHelpPageTestHooks.php b/core/modules/help/tests/modules/more_help_page_test/src/Hook/MoreHelpPageTestHooks.php
index 96665384d6a2d9b9f22fae268db3a83156759981..b882be1752c0b690c92c290b637c135e78d42c94 100644
--- a/core/modules/help/tests/modules/more_help_page_test/src/Hook/MoreHelpPageTestHooks.php
+++ b/core/modules/help/tests/modules/more_help_page_test/src/Hook/MoreHelpPageTestHooks.php
@@ -16,12 +16,13 @@ class MoreHelpPageTestHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?array {
     switch ($route_name) {
       // Return help for the same route as the help_page_test module.
       case 'help_page_test.test_array':
         return ['#markup' => 'Help text from more_help_page_test_help module.'];
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/history/src/Hook/HistoryHooks.php b/core/modules/history/src/Hook/HistoryHooks.php
index 7508305f705dd7f33ef990d4274ffcccf74e376c..0d2c107d7f044f831354aea38eef668fb2e300de 100644
--- a/core/modules/history/src/Hook/HistoryHooks.php
+++ b/core/modules/history/src/Hook/HistoryHooks.php
@@ -21,7 +21,7 @@ class HistoryHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.history':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -33,6 +33,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         ]) . '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/image/src/Hook/ImageHooks.php b/core/modules/image/src/Hook/ImageHooks.php
index f864ee9a06a22c914b91ddcc63ee80dfdb152090..2d6af269220b0e0e0ddf20c52ba3ad93d1422ab4 100644
--- a/core/modules/image/src/Hook/ImageHooks.php
+++ b/core/modules/image/src/Hook/ImageHooks.php
@@ -25,7 +25,7 @@ class ImageHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.image':
         $field_ui_url = \Drupal::moduleHandler()->moduleExists('field_ui') ? Url::fromRoute('help.page', ['name' => 'field_ui'])->toString() : '#';
@@ -75,6 +75,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $effect_definition = $effect->getPluginDefinition();
         return isset($effect_definition['description']) ? '<p>' . $effect_definition['description'] . '</p>' : NULL;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/inline_form_errors/src/Hook/InlineFormErrorsHooks.php b/core/modules/inline_form_errors/src/Hook/InlineFormErrorsHooks.php
index 97df9077f85f2ae389f4e3944ebf7e95bf5a1fa7..f9284cb9eaeeed63dd58a2463bddc7218bf6b704 100644
--- a/core/modules/inline_form_errors/src/Hook/InlineFormErrorsHooks.php
+++ b/core/modules/inline_form_errors/src/Hook/InlineFormErrorsHooks.php
@@ -18,7 +18,7 @@ class InlineFormErrorsHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.inline_form_errors':
         $output = '';
@@ -34,6 +34,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '<dd>' . $this->t('In browsers that support HTML5 form validation, users will first see the error messages generated by their browser. In this case, the inline form error messages are only displayed after the HTML5 validation errors have been resolved.') . '</dd>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/jsonapi/src/Hook/JsonapiHooks.php b/core/modules/jsonapi/src/Hook/JsonapiHooks.php
index bafe5467a5b0d27a6a5411c6dd97883e1fc968e1..7db75a3297be307c92d757056f79f2d66ddc5105 100644
--- a/core/modules/jsonapi/src/Hook/JsonapiHooks.php
+++ b/core/modules/jsonapi/src/Hook/JsonapiHooks.php
@@ -22,7 +22,7 @@ class JsonapiHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.jsonapi':
         $output = '<h2>' . $this->t('About') . '</h2>';
diff --git a/core/modules/language/src/Hook/LanguageHooks.php b/core/modules/language/src/Hook/LanguageHooks.php
index ef0b7c84861ef2f168604f307845af0b81e5026e..3135d8c06a6e953139765fd2090325fc392ef025 100644
--- a/core/modules/language/src/Hook/LanguageHooks.php
+++ b/core/modules/language/src/Hook/LanguageHooks.php
@@ -34,7 +34,7 @@ class LanguageHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.language':
         $output = '';
@@ -136,6 +136,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
       case 'language.content_settings_page':
         return '<p>' . $this->t("Change language settings for <em>content types</em>, <em>taxonomy vocabularies</em>, <em>user profiles</em>, or any other supported element on your site. By default, language settings hide the language selector and the language is the site's default language.") . '</p>';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/layout_builder/modules/layout_builder_expose_all_field_blocks/src/Hook/LayoutBuilderExposeAllFieldBlocksHooks.php b/core/modules/layout_builder/modules/layout_builder_expose_all_field_blocks/src/Hook/LayoutBuilderExposeAllFieldBlocksHooks.php
index 6b213b2dc702037de15e4a141648455c030aa6bc..7ae49b6217c559000f960dc715f2e0a50465e58f 100644
--- a/core/modules/layout_builder/modules/layout_builder_expose_all_field_blocks/src/Hook/LayoutBuilderExposeAllFieldBlocksHooks.php
+++ b/core/modules/layout_builder/modules/layout_builder_expose_all_field_blocks/src/Hook/LayoutBuilderExposeAllFieldBlocksHooks.php
@@ -17,7 +17,7 @@ class LayoutBuilderExposeAllFieldBlocksHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.layout_builder_expose_all_field_blocks':
         $output = '<h2>' . $this->t('About') . '</h2>';
diff --git a/core/modules/layout_builder/src/Hook/LayoutBuilderHooks.php b/core/modules/layout_builder/src/Hook/LayoutBuilderHooks.php
index 7f30060ad3fdfca0283274ce0e5dc42b67f2ba7a..d12f9f0bc6846a8b60b49359eb6586429106030a 100644
--- a/core/modules/layout_builder/src/Hook/LayoutBuilderHooks.php
+++ b/core/modules/layout_builder/src/Hook/LayoutBuilderHooks.php
@@ -38,7 +38,7 @@ class LayoutBuilderHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     // Add help text to the Layout Builder UI.
     if ($route_match->getRouteObject()->getOption('_layout_builder')) {
       $output = '<p>' . $this->t('This layout builder tool allows you to configure the layout of the main content area.') . '</p>';
@@ -82,6 +82,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/layout_discovery/src/Hook/LayoutDiscoveryHooks.php b/core/modules/layout_discovery/src/Hook/LayoutDiscoveryHooks.php
index bc127e6257f08b8da34e35451559727396e7a1cb..9464c15d487f0245196f77b64501847f0bb947dd 100644
--- a/core/modules/layout_discovery/src/Hook/LayoutDiscoveryHooks.php
+++ b/core/modules/layout_discovery/src/Hook/LayoutDiscoveryHooks.php
@@ -16,7 +16,7 @@ class LayoutDiscoveryHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name) {
+  public function help($route_name): ?string {
     switch ($route_name) {
       case 'help.page.layout_discovery':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -26,6 +26,7 @@ public function help($route_name) {
         ]) . '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/link/src/Hook/LinkHooks.php b/core/modules/link/src/Hook/LinkHooks.php
index 8bfe2cb7ab1135b72743fb9ef809793a287a7729..b7d90d41005b00bb7b31e8b6f6eaa80d3c912cb6 100644
--- a/core/modules/link/src/Hook/LinkHooks.php
+++ b/core/modules/link/src/Hook/LinkHooks.php
@@ -19,7 +19,7 @@ class LinkHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.link':
         $output = '';
@@ -54,6 +54,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/locale/src/Hook/LocaleHooks.php b/core/modules/locale/src/Hook/LocaleHooks.php
index cb8268439f467d37a44cdf47844462c6bf91b702..69a47783a7d5fa0543ecd3da67c35ef1cd4586d3 100644
--- a/core/modules/locale/src/Hook/LocaleHooks.php
+++ b/core/modules/locale/src/Hook/LocaleHooks.php
@@ -23,7 +23,7 @@ class LocaleHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.locale':
         $output = '';
@@ -87,6 +87,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
       case 'locale.translate_export':
         return '<p>' . $this->t('This page exports the translated strings used by your site. An export file may be in Gettext Portable Object (<em>.po</em>) form, which includes both the original string and the translation (used to share translations with others), or in Gettext Portable Object Template (<em>.pot</em>) form, which includes the original strings only (used to create new translations with a Gettext translation editor).') . '</p>';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/media/src/Hook/MediaHooks.php b/core/modules/media/src/Hook/MediaHooks.php
index 1e45715a88215e32208aaa1d716416f1a39f4d3b..d6b657d9d09e6ee31bd856b0a29c4ab82f20b441 100644
--- a/core/modules/media/src/Hook/MediaHooks.php
+++ b/core/modules/media/src/Hook/MediaHooks.php
@@ -26,7 +26,7 @@ class MediaHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.media':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -71,6 +71,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '<p>' . $this->t('Use <em>Media</em> reference fields for most files, images, audio, videos, and remote media. Use <em>File</em> or <em>Image</em> reference fields when creating your own media types, or for legacy files and images created before installing the Media module.') . '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/media_library/src/Hook/MediaLibraryHooks.php b/core/modules/media_library/src/Hook/MediaLibraryHooks.php
index 0d0435006518f63a33fe403b6bd5a09d84489327..b31adba834c2aa255c16aaeee9c3efde02a38e60 100644
--- a/core/modules/media_library/src/Hook/MediaLibraryHooks.php
+++ b/core/modules/media_library/src/Hook/MediaLibraryHooks.php
@@ -32,7 +32,7 @@ class MediaLibraryHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.media_library':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -76,6 +76,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</ul>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/menu_link_content/src/Hook/MenuLinkContentHooks.php b/core/modules/menu_link_content/src/Hook/MenuLinkContentHooks.php
index e696519b68a8528a4252848198dbc7db3416bde8..94e4c77eae212ba2b164000524c596ee01ecfc07 100644
--- a/core/modules/menu_link_content/src/Hook/MenuLinkContentHooks.php
+++ b/core/modules/menu_link_content/src/Hook/MenuLinkContentHooks.php
@@ -21,7 +21,7 @@ class MenuLinkContentHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.menu_link_content':
         $output = '';
@@ -41,6 +41,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/menu_ui/src/Hook/MenuUiHooks.php b/core/modules/menu_ui/src/Hook/MenuUiHooks.php
index 572c554c317f1ab17059992089e558a37f68a5ae..ac7c7602f3be8edd09f97598777659bbbab33983 100644
--- a/core/modules/menu_ui/src/Hook/MenuUiHooks.php
+++ b/core/modules/menu_ui/src/Hook/MenuUiHooks.php
@@ -28,7 +28,7 @@ class MenuUiHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.menu_ui':
         $output = '';
@@ -60,6 +60,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
     elseif ($route_name == 'entity.menu.collection' && \Drupal::moduleHandler()->moduleExists('block') && \Drupal::currentUser()->hasPermission('administer blocks')) {
       return '<p>' . $this->t('Each menu has a corresponding block that is managed on the <a href=":blocks">Block layout page</a>.', [':blocks' => Url::fromRoute('block.admin_display')->toString()]) . '</p>';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/migrate/src/Hook/MigrateHooks.php b/core/modules/migrate/src/Hook/MigrateHooks.php
index 4f54ec1979221ca0b091fdd5983dca00956012cb..22d05cf8b4acd529242c10e233f29ca69de5ad87 100644
--- a/core/modules/migrate/src/Hook/MigrateHooks.php
+++ b/core/modules/migrate/src/Hook/MigrateHooks.php
@@ -17,7 +17,7 @@ class MigrateHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.migrate':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -26,6 +26,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</p>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Hook/MigrateDrupalHooks.php b/core/modules/migrate_drupal/src/Hook/MigrateDrupalHooks.php
index 1fbeeda44bc4212460638bc07752f400ec9a8c08..3db220c051968b54f67e43516dbf504c9581fdb9 100644
--- a/core/modules/migrate_drupal/src/Hook/MigrateDrupalHooks.php
+++ b/core/modules/migrate_drupal/src/Hook/MigrateDrupalHooks.php
@@ -23,7 +23,7 @@ class MigrateDrupalHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.migrate_drupal':
         $output = '';
@@ -36,6 +36,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         ]) . '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/migrate_drupal_ui/src/Hook/MigrateDrupalUiHooks.php b/core/modules/migrate_drupal_ui/src/Hook/MigrateDrupalUiHooks.php
index 5ff282cd0995cc39fbf8e5a01c52890fb3799bfe..02cc98ffb466bea9560ed4be6efd6b929a94df24 100644
--- a/core/modules/migrate_drupal_ui/src/Hook/MigrateDrupalUiHooks.php
+++ b/core/modules/migrate_drupal_ui/src/Hook/MigrateDrupalUiHooks.php
@@ -18,7 +18,7 @@ class MigrateDrupalUiHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.migrate_drupal_ui':
         $output = '';
@@ -47,6 +47,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/mysql/src/Hook/MysqlHooks.php b/core/modules/mysql/src/Hook/MysqlHooks.php
index c1ada0bf743208fef908c65335dbb9c9cb74c332..ba1d45c2d671cba7c40dd36d5a500b95fc006de2 100644
--- a/core/modules/mysql/src/Hook/MysqlHooks.php
+++ b/core/modules/mysql/src/Hook/MysqlHooks.php
@@ -17,7 +17,7 @@ class MysqlHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.mysql':
         $output = '';
@@ -27,6 +27,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         ]) . '</p>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/navigation/modules/navigation_top_bar/src/Hook/NavigationTopBarHooks.php b/core/modules/navigation/modules/navigation_top_bar/src/Hook/NavigationTopBarHooks.php
index 459fe60dc6046c9e8066af1bf6aced956963a266..7c76e867bb2deabd1f43a3681eff81ccaafdcacf 100644
--- a/core/modules/navigation/modules/navigation_top_bar/src/Hook/NavigationTopBarHooks.php
+++ b/core/modules/navigation/modules/navigation_top_bar/src/Hook/NavigationTopBarHooks.php
@@ -17,7 +17,7 @@ class NavigationTopBarHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.navigation_top_bar':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -28,6 +28,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '<p>' . $this->t('For more information, see the <a href=":docs">online documentation for the Navigation Top Bar module</a>.', [':docs' => 'https://www.drupal.org/project/navigation']) . '</p>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/navigation/src/Hook/NavigationHooks.php b/core/modules/navigation/src/Hook/NavigationHooks.php
index 740ac71add28cc83133bb3d308f05dfd3eb3e1f3..f380aee48a05ac2e2802945c6d0e08b3ff92e1a9 100644
--- a/core/modules/navigation/src/Hook/NavigationHooks.php
+++ b/core/modules/navigation/src/Hook/NavigationHooks.php
@@ -37,7 +37,7 @@ public function __construct(
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.navigation':
         $output = '';
@@ -55,6 +55,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
       $output .= '<p>' . $this->t('Forms and links inside the content of the layout builder tool have been disabled.') . '</p>';
       return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/node/src/Hook/NodeHooks1.php b/core/modules/node/src/Hook/NodeHooks1.php
index 7f8bdd8c1872a4c4434a14e0077607332954276a..8e25f2eb066c44cd6bfee9a52529253b0a7a32b2 100644
--- a/core/modules/node/src/Hook/NodeHooks1.php
+++ b/core/modules/node/src/Hook/NodeHooks1.php
@@ -30,7 +30,7 @@ class NodeHooks1 {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     // Remind site administrators about the {node_access} table being flagged
     // for rebuild. We don't need to issue the message on the confirm form, or
     // while the rebuild is being processed.
@@ -108,6 +108,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $help = $type->getHelp();
         return !empty($help) ? Xss::filterAdmin($help) : '';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/options/src/Hook/OptionsHooks.php b/core/modules/options/src/Hook/OptionsHooks.php
index add3bba5dd39784c04652e01c3d0b7dd66b91746..c4827f7baee25b803790876b955e048c5d417ddf 100644
--- a/core/modules/options/src/Hook/OptionsHooks.php
+++ b/core/modules/options/src/Hook/OptionsHooks.php
@@ -20,7 +20,7 @@ class OptionsHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.options':
         $output = '';
@@ -49,6 +49,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/page_cache/src/Hook/PageCacheHooks.php b/core/modules/page_cache/src/Hook/PageCacheHooks.php
index ad4612b11e9e8e7864510ed5265686916f58708c..ef40aed361a1826c64283d393a6d96479297360c 100644
--- a/core/modules/page_cache/src/Hook/PageCacheHooks.php
+++ b/core/modules/page_cache/src/Hook/PageCacheHooks.php
@@ -18,7 +18,7 @@ class PageCacheHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.page_cache':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -42,6 +42,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/path/src/Hook/PathHooks.php b/core/modules/path/src/Hook/PathHooks.php
index ec9312749701b8a6a100f9190c5a148921df4ab4..7c0d4331204a390a705faa6067fc03979334399b 100644
--- a/core/modules/path/src/Hook/PathHooks.php
+++ b/core/modules/path/src/Hook/PathHooks.php
@@ -27,7 +27,7 @@ class PathHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.path':
         $output = '';
@@ -58,6 +58,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
       case 'entity.path_alias.add_form':
         return '<p>' . $this->t('Enter the path you wish to create the alias for, followed by the name of the new alias.') . '</p>';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/pgsql/src/Hook/PgsqlHooks.php b/core/modules/pgsql/src/Hook/PgsqlHooks.php
index d199f65f151690cfff34604acd0eb4fd63f59e22..c53f4720c949758e0d7236667658ec2f618eb9ad 100644
--- a/core/modules/pgsql/src/Hook/PgsqlHooks.php
+++ b/core/modules/pgsql/src/Hook/PgsqlHooks.php
@@ -17,7 +17,7 @@ class PgsqlHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.pgsql':
         $output = '';
@@ -27,6 +27,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         ]) . '</p>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/phpass/src/Hook/PhpassHooks.php b/core/modules/phpass/src/Hook/PhpassHooks.php
index 422d623006cbe1a9bafc5ba0bdc86c42d965a382..edf0e2f4780de5ac6fd5704ed2e2c1da79041c0b 100644
--- a/core/modules/phpass/src/Hook/PhpassHooks.php
+++ b/core/modules/phpass/src/Hook/PhpassHooks.php
@@ -18,7 +18,7 @@ class PhpassHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.phpass':
         $output = '';
@@ -31,6 +31,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '<p>' . $this->t('Passwords created before Drupal 10.1.0 <strong>will not work</strong> unless they are used at least once while this module is installed. Make sure that you can log in before uninstalling this module.') . '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/responsive_image/src/Hook/ResponsiveImageHooks.php b/core/modules/responsive_image/src/Hook/ResponsiveImageHooks.php
index c75b4162e43838e81a217f57733da485f7f76f6d..96d60bbe7f4bca378041125e64d195ef0b52c04e 100644
--- a/core/modules/responsive_image/src/Hook/ResponsiveImageHooks.php
+++ b/core/modules/responsive_image/src/Hook/ResponsiveImageHooks.php
@@ -18,7 +18,7 @@ class ResponsiveImageHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.responsive_image':
         $output = '';
@@ -68,6 +68,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
       case 'entity.responsive_image_style.collection':
         return '<p>' . $this->t('A responsive image style associates an image style with each breakpoint defined by your theme.') . '</p>';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/rest/src/Hook/RestHooks.php b/core/modules/rest/src/Hook/RestHooks.php
index b5d5d4add5d2747470d59e587fd4294a3b4dd632..315ef550de84ed3801c37064891f8e25285e023f 100644
--- a/core/modules/rest/src/Hook/RestHooks.php
+++ b/core/modules/rest/src/Hook/RestHooks.php
@@ -18,7 +18,7 @@ class RestHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.rest':
         $output = '';
@@ -58,6 +58,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/search/src/Hook/SearchHooks.php b/core/modules/search/src/Hook/SearchHooks.php
index 47b51209ddef28e21e7453593be97d30b34aa5bc..e3f78f11da2f44bae2bbdc964b3c3078d4c53484 100644
--- a/core/modules/search/src/Hook/SearchHooks.php
+++ b/core/modules/search/src/Hook/SearchHooks.php
@@ -20,7 +20,7 @@ class SearchHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.search':
         $output = '';
@@ -71,6 +71,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/serialization/src/Hook/SerializationHooks.php b/core/modules/serialization/src/Hook/SerializationHooks.php
index 00ffa7913c5fa94474e5c955f600bb07390d453a..281303ae02f5927319b49b873162a61b4c70ce75 100644
--- a/core/modules/serialization/src/Hook/SerializationHooks.php
+++ b/core/modules/serialization/src/Hook/SerializationHooks.php
@@ -18,7 +18,7 @@ class SerializationHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.serialization':
         $output = '';
@@ -34,6 +34,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '<p>' . $this->t('For more information, see the <a href=":doc_url">online documentation for the Serialization module</a>.', [':doc_url' => 'https://www.drupal.org/documentation/modules/serialization']) . '</p>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/settings_tray/src/Hook/SettingsTrayHooks.php b/core/modules/settings_tray/src/Hook/SettingsTrayHooks.php
index c10a65d0f03997dc4addd71cb3d18e10774af2f6..d54c413425b14449807f809fb5d6b03d62b0628c 100644
--- a/core/modules/settings_tray/src/Hook/SettingsTrayHooks.php
+++ b/core/modules/settings_tray/src/Hook/SettingsTrayHooks.php
@@ -21,7 +21,7 @@ class SettingsTrayHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?array {
     switch ($route_name) {
       case 'help.page.settings_tray':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -49,6 +49,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return ['#markup' => $output];
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/shortcut/src/Hook/ShortcutHooks.php b/core/modules/shortcut/src/Hook/ShortcutHooks.php
index d751d6dc3648dbc2d3bbdae59c4b9c679eb6b469..f6686fbfcd0f5274ebd000ef8155d1fcfb6197fa 100644
--- a/core/modules/shortcut/src/Hook/ShortcutHooks.php
+++ b/core/modules/shortcut/src/Hook/ShortcutHooks.php
@@ -19,7 +19,7 @@ class ShortcutHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.shortcut':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -56,6 +56,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
           return $output;
         }
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/sqlite/src/Hook/SqliteHooks.php b/core/modules/sqlite/src/Hook/SqliteHooks.php
index f6fe55aa3d7882aff311a9b6222ce9bc241fd565..0dde128bcc9477912496dd477570e702e4660790 100644
--- a/core/modules/sqlite/src/Hook/SqliteHooks.php
+++ b/core/modules/sqlite/src/Hook/SqliteHooks.php
@@ -17,7 +17,7 @@ class SqliteHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.sqlite':
         $output = '';
@@ -27,6 +27,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         ]) . '</p>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/syslog/src/Hook/SyslogHooks.php b/core/modules/syslog/src/Hook/SyslogHooks.php
index 4b45feec66b1e6c363c86c948b566cc263599332..9ba5c3c8d529cefda83f7e08101b02fcfca2d03e 100644
--- a/core/modules/syslog/src/Hook/SyslogHooks.php
+++ b/core/modules/syslog/src/Hook/SyslogHooks.php
@@ -20,7 +20,7 @@ class SyslogHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.syslog':
         $output = '';
@@ -35,6 +35,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/system/src/Hook/SystemHooks.php b/core/modules/system/src/Hook/SystemHooks.php
index 0c877d2b35b8702bc036a6491169bac53149dee4..2df70cfa16c0278b92aa0d42ceb13667a7adce0b 100644
--- a/core/modules/system/src/Hook/SystemHooks.php
+++ b/core/modules/system/src/Hook/SystemHooks.php
@@ -34,7 +34,7 @@ class SystemHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.system':
         $output = '';
@@ -154,6 +154,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
       case 'system.status':
         return '<p>' . $this->t("Here you can find a short overview of your site's parameters as well as any problems detected with your installation. It may be useful to copy and paste this information into support requests filed on Drupal.org's support forums and project issue queues. Before filing a support request, ensure that your web server meets the <a href=\":system-requirements\">system requirements.</a>", [':system-requirements' => 'https://www.drupal.org/docs/system-requirements']) . '</p>';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/system/tests/modules/experimental_module_requirements_test/src/Hook/ExperimentalModuleRequirementsTestHooks.php b/core/modules/system/tests/modules/experimental_module_requirements_test/src/Hook/ExperimentalModuleRequirementsTestHooks.php
index 21fb30ec2a4661a10df53e26fb83d0939f39c073..91246700ee78694ad952446a2f90e9752436fc74 100644
--- a/core/modules/system/tests/modules/experimental_module_requirements_test/src/Hook/ExperimentalModuleRequirementsTestHooks.php
+++ b/core/modules/system/tests/modules/experimental_module_requirements_test/src/Hook/ExperimentalModuleRequirementsTestHooks.php
@@ -18,12 +18,13 @@ class ExperimentalModuleRequirementsTestHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name) {
+  public function help($route_name): ?\Stringable {
     switch ($route_name) {
       case 'help.page.experimental_module_requirements_test':
         // Make the help text conform to core standards.
         return $this->t('The Experimental Requirements Test module is not done yet. It may eat your data, but you can read the <a href=":url">online documentation for the Experimental Requirements Test module</a>.', [':url' => 'http://www.example.com']);
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/system/tests/modules/experimental_module_test/src/Hook/ExperimentalModuleTestHooks.php b/core/modules/system/tests/modules/experimental_module_test/src/Hook/ExperimentalModuleTestHooks.php
index c76245d203126b15516d71d26184a9ada7cfbcbf..07be32d09118cf651e020270769eff5027d3babf 100644
--- a/core/modules/system/tests/modules/experimental_module_test/src/Hook/ExperimentalModuleTestHooks.php
+++ b/core/modules/system/tests/modules/experimental_module_test/src/Hook/ExperimentalModuleTestHooks.php
@@ -19,12 +19,13 @@ class ExperimentalModuleTestHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?\Stringable {
     switch ($route_name) {
       case 'help.page.experimental_module_test':
         // Make the help text conform to core standards.
         return $this->t('The Experimental Test module is not done yet. It may eat your data, but you can read the <a href=":url">online documentation for the Experimental Test module</a>.', [':url' => 'http://www.example.com']);
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/system/tests/modules/system_test/src/Hook/SystemTestHooks.php b/core/modules/system/tests/modules/system_test/src/Hook/SystemTestHooks.php
index 62b9b9633a11235d35f2dee8f464aea1a598166d..1793efe207d3d21e6ee00d906781bcbcddad6316 100644
--- a/core/modules/system/tests/modules/system_test/src/Hook/SystemTestHooks.php
+++ b/core/modules/system/tests/modules/system_test/src/Hook/SystemTestHooks.php
@@ -20,7 +20,7 @@ class SystemTestHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.system_test':
         $output = '';
@@ -28,6 +28,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '<p>' . $this->t('This is a test help page for the system_test module for the purpose of testing if the "Help" link displays properly.') . '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/taxonomy/src/Hook/TaxonomyHooks.php b/core/modules/taxonomy/src/Hook/TaxonomyHooks.php
index 51c122c91f45bd2ac2f6a4002c4900e921685a98..4cc0a6f6eb613ce32ebdeb0edf1dd40b14a25b49 100644
--- a/core/modules/taxonomy/src/Hook/TaxonomyHooks.php
+++ b/core/modules/taxonomy/src/Hook/TaxonomyHooks.php
@@ -20,7 +20,7 @@ class TaxonomyHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.taxonomy':
         $field_ui_url = \Drupal::moduleHandler()->moduleExists('field_ui') ? Url::fromRoute('help.page', ['name' => 'field_ui'])->toString() : '#';
@@ -70,6 +70,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output = '<p>' . $this->t('Taxonomy is for categorizing content. Terms are grouped into vocabularies. For example, a vocabulary called "Fruit" would contain the terms "Apple" and "Banana".') . '</p>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/telephone/src/Hook/TelephoneHooks.php b/core/modules/telephone/src/Hook/TelephoneHooks.php
index 6813600e5a7fe9d06b5abc3836530ff149339d1a..e28384a100906f5f43b58f1fa5b1228b6af1906b 100644
--- a/core/modules/telephone/src/Hook/TelephoneHooks.php
+++ b/core/modules/telephone/src/Hook/TelephoneHooks.php
@@ -19,7 +19,7 @@ class TelephoneHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.telephone':
         $output = '';
@@ -46,6 +46,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/text/src/Hook/TextHooks.php b/core/modules/text/src/Hook/TextHooks.php
index 21835e4063a41362b64ed412e2d709e368f73df3..bced115286ffa78a45e2ba5c8aaf51a0f1225e15 100644
--- a/core/modules/text/src/Hook/TextHooks.php
+++ b/core/modules/text/src/Hook/TextHooks.php
@@ -18,7 +18,7 @@ class TextHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.text':
         $output = '';
@@ -53,6 +53,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
 }
diff --git a/core/modules/toolbar/src/Hook/ToolbarHooks.php b/core/modules/toolbar/src/Hook/ToolbarHooks.php
index aec157c03434e2a98e83f274bde4ba9117c237a3..3b6ef42368a18bdf9c0a7f3414e61280e4efb833 100644
--- a/core/modules/toolbar/src/Hook/ToolbarHooks.php
+++ b/core/modules/toolbar/src/Hook/ToolbarHooks.php
@@ -19,7 +19,7 @@ class ToolbarHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.toolbar':
         $output = '<h2>' . $this->t('About') . '</h2>';
@@ -33,6 +33,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/update/src/Hook/UpdateHooks.php b/core/modules/update/src/Hook/UpdateHooks.php
index 0e7a748e1c96e3b36681783d2299c803be0311e8..85c19a5708ccfe802dc9a9470f5a78660b5b714c 100644
--- a/core/modules/update/src/Hook/UpdateHooks.php
+++ b/core/modules/update/src/Hook/UpdateHooks.php
@@ -19,7 +19,7 @@ class UpdateHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.update':
         $output = '';
@@ -60,6 +60,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
           ':updates' => Url::fromRoute('update.status')->toString(),
         ]) . '</p>';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/user/src/Hook/UserHooks.php b/core/modules/user/src/Hook/UserHooks.php
index ec1ff9bc7e4132b2e609843ee9d1b02863bba962..a5d8c173308a7b4314a131eb254c7e4bac1bfb03 100644
--- a/core/modules/user/src/Hook/UserHooks.php
+++ b/core/modules/user/src/Hook/UserHooks.php
@@ -32,7 +32,7 @@ class UserHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.user':
         $output = '';
@@ -87,6 +87,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
       case 'entity.entity_view_display.user.default':
         return '<p>' . $this->t('This form lets administrators configure how fields should be displayed when rendering a user profile page.') . '</p>';
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/views/src/Hook/ViewsHooks.php b/core/modules/views/src/Hook/ViewsHooks.php
index 24fd71646f06483f995eb88aa747712b79f50a5a..6facc63de6de6d48a1989f4f1aecd4eab5fe4c48 100644
--- a/core/modules/views/src/Hook/ViewsHooks.php
+++ b/core/modules/views/src/Hook/ViewsHooks.php
@@ -27,7 +27,7 @@ class ViewsHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.views':
         $output = '';
@@ -54,6 +54,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/views_ui/src/Hook/ViewsUiHooks.php b/core/modules/views_ui/src/Hook/ViewsUiHooks.php
index da70548154f362e746a2e860a068390f9732c5f5..2d076aca439185b17f5b39843e2c7b32ede3b50b 100644
--- a/core/modules/views_ui/src/Hook/ViewsUiHooks.php
+++ b/core/modules/views_ui/src/Hook/ViewsUiHooks.php
@@ -23,7 +23,7 @@ class ViewsUiHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.views_ui':
         $output = '';
@@ -57,6 +57,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '</dl>';
         return $output;
     }
+    return NULL;
   }
 
   /**
diff --git a/core/modules/workflows/src/Hook/WorkflowsHooks.php b/core/modules/workflows/src/Hook/WorkflowsHooks.php
index 833a493bf213d3d845ebda13c3d4de10944594f2..66ac4a7793cf5fe78ff9577531e44d4a50c797d5 100644
--- a/core/modules/workflows/src/Hook/WorkflowsHooks.php
+++ b/core/modules/workflows/src/Hook/WorkflowsHooks.php
@@ -18,7 +18,7 @@ class WorkflowsHooks {
    * Implements hook_help().
    */
   #[Hook('help')]
-  public function help($route_name, RouteMatchInterface $route_match) {
+  public function help($route_name, RouteMatchInterface $route_match): ?string {
     switch ($route_name) {
       case 'help.page.workflows':
         $content_moderation_url = NULL;
@@ -60,6 +60,7 @@ public function help($route_name, RouteMatchInterface $route_match) {
         $output .= '<dl>';
         return $output;
     }
+    return NULL;
   }
 
 }