diff --git a/typo3/sysext/backend/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/backend/Classes/Compatibility/SlotReplacement.php
deleted file mode 100644
index 7deeb99956e573b141ae4fb114038e9750345539..0000000000000000000000000000000000000000
--- a/typo3/sysext/backend/Classes/Compatibility/SlotReplacement.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-namespace TYPO3\CMS\Backend\Compatibility;
-
-use TYPO3\CMS\Backend\Backend\Event\SystemInformationToolbarCollectorEvent;
-use TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem;
-use TYPO3\CMS\Backend\Controller\EditDocumentController;
-use TYPO3\CMS\Backend\Controller\Event\AfterFormEnginePageInitializedEvent;
-use TYPO3\CMS\Backend\Controller\Event\BeforeFormEnginePageInitializedEvent;
-use TYPO3\CMS\Backend\LoginProvider\Event\ModifyPageLayoutOnLoginProviderSelectionEvent;
-use TYPO3\CMS\Backend\LoginProvider\UsernamePasswordLoginProvider;
-use TYPO3\CMS\Backend\Utility\BackendUtility;
-use TYPO3\CMS\Core\Configuration\Event\ModifyLoadedPageTsConfigEvent;
-use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher;
-
-/**
- * This class provides a replacement for all existing signals in EXT:backend of TYPO3 Core, which now act as a
- * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation.
- *
- * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should
- * switch to PSR-14 event listeners.
- */
-class SlotReplacement
-{
-    /**
-     * @var SignalSlotDispatcher
-     */
-    protected $signalSlotDispatcher;
-
-    public function __construct(SignalSlotDispatcher $signalSlotDispatcher)
-    {
-        $this->signalSlotDispatcher = $signalSlotDispatcher;
-    }
-
-    public function onSystemInformationToolbarEvent(SystemInformationToolbarCollectorEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            SystemInformationToolbarItem::class,
-            'getSystemInformation',
-            [$event->getToolbarItem()]
-        );
-        $this->signalSlotDispatcher->dispatch(
-            SystemInformationToolbarItem::class,
-            'loadMessages',
-            [$event->getToolbarItem()]
-        );
-    }
-
-    public function onLoginProviderGetPageRenderer(ModifyPageLayoutOnLoginProviderSelectionEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            UsernamePasswordLoginProvider::class,
-            'getPageRenderer',
-            [$event->getPageRenderer()]
-        );
-    }
-
-    public function onPreInitEditDocumentController(BeforeFormEnginePageInitializedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            EditDocumentController::class,
-            'preInitAfter',
-            [$event->getController(), 'request' => $event->getRequest()]
-        );
-    }
-
-    public function onInitEditDocumentController(AfterFormEnginePageInitializedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            EditDocumentController::class,
-            'initAfter',
-            [$event->getController(), 'request' => $event->getRequest()]
-        );
-    }
-
-    public function emitGetPagesTSconfigPreIncludeSignalBackendUtility(ModifyLoadedPageTsConfigEvent $event): void
-    {
-        $rootLine = $event->getRootLine();
-        $page = end($rootLine);
-        $signalArguments = $this->signalSlotDispatcher->dispatch(
-            BackendUtility::class,
-            'getPagesTSconfigPreInclude',
-            [$event->getTsConfig(), (int)$page['uid'], $rootLine, false]
-        );
-        $event->setTsConfig($signalArguments[0]);
-    }
-}
diff --git a/typo3/sysext/backend/Configuration/Services.yaml b/typo3/sysext/backend/Configuration/Services.yaml
index 48dfef702aac5fc36e7da8c22ee6bf9c5863ed02..31473bb36ee0cc0fb4c4a8fc868d8b85fcf2e27b 100644
--- a/typo3/sysext/backend/Configuration/Services.yaml
+++ b/typo3/sysext/backend/Configuration/Services.yaml
@@ -51,30 +51,6 @@ services:
   TYPO3\CMS\Backend\Form\FormDataProvider\SiteDatabaseEditRow:
     public: true
 
-  # Listener for old Signal Slots
-  TYPO3\CMS\Backend\Compatibility\SlotReplacement:
-    tags:
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onSystemInformationToolbarEvent'
-        event: TYPO3\CMS\Backend\Backend\Event\SystemInformationToolbarCollectorEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onLoginProviderGetPageRenderer'
-        event: TYPO3\CMS\Backend\LoginProvider\Event\ModifyPageLayoutOnLoginProviderSelectionEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitGetPagesTSconfigPreIncludeSignalBackendUtility'
-        event: TYPO3\CMS\Core\Configuration\Event\ModifyLoadedPageTsConfigEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onPreInitEditDocumentController'
-        event: TYPO3\CMS\Backend\Controller\Event\BeforeFormEnginePageInitializedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onInitEditDocumentController'
-        event: TYPO3\CMS\Backend\Controller\Event\AfterFormEnginePageInitializedEvent
-
   # Category security checks for backend users
   TYPO3\CMS\Backend\Security\CategoryPermissionsAspect:
     tags:
diff --git a/typo3/sysext/beuser/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/beuser/Classes/Compatibility/SlotReplacement.php
deleted file mode 100644
index aa8468e75ed205c3f81aa8f6033ec91642815b81..0000000000000000000000000000000000000000
--- a/typo3/sysext/beuser/Classes/Compatibility/SlotReplacement.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-namespace TYPO3\CMS\Beuser\Compatibility;
-
-use TYPO3\CMS\Backend\Authentication\Event\SwitchUserEvent;
-use TYPO3\CMS\Beuser\Controller\BackendUserController;
-use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher;
-
-/**
- * This class provides a replacement for all existing signals in EXT:beuser of TYPO3 Core, which now act as a
- * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation.
- *
- * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should
- * switch to PSR-14 event listeners.
- */
-class SlotReplacement
-{
-    /**
-     * @var SignalSlotDispatcher
-     */
-    protected $signalSlotDispatcher;
-
-    public function __construct(SignalSlotDispatcher $signalSlotDispatcher)
-    {
-        $this->signalSlotDispatcher = $signalSlotDispatcher;
-    }
-
-    public function onSwitchUser(SwitchUserEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            BackendUserController::class,
-            'switchUser',
-            [$event->getTargetUser()]
-        );
-    }
-}
diff --git a/typo3/sysext/beuser/Configuration/Services.yaml b/typo3/sysext/beuser/Configuration/Services.yaml
index 7e181563c246eecda7f2a4703d3d4f3e403e47b7..2415fd433f1be46ab9d679a99d8fd4cd7ed2a0b8 100644
--- a/typo3/sysext/beuser/Configuration/Services.yaml
+++ b/typo3/sysext/beuser/Configuration/Services.yaml
@@ -6,11 +6,3 @@ services:
 
   TYPO3\CMS\Beuser\:
     resource: '../Classes/*'
-
-  # Listener for old Signal Slots
-  TYPO3\CMS\Beuser\Compatibility\SlotReplacement:
-    tags:
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onSwitchUser'
-        event: TYPO3\CMS\Backend\Authentication\Event\SwitchUserEvent
diff --git a/typo3/sysext/core/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/core/Classes/Compatibility/SlotReplacement.php
deleted file mode 100644
index 6f6590f3f89190e8f344489111dc27a4e739ab23..0000000000000000000000000000000000000000
--- a/typo3/sysext/core/Classes/Compatibility/SlotReplacement.php
+++ /dev/null
@@ -1,700 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-namespace TYPO3\CMS\Core\Compatibility;
-
-use Psr\EventDispatcher\EventDispatcherInterface;
-use TYPO3\CMS\Core\Configuration\Event\AfterTcaCompilationEvent;
-use TYPO3\CMS\Core\Database\Event\AlterTableDefinitionStatementsEvent;
-use TYPO3\CMS\Core\Database\ReferenceIndex;
-use TYPO3\CMS\Core\Database\Schema\Exception\UnexpectedSignalReturnValueTypeException;
-use TYPO3\CMS\Core\Database\Schema\SqlReader;
-use TYPO3\CMS\Core\Database\SoftReferenceIndex;
-use TYPO3\CMS\Core\DataHandling\Event\AppendLinkHandlerElementsEvent;
-use TYPO3\CMS\Core\DataHandling\Event\IsTableExcludedFromReferenceIndexEvent;
-use TYPO3\CMS\Core\Imaging\Event\ModifyIconForResourcePropertiesEvent;
-use TYPO3\CMS\Core\Imaging\IconFactory;
-use TYPO3\CMS\Core\Mail\Event\AfterMailerInitializationEvent;
-use TYPO3\CMS\Core\Mail\Mailer;
-use TYPO3\CMS\Core\Package\Event\PackagesMayHaveChangedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileAddedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileAddedToIndexEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileContentsSetEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileCopiedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileCreatedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileDeletedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileMarkedAsMissingEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataCreatedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataDeletedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataUpdatedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileMovedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileProcessingEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileRemovedFromIndexEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileRenamedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileReplacedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileUpdatedInIndexEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFolderAddedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFolderCopiedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFolderDeletedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFolderMovedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFolderRenamedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterResourceStorageInitializationEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileAddedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileContentsSetEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileCopiedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileCreatedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileDeletedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileMovedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileProcessingEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileRenamedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileReplacedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFolderAddedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFolderCopiedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFolderDeletedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFolderMovedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFolderRenamedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeResourceStorageInitializationEvent;
-use TYPO3\CMS\Core\Resource\Event\EnrichFileMetaDataEvent;
-use TYPO3\CMS\Core\Resource\Event\GeneratePublicUrlForResourceEvent;
-use TYPO3\CMS\Core\Resource\Event\SanitizeFileNameEvent;
-use TYPO3\CMS\Core\Resource\Index\FileIndexRepository;
-use TYPO3\CMS\Core\Resource\Index\MetaDataRepository;
-use TYPO3\CMS\Core\Resource\ResourceFactory;
-use TYPO3\CMS\Core\Resource\ResourceStorage;
-use TYPO3\CMS\Core\Resource\Service\FileProcessingService;
-use TYPO3\CMS\Core\Tree\Event\ModifyTreeDataEvent;
-use TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider;
-use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
-use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher;
-
-/**
- * This class provides a replacement for all existing signals in TYPO3 Core, which now act as a simple wrapper
- * for PSR-14 events with a simple ("first prioritized") listener implementation.
- *
- * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should
- * switch to PSR-14 event listeners.
- */
-class SlotReplacement
-{
-    /**
-     * @var SignalSlotDispatcher
-     */
-    protected $signalSlotDispatcher;
-
-    /**
-     * @var EventDispatcherInterface
-     */
-    protected $eventDispatcher;
-
-    public function __construct(SignalSlotDispatcher $signalSlotDispatcher, EventDispatcherInterface $eventDispatcher)
-    {
-        $this->signalSlotDispatcher = $signalSlotDispatcher;
-        $this->eventDispatcher = $eventDispatcher;
-    }
-
-    public function onMetaDataRepositoryRecordPostRetrieval(EnrichFileMetaDataEvent $event): void
-    {
-        $data = $event->getRecord();
-        $data = new \ArrayObject($data);
-        $this->signalSlotDispatcher->dispatch(MetaDataRepository::class, 'recordPostRetrieval', [$data]);
-        $event->setRecord($data->getArrayCopy());
-    }
-
-    public function onMetaDataRepositoryRecordUpdated(AfterFileMetaDataUpdatedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(MetaDataRepository::class, 'recordUpdated', [$event->getRecord()]);
-    }
-
-    public function onMetaDataRepositoryRecordCreated(AfterFileMetaDataCreatedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(MetaDataRepository::class, 'recordCreated', [$event->getRecord()]);
-    }
-
-    public function onMetaDataRepositoryRecordDeleted(AfterFileMetaDataDeletedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(MetaDataRepository::class, 'recordDeleted', [$event->getFileUid()]);
-    }
-
-    public function onFileIndexRepositoryRecordUpdated(AfterFileUpdatedInIndexEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            FileIndexRepository::class,
-            'recordUpdated',
-            [$event->getRelevantProperties()]
-        );
-    }
-
-    public function onFileIndexRepositoryRecordCreated(AfterFileAddedToIndexEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(FileIndexRepository::class, 'recordCreated', [$event->getRecord()]);
-    }
-
-    public function onFileIndexRepositoryRecordMarkedAsMissing(AfterFileMarkedAsMissingEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            FileIndexRepository::class,
-            'recordMarkedAsMissing',
-            [$event->getFileUid()]
-        );
-    }
-
-    public function onFileIndexRepositoryRecordDeleted(AfterFileRemovedFromIndexEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(FileIndexRepository::class, 'recordDeleted', [$event->getFileUid()]);
-    }
-
-    public function onResourceFactoryPreProcessStorage(BeforeResourceStorageInitializationEvent $event): void
-    {
-        [, $uid, $recordData, $fileIdentifier] = $this->signalSlotDispatcher->dispatch(
-            ResourceFactory::class,
-            'preProcessStorage',
-            [GeneralUtility::makeInstance(ResourceFactory::class), $event->getStorageUid(), $event->getRecord(), $event->getFileIdentifier()]
-        );
-        $event->setStorageUid($uid);
-        $event->setRecord($recordData);
-        $event->setFileIdentifier($fileIdentifier);
-    }
-
-    public function onResourceFactoryPostProcessStorage(AfterResourceStorageInitializationEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceFactory::class,
-            'postProcessStorage',
-            [GeneralUtility::makeInstance(ResourceFactory::class), $event->getStorage()]
-        );
-    }
-
-    public function onFileProcessingServiceEmitPreFileProcessSignal(BeforeFileProcessingEvent $event): void
-    {
-        $service = GeneralUtility::makeInstance(
-            FileProcessingService::class,
-            $event->getFile()->getStorage(),
-            $event->getDriver(),
-            $this->eventDispatcher
-        );
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            FileProcessingService::SIGNAL_PreFileProcess,
-            [
-                $service,
-                $event->getDriver(),
-                $event->getProcessedFile(),
-                $event->getFile(),
-                $event->getTaskType(),
-                $event->getConfiguration()
-            ]
-        );
-    }
-
-    public function onFileProcessingServiceEmitPostFileProcessSignal(AfterFileProcessingEvent $event): void
-    {
-        $service = GeneralUtility::makeInstance(
-            FileProcessingService::class,
-            $event->getFile()->getStorage(),
-            $event->getDriver(),
-            $this->eventDispatcher
-        );
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            FileProcessingService::SIGNAL_PostFileProcess,
-            [
-                $service,
-                $event->getDriver(),
-                $event->getProcessedFile(),
-                $event->getFile(),
-                $event->getTaskType(),
-                $event->getConfiguration()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitSanitizeFileNameSignal(SanitizeFileNameEvent $event): void
-    {
-        [$fileName] = $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_SanitizeFileName,
-            [
-                $event->getFileName(),
-                $event->getTargetFolder(),
-                $event->getStorage(),
-                $event->getDriver()
-            ]
-        );
-        $event->setFileName($fileName);
-    }
-
-    public function onResourceStorageEmitPreFileAddSignal(BeforeFileAddedEvent $event): void
-    {
-        $targetFileName = $event->getFileName();
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFileAdd,
-            [
-                &$targetFileName,
-                $event->getTargetFolder(),
-                $event->getSourceFilePath(),
-                $event->getStorage(),
-                $event->getDriver()
-            ]
-        );
-        $event->setFileName($targetFileName);
-    }
-
-    public function onResourceStorageEmitPostFileAddSignal(AfterFileAddedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFileAdd,
-            [
-                $event->getFile(),
-                $event->getFolder()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreFileCopySignal(BeforeFileCopiedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFileCopy,
-            [
-                $event->getFile(),
-                $event->getFolder()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPostFileCopySignal(AfterFileCopiedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFileCopy,
-            [
-                $event->getFile(),
-                $event->getFolder()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreFileMoveSignal(BeforeFileMovedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFileMove,
-            [
-                $event->getFile(),
-                $event->getFolder(),
-                $event->getTargetFileName()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPostFileMoveSignal(AfterFileMovedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFileMove,
-            [
-                $event->getFile(),
-                $event->getFolder(),
-                $event->getOriginalFolder()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreFileRenameSignal(BeforeFileRenamedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFileRename,
-            [
-                $event->getFile(),
-                $event->getTargetFileName()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPostFileRenameSignal(AfterFileRenamedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFileRename,
-            [
-                $event->getFile(),
-                $event->getTargetFileName()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreFileReplaceSignal(BeforeFileReplacedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFileReplace,
-            [
-                $event->getFile(),
-                $event->getLocalFilePath()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPostFileReplaceSignal(AfterFileReplacedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFileReplace,
-            [
-                $event->getFile(),
-                $event->getLocalFilePath()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreFileCreateSignal(BeforeFileCreatedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFileCreate,
-            [
-                $event->getFileName(),
-                $event->getFolder()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPostFileCreateSignal(AfterFileCreatedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFileCreate,
-            [
-                $event->getFileName(),
-                $event->getFolder()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreFileDeleteSignal(BeforeFileDeletedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFileDelete,
-            [
-                $event->getFile()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPostFileDeleteSignal(AfterFileDeletedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFileDelete,
-            [
-                $event->getFile()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreFileSetContentsSignal(BeforeFileContentsSetEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFileSetContents,
-            [
-                $event->getFile(),
-                $event->getContent()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPostFileSetContentsSignal(AfterFileContentsSetEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFileSetContents,
-            [
-                $event->getFile(),
-                $event->getContent()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreFolderAddSignal(BeforeFolderAddedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFolderAdd,
-            [
-                $event->getParentFolder(),
-                $event->getFolderName()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPostFolderAddSignal(AfterFolderAddedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFolderAdd,
-            [
-                $event->getFolder()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreFolderCopySignal(BeforeFolderCopiedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFolderCopy,
-            [
-                $event->getFolder(),
-                $event->getTargetParentFolder(),
-                $event->getTargetFolderName()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPostFolderCopySignal(AfterFolderCopiedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFolderCopy,
-            [
-                $event->getFolder(),
-                $event->getTargetParentFolder(),
-                $event->getTargetFolder()->getName()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreFolderMoveSignal(BeforeFolderMovedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFolderMove,
-            [
-                $event->getFolder(),
-                $event->getTargetParentFolder(),
-                $event->getTargetFolderName()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPostFolderMoveSignal(AfterFolderMovedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFolderMove,
-            [
-                $event->getFolder(),
-                $event->getTargetParentFolder(),
-                $event->getTargetFolder()->getName(),
-                $event->getFolder()->getParentFolder()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreFolderRenameSignal(BeforeFolderRenamedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFolderRename,
-            [
-                $event->getFolder(),
-                $event->getTargetName()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPostFolderRenameSignal(AfterFolderRenamedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFolderRename,
-            [
-                $event->getFolder(),
-                $event->getFolder()->getName()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreFolderDeleteSignal(BeforeFolderDeletedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreFolderDelete,
-            [
-                $event->getFolder()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPostFolderDeleteSignal(AfterFolderDeletedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PostFolderDelete,
-            [
-                $event->getFolder()
-            ]
-        );
-    }
-
-    public function onResourceStorageEmitPreGeneratePublicUrlSignal(GeneratePublicUrlForResourceEvent $event): void
-    {
-        $publicUrl = $event->getPublicUrl();
-        $urlData = ['publicUrl' => &$publicUrl];
-        $this->signalSlotDispatcher->dispatch(
-            ResourceStorage::class,
-            ResourceStorage::SIGNAL_PreGeneratePublicUrl,
-            [
-                $event->getStorage(),
-                $event->getDriver(),
-                $event->getResource(),
-                $event->isRelativeToCurrentScript(),
-                $urlData
-            ]
-        );
-        $event->setPublicUrl($urlData['publicUrl']);
-    }
-
-    /**
-     * ReferenceIndex and SoftReferenceIndex
-     */
-    public function onReferenceIndexShouldExcludeTableFromReferenceIndexSignal(
-        IsTableExcludedFromReferenceIndexEvent $event
-    ): void {
-        $excludeTable = $event->isTableExcluded();
-        $this->signalSlotDispatcher->dispatch(
-            ReferenceIndex::class,
-            'shouldExcludeTableFromReferenceIndex',
-            [
-                $event->getTable(),
-                &$excludeTable
-            ]
-        );
-        if ($excludeTable) {
-            $event->markAsExcluded();
-        }
-    }
-
-    public function onSoftReferenceIndexSetTypoLinkPartsElementSignal(AppendLinkHandlerElementsEvent $event): void
-    {
-        $linkHandlerFound = false;
-        $result = $this->signalSlotDispatcher->dispatch(
-            SoftReferenceIndex::class,
-            'setTypoLinkPartsElement',
-            [
-                $linkHandlerFound,
-                $event->getLinkParts(),
-                $event->getContent(),
-                $event->getElements(),
-                $event->getIdx(),
-                $event->getTokenId()
-            ]
-        );
-        if ($result[0]) {
-            $event->setLinkParts($result[1]);
-            $event->setContent($result[2]);
-            $event->addElements($result[3]);
-        }
-    }
-
-    /**
-     * Imaging-related
-     */
-    public function onIconFactoryEmitBuildIconForResourceSignal(ModifyIconForResourcePropertiesEvent $event): void
-    {
-        $result = $this->signalSlotDispatcher->dispatch(
-            IconFactory::class,
-            'buildIconForResourceSignal',
-            [
-                $event->getResource(),
-                $event->getSize(),
-                $event->getOptions(),
-                $event->getIconIdentifier(),
-                $event->getOverlayIdentifier()
-            ]
-        );
-        $event->setIconIdentifier($result[3]);
-        $event->setOverlayIdentifier($result[4]);
-    }
-
-    public function onExtensionManagementUtilityTcaIsBeingBuilt(AfterTcaCompilationEvent $event): void
-    {
-        [$tca] = $this->signalSlotDispatcher->dispatch(
-            ExtensionManagementUtility::class,
-            'tcaIsBeingBuilt',
-            [
-                $event->getTca()
-            ]
-        );
-        $event->setTca($tca);
-    }
-
-    public function onSqlReaderEmitTablesDefinitionIsBeingBuiltSignal(AlterTableDefinitionStatementsEvent $event): void
-    {
-        // Using the old class name from the install tool here to keep backwards compatibility.
-        $signalReturn = $this->signalSlotDispatcher->dispatch(
-            'TYPO3\\CMS\\Install\\Service\\SqlExpectedSchemaService',
-            'tablesDefinitionIsBeingBuilt',
-            [$event->getSqlData()]
-        );
-
-        // This is important to support old associated returns
-        $signalReturn = array_values($signalReturn);
-        $sqlString = $signalReturn[0];
-        if (!is_array($sqlString)) {
-            throw new UnexpectedSignalReturnValueTypeException(
-                sprintf(
-                    'The signal %s of class %s returned a value of type %s, but array was expected.',
-                    'tablesDefinitionIsBeingBuilt',
-                    SqlReader::class,
-                    gettype($sqlString)
-                ),
-                1382351456
-            );
-        }
-        $event->setSqlData($sqlString);
-    }
-
-    public function onDatabaseTreeDataProviderEmitPostProcessTreeDataSignal(ModifyTreeDataEvent $event): void
-    {
-        if ($event->getProvider() instanceof DatabaseTreeDataProvider) {
-            $this->signalSlotDispatcher->dispatch(
-                DatabaseTreeDataProvider::class,
-                'PostProcessTreeData',
-                [$event->getProvider(), $event->getTreeData()]
-            );
-        }
-    }
-
-    public function packagesMayHaveChanged(PackagesMayHaveChangedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch('PackageManagement', 'packagesMayHaveChanged');
-    }
-
-    public function postInitializeMailer(AfterMailerInitializationEvent $event): void
-    {
-        if ($event->getMailer() instanceof Mailer) {
-            $this->signalSlotDispatcher->dispatch(Mailer::class, 'postInitializeMailer', [$event->getMailer()]);
-        }
-    }
-}
diff --git a/typo3/sysext/core/Classes/Resource/ResourceFactory.php b/typo3/sysext/core/Classes/Resource/ResourceFactory.php
index 48d50878ba155f84d0146384d67f803dfb717ebb..659e9bb89149721d02d2557d173f8d10740ebe9e 100644
--- a/typo3/sysext/core/Classes/Resource/ResourceFactory.php
+++ b/typo3/sysext/core/Classes/Resource/ResourceFactory.php
@@ -37,7 +37,7 @@ use TYPO3\CMS\Core\Utility\PathUtility;
 /**
  * Factory class for FAL objects
  */
-class ResourceFactory implements ResourceFactoryInterface, SingletonInterface
+class ResourceFactory implements SingletonInterface
 {
     /**
      * Gets a singleton instance of this class.
diff --git a/typo3/sysext/core/Classes/Resource/ResourceFactoryInterface.php b/typo3/sysext/core/Classes/Resource/ResourceFactoryInterface.php
deleted file mode 100644
index 2b947ab34d7db7f6bf34acf17af38b80f9b95bdf..0000000000000000000000000000000000000000
--- a/typo3/sysext/core/Classes/Resource/ResourceFactoryInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-namespace TYPO3\CMS\Core\Resource;
-
-/**
- * An interface containing constants for the resource factory
- *
- * @deprecated This interface will be removed in TYPO3 v11 as it bears no use anymore due to PSR-14 events.
- */
-interface ResourceFactoryInterface
-{
-    const SIGNAL_PreProcessStorage = 'preProcessStorage';
-    const SIGNAL_PostProcessStorage = 'postProcessStorage';
-}
diff --git a/typo3/sysext/core/Classes/Resource/ResourceStorageInterface.php b/typo3/sysext/core/Classes/Resource/ResourceStorageInterface.php
index 5da30a32d098d873bfb9f26f322aa6d7253e5a7a..ec714e8c0b07f0b80b8b42bbec2a5454bde7c551 100644
--- a/typo3/sysext/core/Classes/Resource/ResourceStorageInterface.php
+++ b/typo3/sysext/core/Classes/Resource/ResourceStorageInterface.php
@@ -20,146 +20,6 @@ namespace TYPO3\CMS\Core\Resource;
  */
 interface ResourceStorageInterface
 {
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_SanitizeFileName = 'sanitizeFileName';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFileAdd = 'preFileAdd';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFileAdd = 'postFileAdd';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFileCreate = 'preFileCreate';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFileCreate = 'postFileCreate';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFileCopy = 'preFileCopy';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFileCopy = 'postFileCopy';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFileMove = 'preFileMove';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFileMove = 'postFileMove';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFileDelete = 'preFileDelete';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFileDelete = 'postFileDelete';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFileRename = 'preFileRename';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFileRename = 'postFileRename';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFileReplace = 'preFileReplace';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFileReplace = 'postFileReplace';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFileSetContents = 'preFileSetContents';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFileSetContents = 'postFileSetContents';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFolderAdd = 'preFolderAdd';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFolderAdd = 'postFolderAdd';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFolderCopy = 'preFolderCopy';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFolderCopy = 'postFolderCopy';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFolderMove = 'preFolderMove';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFolderMove = 'postFolderMove';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFolderDelete = 'preFolderDelete';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFolderDelete = 'postFolderDelete';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFolderRename = 'preFolderRename';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFolderRename = 'postFolderRename';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreGeneratePublicUrl = 'preGeneratePublicUrl';
-
     /**
      * Capability for being browsable by (backend) users
      */
diff --git a/typo3/sysext/core/Classes/Resource/Service/FileProcessingService.php b/typo3/sysext/core/Classes/Resource/Service/FileProcessingService.php
index 36efbef16fae246aa8730d1d8659cbc2dda0238d..e67ea940a3062ba049120bf570fa3b774236813a 100644
--- a/typo3/sysext/core/Classes/Resource/Service/FileProcessingService.php
+++ b/typo3/sysext/core/Classes/Resource/Service/FileProcessingService.php
@@ -51,16 +51,6 @@ class FileProcessingService
      */
     protected $eventDispatcher;
 
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PreFileProcess = 'preFileProcess';
-
-    /**
-     * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead.
-     */
-    const SIGNAL_PostFileProcess = 'postFileProcess';
-
     /**
      * Creates this object.
      *
diff --git a/typo3/sysext/core/Configuration/Services.yaml b/typo3/sysext/core/Configuration/Services.yaml
index 4e3000f43087f223fc2c5ea4621390306d65092a..c6d3a3d083d2af50449f799617388c49984d39a9 100644
--- a/typo3/sysext/core/Configuration/Services.yaml
+++ b/typo3/sysext/core/Configuration/Services.yaml
@@ -93,202 +93,6 @@ services:
     shared: false
     public: true
 
-  # EventListeners
-  TYPO3\CMS\Core\Compatibility\SlotReplacement:
-    tags:
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onFileIndexRepositoryRecordCreated'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileAddedToIndexEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onFileIndexRepositoryRecordDeleted'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileRemovedFromIndexEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onFileIndexRepositoryRecordMarkedAsMissing'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileMarkedAsMissingEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onFileIndexRepositoryRecordUpdated'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileUpdatedInIndexEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onFileProcessingServiceEmitPostFileProcessSignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileProcessingEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onFileProcessingServiceEmitPreFileProcessSignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFileProcessingEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onMetaDataRepositoryRecordCreated'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataCreatedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onMetaDataRepositoryRecordDeleted'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataDeletedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onMetaDataRepositoryRecordPostRetrieval'
-        event: TYPO3\CMS\Core\Resource\Event\EnrichFileMetaDataEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onMetaDataRepositoryRecordUpdated'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataUpdatedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceFactoryPostProcessStorage'
-        event: TYPO3\CMS\Core\Resource\Event\AfterResourceStorageInitializationEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceFactoryPreProcessStorage'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeResourceStorageInitializationEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFileAddSignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileAddedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFileCopySignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileCopiedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFileCreateSignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileCreatedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFileDeleteSignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileDeletedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFileMoveSignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileMovedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFileRenameSignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileRenamedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFileReplaceSignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileReplacedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFileSetContentsSignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFileContentsSetEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFolderAddSignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFolderAddedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFolderCopySignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFolderCopiedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFolderDeleteSignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFolderDeletedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFolderMoveSignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFolderMovedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPostFolderRenameSignal'
-        event: TYPO3\CMS\Core\Resource\Event\AfterFolderRenamedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFileAddSignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFileAddedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFileCopySignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFileCopiedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFileCreateSignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFileCreatedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFileDeleteSignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFileDeletedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFileMoveSignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFileMovedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFileRenameSignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFileRenamedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFileReplaceSignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFileReplacedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFileSetContentsSignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFileContentsSetEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFolderAddSignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFolderAddedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFolderCopySignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFolderCopiedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFolderDeleteSignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFolderDeletedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFolderMoveSignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFolderMovedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreFolderRenameSignal'
-        event: TYPO3\CMS\Core\Resource\Event\BeforeFolderRenamedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitPreGeneratePublicUrlSignal'
-        event: TYPO3\CMS\Core\Resource\Event\GeneratePublicUrlForResourceEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onResourceStorageEmitSanitizeFileNameSignal'
-        event: TYPO3\CMS\Core\Resource\Event\SanitizeFileNameEvent
-      - name: event.listener,
-        identifier: 'legacy-slot'
-        method: 'onReferenceIndexShouldExcludeTableFromReferenceIndexSignal'
-        event: TYPO3\CMS\Core\DataHandling\Event\IsTableExcludedFromReferenceIndexEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onSoftReferenceIndexSetTypoLinkPartsElementSignal'
-        event: TYPO3\CMS\Core\DataHandling\Event\AppendLinkHandlerElementsEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onIconFactoryEmitBuildIconForResourceSignal'
-        event: TYPO3\CMS\Core\Imaging\Event\ModifyIconForResourcePropertiesEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onExtensionManagementUtilityTcaIsBeingBuilt'
-        event: TYPO3\CMS\Core\Configuration\Event\AfterTcaCompilationEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onSqlReaderEmitTablesDefinitionIsBeingBuiltSignal'
-        event: TYPO3\CMS\Core\Database\Event\AlterTableDefinitionStatementsEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onDatabaseTreeDataProviderEmitPostProcessTreeDataSignal'
-        event: TYPO3\CMS\Core\Tree\Event\ModifyTreeDataEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'packagesMayHaveChanged'
-        event: TYPO3\CMS\Core\Package\Event\PackagesMayHaveChangedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'postInitializeMailer'
-        event: TYPO3\CMS\Core\Mail\Event\AfterMailerInitializationEvent
-
   # FAL security checks for backend users
   TYPO3\CMS\Core\Resource\Security\StoragePermissionsAspect:
     tags:
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-91473-DeprecatedFunctionalityRemoved.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-91473-DeprecatedFunctionalityRemoved.rst
new file mode 100644
index 0000000000000000000000000000000000000000..8e8cced33dff5b3b184638e3b6632f2e00ab6ca4
--- /dev/null
+++ b/typo3/sysext/core/Documentation/Changelog/master/Breaking-91473-DeprecatedFunctionalityRemoved.rst
@@ -0,0 +1,192 @@
+.. include:: ../../Includes.txt
+
+===================================================
+Breaking: #91473 - Deprecated functionality removed
+===================================================
+
+See :issue:`91473`
+
+Description
+===========
+
+The following PHP classes that have been previously deprecated for v10 have been removed:
+
+The following PHP interfaces that have been previously deprecated for v10 have been removed:
+
+- :php:`\TYPO3\CMS\Core\Resource\ResourceFactoryInterface`
+
+The following PHP class aliases that have been previously deprecated for v10 have been removed:
+
+The following PHP class methods that have been previously deprecated for v10 have been removed:
+
+- :php:`\TYPO3\CMS\Extbase\Mvc\Controller\ActionController->emitBeforeCallActionMethodSignal`
+
+The following PHP static class methods that have been previously deprecated for v10 have been removed:
+
+The following PHP methods have been additionally deprecated and are a no-op now:
+
+The following methods changed signature according to previous deprecations in v10 at the end of the argument list:
+
+The following public class properties have been dropped:
+
+The following class methods have changed visibility:
+
+The following class properties have changed visibility:
+
+The following VieHelpers have changed:
+
+The following scheduler tasks have been removed:
+
+The following user TSconfig options have been dropped:
+
+The following TypoScript options have been dropped:
+
+The following constants have been dropped:
+
+The following class constants have been dropped:
+
+- :php:`\TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider::SIGNAL_PostProcessTreeData`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreProcessStorage`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostProcessStorage`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileAdd`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileCopy`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileCreate`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileDelete`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileMove`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileRename`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileReplace`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileSetContents`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderAdd`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderCopy`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderDelete`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderMove`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderRename`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileAdd`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileCopy`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileCreate`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileDelete`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileMove`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileRename`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileReplace`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileSetContents`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderAdd`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderCopy`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderDelete`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderMove`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderRename`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreGeneratePublicUrl`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_SanitizeFileName`
+- :php:`\TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PreFileProcess`
+- :php:`\TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PostFileProcess`
+- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_BeforeCaching`
+- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_PostProcesss`
+- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GetDataArray_PostProcesss`
+- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_SortDataArray_PostProcesss`
+
+The following class constants have been set to protected:
+
+The following global options are ignored:
+
+The following language files and aliases have been removed:
+
+The following global variables have been removed:
+
+The following hooks have been removed:
+
+The following hooks don't pass the class reference anymore:
+
+The following signals have been removed:
+
+- :php:`PackageManagement::packagesMayHaveChanged`
+- :php:`\TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem::getSystemInformation`
+- :php:`\TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem::loadMessages`
+- :php:`\TYPO3\CMS\Backend\LoginProvider\UsernamePasswordLoginProvider::getPageRenderer`
+- :php:`\TYPO3\CMS\Backend\Controller\EditDocumentController::preInitAfter`
+- :php:`\TYPO3\CMS\Backend\Controller\EditDocumentController::initAfter`
+- :php:`\TYPO3\CMS\Backend\Utility\BackendUtility::getPagesTSconfigPreInclude`
+- :php:`\TYPO3\CMS\Beuser\Controller\BackendUserController::switchUser`
+- :php:`\TYPO3\CMS\Core\Database\SoftReferenceIndex::setTypoLinkPartsElement`
+- :php:`\TYPO3\CMS\Core\Database\ReferenceIndex::shouldExcludeTableFromReferenceIndex`
+- :php:`\TYPO3\CMS\Core\Imaging\IconFactory::buildIconForResourceSignal`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreProcessStorage`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostProcessStorage`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileAdd`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileCopy`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileCreate`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileDelete`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileMove`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileRename`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileReplace`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileSetContents`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderAdd`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderCopy`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderDelete`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderMove`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderRename`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileAdd`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileCopy`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileCreate`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileDelete`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileMove`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileRename`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileReplace`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileSetContents`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderAdd`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderCopy`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderDelete`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderMove`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderRename`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreGeneratePublicUrl`
+- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_SanitizeFileName`
+- :php:`\TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PreFileProcess`
+- :php:`\TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PostFileProcess`
+- :php:`\TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider::PostProcessTreeData`
+- :php:`\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::tcaIsBeingBuilt`
+- :php:`\TYPO3\CMS\Extbase\Mvc\Dispatcher::afterRequestDispatch`
+- :php:`\TYPO3\CMS\Extbase\Mvc\Controller\ActionController::beforeCallActionMethod`
+- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper::afterMappingSingleRow`
+- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Backend::beforeGettingObjectData`
+- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Backend::afterGettingObjectData`
+- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Backend::endInsertObject`
+- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Backend::afterUpdateObject`
+- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Backend::afterPersistObject`
+- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Backend::afterRemoveObject`
+- :php:`\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::afterExtensionInstall`
+- :php:`\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::afterExtensionUninstall`
+- :php:`\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::afterExtensionT3DImport`
+- :php:`\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::afterExtensionStaticSqlImport`
+- :php:`\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::afterExtensionFileImport`
+- :php:`\TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::willInstallExtensions`
+- :php:`\TYPO3\CMS\Extensionmanager\ViewHelper\ProcessAvailableActionsViewHelper::processActions`
+- :php:`\TYPO3\CMS\Install\Service\SqlExpectedSchemaService::tablesDefinitionIsBeingBuilt`
+- :php:`\TYPO3\CMS\Impexp\Utility\ImportExportUtility::afterImportExportInitialisation`
+- :php:`\TYPO3\CMS\Lang\Service\TranslationService::postProcessMirrorUrl`
+- :php:`\TYPO3\CMS\Linkvalidator\LinkAnalyzer::beforeAnalyzeRecord`
+- :php:`\TYPO3\CMS\Seo\Canonical\CanonicalGenerator::beforeGeneratingCanonical`
+- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_BeforeCaching`
+- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_PostProcesss`
+- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GetDataArray_PostProcesss`
+- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_SortDataArray_PostProcesss`
+
+The following features are now always enabled:
+
+The following features have been removed:
+
+The following database tables have been removed:
+
+The following database fields have been removed:
+
+The following php doc annotations have been removed:
+
+The following global JavaScript functions have been removed:
+
+The following JavaScript modules have been removed:
+
+The following global instances have been removed:
+
+Impact
+======
+
+Instantiating or requiring the PHP classes or calling the PHP methods directly will trigger PHP :php:`E_ERROR` errors.
+
+.. index:: Backend, CLI, FlexForm, Fluid, Frontend, JavaScript, LocalConfiguration, PHP-API, TCA, TSConfig, TypoScript, PartiallyScanned
diff --git a/typo3/sysext/extbase/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/extbase/Classes/Compatibility/SlotReplacement.php
deleted file mode 100644
index f3da2ddefc887c453ed62ccd77cea54d0d24f2ae..0000000000000000000000000000000000000000
--- a/typo3/sysext/extbase/Classes/Compatibility/SlotReplacement.php
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-namespace TYPO3\CMS\Extbase\Compatibility;
-
-use TYPO3\CMS\Extbase\Event\Mvc\AfterRequestDispatchedEvent;
-use TYPO3\CMS\Extbase\Event\Mvc\BeforeActionCallEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\AfterObjectThawedEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\EntityAddedToPersistenceEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\EntityFinalizedAfterPersistenceEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\EntityPersistedEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\EntityRemovedFromPersistenceEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\EntityUpdatedInPersistenceEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\ModifyQueryBeforeFetchingObjectDataEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\ModifyResultAfterFetchingObjectDataEvent;
-use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
-use TYPO3\CMS\Extbase\Mvc\Dispatcher;
-use TYPO3\CMS\Extbase\Persistence\Generic\Backend;
-use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper;
-use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher;
-
-/**
- * This class provides a replacement for all existing signals in EXT:extbase of TYPO3 Core, which now act as a
- * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation.
- *
- * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should
- * switch to PSR-14 event listeners.
- */
-class SlotReplacement
-{
-    /**
-     * @var SignalSlotDispatcher
-     */
-    protected $signalSlotDispatcher;
-
-    public function __construct(SignalSlotDispatcher $signalSlotDispatcher)
-    {
-        $this->signalSlotDispatcher = $signalSlotDispatcher;
-    }
-
-    public function afterRequestDispatched(AfterRequestDispatchedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            Dispatcher::class,
-            'afterRequestDispatch',
-            [$event->getRequest(), $event->getResponse()]
-        );
-    }
-
-    public function beforeCallActionMethod(BeforeActionCallEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ActionController::class,
-            'beforeCallActionMethod',
-            [
-                $event->getControllerClassName(),
-                $event->getActionMethodName(),
-                $event->getPreparedArguments()
-            ]
-        );
-    }
-
-    public function afterDataMappedForObject(AfterObjectThawedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            DataMapper::class,
-            'afterMappingSingleRow',
-            [
-                $event->getObject()
-            ]
-        );
-    }
-
-    public function emitBeforeGettingObjectDataSignal(ModifyQueryBeforeFetchingObjectDataEvent $event): void
-    {
-        $signalArguments = $this->signalSlotDispatcher->dispatch(
-            Backend::class,
-            'beforeGettingObjectData',
-            [
-                $event->getQuery()
-            ]
-        );
-        $event->setQuery($signalArguments[0]);
-    }
-
-    public function emitAfterGettingObjectDataSignal(ModifyResultAfterFetchingObjectDataEvent $event): void
-    {
-        $signalArguments = $this->signalSlotDispatcher->dispatch(
-            Backend::class,
-            'afterGettingObjectData',
-            [$event->getQuery(), $event->getResult()]
-        );
-        $event->setResult($signalArguments[1]);
-    }
-
-    public function emitEndInsertObjectSignal(EntityFinalizedAfterPersistenceEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            Backend::class,
-            'endInsertObject',
-            [
-                $event->getObject()
-            ]
-        );
-    }
-
-    public function emitAfterInsertObjectSignal(EntityAddedToPersistenceEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            Backend::class,
-            'afterInsertObject',
-            [
-                $event->getObject()
-            ]
-        );
-    }
-
-    public function emitAfterUpdateObjectSignal(EntityUpdatedInPersistenceEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            Backend::class,
-            'afterUpdateObject',
-            [
-                $event->getObject()
-            ]
-        );
-    }
-
-    public function emitAfterPersistObjectSignal(EntityPersistedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            Backend::class,
-            'afterPersistObject',
-            [
-                $event->getObject()
-            ]
-        );
-    }
-
-    public function emitAfterRemoveObjectSignal(EntityRemovedFromPersistenceEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            Backend::class,
-            'afterRemoveObject',
-            [
-                $event->getObject()
-            ]
-        );
-    }
-}
diff --git a/typo3/sysext/extbase/Classes/Middleware/SignalSlotDeprecator.php b/typo3/sysext/extbase/Classes/Middleware/SignalSlotDeprecator.php
deleted file mode 100644
index 3937322fe641153c9dfbaa3e29345f8e898552a9..0000000000000000000000000000000000000000
--- a/typo3/sysext/extbase/Classes/Middleware/SignalSlotDeprecator.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-namespace TYPO3\CMS\Extbase\Middleware;
-
-use Psr\Http\Message\ResponseInterface;
-use Psr\Http\Message\ServerRequestInterface;
-use Psr\Http\Server\MiddlewareInterface;
-use Psr\Http\Server\RequestHandlerInterface;
-use TYPO3\CMS\Extbase\SignalSlot\Dispatcher;
-
-/**
- * @internal
- */
-class SignalSlotDeprecator implements MiddlewareInterface
-{
-    /**
-     * @var Dispatcher
-     */
-    protected $dispatcher;
-
-    public function __construct(Dispatcher $dispatcher)
-    {
-        $this->dispatcher = $dispatcher;
-    }
-
-    /**
-     * @param ServerRequestInterface $request
-     * @param RequestHandlerInterface $handler
-     * @return ResponseInterface
-     */
-    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
-    {
-        $this->dispatcher->reportDeprecatedSignalSlots();
-        return $handler->handle($request);
-    }
-}
diff --git a/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php b/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php
index edac0499f21207af0a169d79c81a56e36e2ccf20..42718766e648aa2f5107f0cb80854aab9d2bd18f 100644
--- a/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php
+++ b/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php
@@ -381,20 +381,6 @@ class ActionController implements ControllerInterface
         }
     }
 
-    /**
-     * Emits a signal before the current action is called
-     *
-     * @param array $preparedArguments
-     */
-    protected function emitBeforeCallActionMethodSignal(array $preparedArguments)
-    {
-        trigger_error(
-            __METHOD__ . ' is deprecated and will be removed in version 11.0 - use PSR-14 events instead.',
-            E_USER_DEPRECATED
-        );
-        $this->signalSlotDispatcher->dispatch(__CLASS__, 'beforeCallActionMethod', [static::class, $this->actionMethodName, $preparedArguments]);
-    }
-
     /**
      * Prepares a view for the current action.
      * By default, this method tries to locate a view with a name matching the current action.
diff --git a/typo3/sysext/extbase/Classes/SignalSlot/Dispatcher.php b/typo3/sysext/extbase/Classes/SignalSlot/Dispatcher.php
index 4cb8c8fd8fa586151577c4a77437b34c8d10b700..2c74fb000d07a1591c501fb8a82926d238b2b089 100644
--- a/typo3/sysext/extbase/Classes/SignalSlot/Dispatcher.php
+++ b/typo3/sysext/extbase/Classes/SignalSlot/Dispatcher.php
@@ -18,102 +18,10 @@ declare(strict_types=1);
 namespace TYPO3\CMS\Extbase\SignalSlot;
 
 use Psr\Log\LoggerInterface;
-use TYPO3\CMS\Backend\Authentication\Event\SwitchUserEvent;
-use TYPO3\CMS\Backend\Backend\Event\SystemInformationToolbarCollectorEvent;
-use TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem;
-use TYPO3\CMS\Backend\Controller\EditDocumentController;
-use TYPO3\CMS\Backend\Controller\Event\AfterFormEnginePageInitializedEvent;
-use TYPO3\CMS\Backend\Controller\Event\BeforeFormEnginePageInitializedEvent;
-use TYPO3\CMS\Backend\LoginProvider\Event\ModifyPageLayoutOnLoginProviderSelectionEvent;
-use TYPO3\CMS\Backend\LoginProvider\UsernamePasswordLoginProvider;
-use TYPO3\CMS\Backend\Utility\BackendUtility;
-use TYPO3\CMS\Core\Configuration\Event\AfterTcaCompilationEvent;
-use TYPO3\CMS\Core\Configuration\Event\ModifyLoadedPageTsConfigEvent;
-use TYPO3\CMS\Core\Database\Event\AlterTableDefinitionStatementsEvent;
-use TYPO3\CMS\Core\Database\ReferenceIndex;
-use TYPO3\CMS\Core\Database\SoftReferenceIndex;
-use TYPO3\CMS\Core\DataHandling\Event\AppendLinkHandlerElementsEvent;
-use TYPO3\CMS\Core\DataHandling\Event\IsTableExcludedFromReferenceIndexEvent;
-use TYPO3\CMS\Core\Imaging\Event\ModifyIconForResourcePropertiesEvent;
-use TYPO3\CMS\Core\Imaging\IconFactory;
-use TYPO3\CMS\Core\Package\Event\AfterPackageActivationEvent;
-use TYPO3\CMS\Core\Package\Event\AfterPackageDeactivationEvent;
-use TYPO3\CMS\Core\Package\Event\BeforePackageActivationEvent;
-use TYPO3\CMS\Core\Package\Event\PackagesMayHaveChangedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileAddedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileAddedToIndexEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileContentsSetEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileCopiedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileCreatedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileDeletedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileMarkedAsMissingEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataCreatedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataDeletedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataUpdatedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileMovedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileProcessingEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileRemovedFromIndexEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileRenamedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileReplacedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFileUpdatedInIndexEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFolderAddedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFolderCopiedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFolderDeletedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFolderMovedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterFolderRenamedEvent;
-use TYPO3\CMS\Core\Resource\Event\AfterResourceStorageInitializationEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileAddedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileContentsSetEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileCopiedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileCreatedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileDeletedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileMovedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileProcessingEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileRenamedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFileReplacedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFolderAddedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFolderCopiedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFolderDeletedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFolderMovedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeFolderRenamedEvent;
-use TYPO3\CMS\Core\Resource\Event\BeforeResourceStorageInitializationEvent;
-use TYPO3\CMS\Core\Resource\Event\EnrichFileMetaDataEvent;
-use TYPO3\CMS\Core\Resource\Event\GeneratePublicUrlForResourceEvent;
-use TYPO3\CMS\Core\Resource\Event\SanitizeFileNameEvent;
-use TYPO3\CMS\Core\Resource\Index\FileIndexRepository;
-use TYPO3\CMS\Core\Resource\Index\MetaDataRepository;
-use TYPO3\CMS\Core\Resource\ResourceFactory;
-use TYPO3\CMS\Core\Resource\ResourceFactoryInterface;
-use TYPO3\CMS\Core\Resource\ResourceStorage;
-use TYPO3\CMS\Core\Resource\ResourceStorageInterface;
-use TYPO3\CMS\Core\Resource\Service\FileProcessingService;
 use TYPO3\CMS\Core\SingletonInterface;
-use TYPO3\CMS\Core\Tree\Event\ModifyTreeDataEvent;
-use TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider;
-use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
-use TYPO3\CMS\Extbase\Event\Mvc\AfterRequestDispatchedEvent;
-use TYPO3\CMS\Extbase\Event\Mvc\BeforeActionCallEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\AfterObjectThawedEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\EntityAddedToPersistenceEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\EntityFinalizedAfterPersistenceEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\EntityPersistedEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\EntityRemovedFromPersistenceEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\EntityUpdatedInPersistenceEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\ModifyQueryBeforeFetchingObjectDataEvent;
-use TYPO3\CMS\Extbase\Event\Persistence\ModifyResultAfterFetchingObjectDataEvent;
-use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
 use TYPO3\CMS\Extbase\Object\ObjectManagerInterface;
-use TYPO3\CMS\Extbase\Persistence\Generic\Backend;
-use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper;
 use TYPO3\CMS\Extbase\SignalSlot\Exception\InvalidSlotException;
 use TYPO3\CMS\Extbase\SignalSlot\Exception\InvalidSlotReturnException;
-use TYPO3\CMS\Extensionmanager\Event\AfterExtensionDatabaseContentHasBeenImportedEvent;
-use TYPO3\CMS\Extensionmanager\Event\AfterExtensionFilesHaveBeenImportedEvent;
-use TYPO3\CMS\Extensionmanager\Event\AfterExtensionStaticDatabaseContentHasBeenImportedEvent;
-use TYPO3\CMS\Extensionmanager\Event\AvailableActionsForExtensionEvent;
-use TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService;
-use TYPO3\CMS\Extensionmanager\Utility\InstallUtility;
-use TYPO3\CMS\Extensionmanager\ViewHelpers\ProcessAvailableActionsViewHelper;
 
 /**
  * A dispatcher which dispatches signals by calling its registered slot methods
@@ -143,152 +51,6 @@ class Dispatcher implements SingletonInterface
      */
     protected $logger;
 
-    /**
-     * @var string[][]
-     */
-    protected $deprecatedSlots = [
-        FileIndexRepository::class => [
-            'recordUpdated' => AfterFileUpdatedInIndexEvent::class,
-            'recordCreated' => AfterFileAddedToIndexEvent::class,
-            'recordDeleted' => AfterFileRemovedFromIndexEvent::class,
-            'recordMarkedAsMissing' => AfterFileMarkedAsMissingEvent::class
-        ],
-        MetaDataRepository::class => [
-            'recordPostRetrieval' => EnrichFileMetaDataEvent::class,
-            'recordUpdated' => AfterFileMetaDataUpdatedEvent::class,
-            'recordCreated' => AfterFileMetaDataCreatedEvent::class,
-            'recordDeleted' => AfterFileMetaDataDeletedEvent::class
-        ],
-        ResourceFactory::class => [
-            ResourceFactoryInterface::SIGNAL_PreProcessStorage => BeforeResourceStorageInitializationEvent::class,
-            ResourceFactoryInterface::SIGNAL_PostProcessStorage => AfterResourceStorageInitializationEvent::class,
-        ],
-        ResourceStorage::class => [
-            ResourceStorageInterface::SIGNAL_SanitizeFileName => SanitizeFileNameEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFileAdd => BeforeFileAddedEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFileAdd => AfterFileAddedEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFileCopy => BeforeFileCopiedEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFileCopy => AfterFileCopiedEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFileMove => BeforeFileMovedEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFileMove => AfterFileMovedEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFileRename => BeforeFileRenamedEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFileRename => AfterFileRenamedEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFileReplace => BeforeFileReplacedEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFileReplace => AfterFileReplacedEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFileCreate => BeforeFileCreatedEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFileCreate => AfterFileCreatedEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFileDelete => BeforeFileDeletedEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFileDelete => AfterFileDeletedEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFileSetContents => BeforeFileContentsSetEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFileSetContents => AfterFileContentsSetEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFolderAdd => BeforeFolderAddedEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFolderAdd => AfterFolderAddedEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFolderCopy => BeforeFolderCopiedEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFolderCopy => AfterFolderCopiedEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFolderMove => BeforeFolderMovedEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFolderMove => AfterFolderMovedEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFolderRename => BeforeFolderRenamedEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFolderRename => AfterFolderRenamedEvent::class,
-            ResourceStorageInterface::SIGNAL_PreFolderDelete => BeforeFolderDeletedEvent::class,
-            ResourceStorageInterface::SIGNAL_PostFolderDelete => AfterFolderDeletedEvent::class,
-            ResourceStorageInterface::SIGNAL_PreGeneratePublicUrl => GeneratePublicUrlForResourceEvent::class,
-        ],
-        FileProcessingService::class => [
-            FileProcessingService::SIGNAL_PreFileProcess => BeforeFileProcessingEvent::class,
-            FileProcessingService::SIGNAL_PostFileProcess => AfterFileProcessingEvent::class,
-        ],
-        IconFactory::class => [
-            'buildIconForResourceSignal' => ModifyIconForResourcePropertiesEvent::class,
-        ],
-        SoftReferenceIndex::class => [
-            'setTypoLinkPartsElement' => AppendLinkHandlerElementsEvent::class,
-        ],
-        ReferenceIndex::class => [
-            'shouldExcludeTableFromReferenceIndex' => IsTableExcludedFromReferenceIndexEvent::class,
-        ],
-        ExtensionManagementUtility::class => [
-            'tcaIsBeingBuilt' => AfterTcaCompilationEvent::class,
-        ],
-        'TYPO3\\CMS\\Install\\Service\\SqlExpectedSchemaService' => [
-            'tablesDefinitionIsBeingBuilt' => AlterTableDefinitionStatementsEvent::class,
-        ],
-        DatabaseTreeDataProvider::class => [
-            'PostProcessTreeData' => ModifyTreeDataEvent::class,
-        ],
-        BackendUtility::class => [
-            'getPagesTSconfigPreInclude' => ModifyLoadedPageTsConfigEvent::class
-        ],
-        EditDocumentController::class => [
-            'preInitAfter' => BeforeFormEnginePageInitializedEvent::class,
-            'initAfter' => AfterFormEnginePageInitializedEvent::class,
-        ],
-        SystemInformationToolbarItem::class => [
-            'getSystemInformation' => SystemInformationToolbarCollectorEvent::class,
-            'loadMessages' => SystemInformationToolbarCollectorEvent::class
-        ],
-        UsernamePasswordLoginProvider::class => [
-            'getPageRenderer' => ModifyPageLayoutOnLoginProviderSelectionEvent::class
-        ],
-        \TYPO3\CMS\Extbase\Mvc\Dispatcher::class => [
-          'afterRequestDispatch' => AfterRequestDispatchedEvent::class
-        ],
-        ActionController::class => [
-            'beforeCallActionMethod' => BeforeActionCallEvent::class
-        ],
-        DataMapper::class => [
-            'afterMappingSingleRow' => AfterObjectThawedEvent::class
-        ],
-        Backend::class => [
-            'beforeGettingObjectData' => ModifyQueryBeforeFetchingObjectDataEvent::class,
-            'afterGettingObjectData' => ModifyResultAfterFetchingObjectDataEvent::class,
-            'endInsertObject' => EntityFinalizedAfterPersistenceEvent::class,
-            'afterInsertObject' => EntityAddedToPersistenceEvent::class,
-            'afterUpdateObject' => EntityUpdatedInPersistenceEvent::class,
-            'afterPersistObject' => EntityPersistedEvent::class,
-            'afterRemoveObject' => EntityRemovedFromPersistenceEvent::class
-        ],
-        // Strings are used here on purpose for all non-required system extensions. Do not change to
-        // Fqn::class *unless* you also declare each and every extension whose classes are listed
-        // here as explicit and mandatory dependencies of EXT:extbase.
-        'TYPO3\\CMS\\Beuser\\Controller\\BackendUserController' => [
-            'switchUser' => SwitchUserEvent::class
-        ],
-        'TYPO3\\CMS\\Lang\\Service\\TranslationService' => [
-            'postProcessMirrorUrl' => 'TYPO3\\CMS\\Install\\Service\\Event\\ModifyLanguagePackRemoteBaseUrlEvent'
-        ],
-        'TYPO3\\CMS\\Linkvalidator\\LinkAnalyzer' => [
-            'beforeAnalyzeRecord' => 'TYPO3\\CMS\\Linkvalidator\\Event\\BeforeRecordIsAnalyzedEvent'
-        ],
-        'TYPO3\\CMS\\Impexp\\Utility\\ImportExportUtility' => [
-            'afterImportExportInitialisation' => 'TYPO3\\CMS\\Impexp\\Event\\BeforeImportEvent'
-        ],
-        'TYPO3\\CMS\\Seo\\Canonical\\CanonicalGenerator' => [
-            'beforeGeneratingCanonical' => 'TYPO3\\CMS\\Seo\\Event\\ModifyUrlForCanonicalTagEvent'
-        ],
-        'TYPO3\\CMS\\Workspaces\\Service\\GridDataService' => [
-            'generateDataArray.beforeCaching' => 'TYPO3\\CMS\\Workspaces\\Event\\AfterCompiledCacheableDataForWorkspaceEvent',
-            'generateDataArray.postProcess' => 'TYPO3\\CMS\\Workspaces\\Event\\AfterDataGeneratedForWorkspaceEvent',
-            'getDataArray.postProcess' => 'TYPO3\\CMS\\Workspaces\\Event\\GetVersionedDataEvent',
-            'sortDataArray.postProcess' => 'TYPO3\\CMS\\Workspaces\\Event\\SortVersionedDataEvent',
-        ],
-        'PackageManagement' => [
-            'packagesMayHaveChanged' => PackagesMayHaveChangedEvent::class,
-        ],
-        InstallUtility::class => [
-            'afterExtensionInstall' => AfterPackageActivationEvent::class,
-            'afterExtensionUninstall' => AfterPackageDeactivationEvent::class,
-            'afterExtensionT3DImport' => AfterExtensionDatabaseContentHasBeenImportedEvent::class,
-            'afterExtensionStaticSqlImport' => AfterExtensionStaticDatabaseContentHasBeenImportedEvent::class,
-            'afterExtensionFileImport' => AfterExtensionFilesHaveBeenImportedEvent::class,
-        ],
-        ExtensionManagementService::class => [
-            'willInstallExtensions' => BeforePackageActivationEvent::class
-        ],
-        ProcessAvailableActionsViewHelper::class => [
-            'processActions' => AvailableActionsForExtensionEvent::class
-        ]
-    ];
-
     /**
      * @param ObjectManagerInterface $objectManager
      * @param LoggerInterface $logger
@@ -408,32 +170,4 @@ class Dispatcher implements SingletonInterface
     {
         return $this->slots[$signalClassName][$signalName] ?? [];
     }
-
-    /**
-     * This method is called by TYPO3\CMS\Extbase\Middleware\SignalSlotDeprecator to collect and report
-     * the deprecated slots only once per request.
-     *
-     * @internal
-     */
-    public function reportDeprecatedSignalSlots(): void
-    {
-        $messages = [];
-        foreach ($this->slots as $signalClassName => $signals) {
-            if (isset($this->deprecatedSlots[$signalClassName])) {
-                foreach (array_keys($signals) as $signalName) {
-                    $eventClass = $this->deprecatedSlots[$signalClassName][$signalName] ?? null;
-                    if ($eventClass !== null) {
-                        $messages[] = 'The signal "' . $signalName . '" in "' . $signalClassName . '" is deprecated and will stop working in TYPO3 11.0. Use the PSR-14 event: "' . $eventClass . '"';
-                    }
-                }
-            }
-        }
-        if (count($messages)) {
-            trigger_error(
-                'The following deprecated signals are connected:' . LF .
-                implode(LF, $messages),
-                E_USER_DEPRECATED
-            );
-        }
-    }
 }
diff --git a/typo3/sysext/extbase/Configuration/RequestMiddlewares.php b/typo3/sysext/extbase/Configuration/RequestMiddlewares.php
deleted file mode 100644
index 3cd80296162b8ec2650e32dc59c25c4e51bb822e..0000000000000000000000000000000000000000
--- a/typo3/sysext/extbase/Configuration/RequestMiddlewares.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-return [
-    'backend' => [
-        'typo3/cms-extbase/signal-slot-deprecator' => [
-            'target' => \TYPO3\CMS\Extbase\Middleware\SignalSlotDeprecator::class,
-            'after' => [
-                'typo3/cms-core/normalized-params-attribute'
-            ],
-        ],
-    ]
-];
diff --git a/typo3/sysext/extbase/Configuration/Services.yaml b/typo3/sysext/extbase/Configuration/Services.yaml
index 2e592c50e129a974842460020ab08aa1177498e0..09e460e77e4e0347c3bac9506f51361b1929300b 100644
--- a/typo3/sysext/extbase/Configuration/Services.yaml
+++ b/typo3/sysext/extbase/Configuration/Services.yaml
@@ -45,49 +45,5 @@ services:
     factory: ['@TYPO3\CMS\Core\Cache\CacheManager', 'getCache']
     arguments: ['extbase']
 
-  # Listener for old Signal Slots
-  TYPO3\CMS\Extbase\Compatibility\SlotReplacement:
-    tags:
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'afterRequestDispatched'
-        event: TYPO3\CMS\Extbase\Event\Mvc\AfterRequestDispatchedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'beforeCallActionMethod'
-        event: TYPO3\CMS\Extbase\Event\Mvc\BeforeActionCallEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'afterDataMappedForObject'
-        event: TYPO3\CMS\Extbase\Event\Persistence\AfterObjectThawedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitBeforeGettingObjectDataSignal'
-        event: TYPO3\CMS\Extbase\Event\Persistence\ModifyQueryBeforeFetchingObjectDataEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitAfterGettingObjectDataSignal'
-        event: TYPO3\CMS\Extbase\Event\Persistence\ModifyResultAfterFetchingObjectDataEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitEndInsertObjectSignal'
-        event: TYPO3\CMS\Extbase\Event\Persistence\EntityFinalizedAfterPersistenceEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitAfterInsertObjectSignal'
-        event: TYPO3\CMS\Extbase\Event\Persistence\EntityAddedToPersistenceEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitAfterUpdateObjectSignal'
-        event: TYPO3\CMS\Extbase\Event\Persistence\EntityUpdatedInPersistenceEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitAfterRemoveObjectSignal'
-        event: TYPO3\CMS\Extbase\Event\Persistence\EntityRemovedFromPersistenceEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitAfterPersistObjectSignal'
-        event: TYPO3\CMS\Extbase\Event\Persistence\EntityPersistedEvent
-
   TYPO3\CMS\Extbase\Mvc\View\GenericViewResolver: ~
   TYPO3\CMS\Extbase\Mvc\View\ViewResolverInterface: '@TYPO3\CMS\Extbase\Mvc\View\GenericViewResolver'
diff --git a/typo3/sysext/extensionmanager/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/extensionmanager/Classes/Compatibility/SlotReplacement.php
deleted file mode 100644
index 51468bd612fd62cac5ccbb30ae884bf8c6cb36d7..0000000000000000000000000000000000000000
--- a/typo3/sysext/extensionmanager/Classes/Compatibility/SlotReplacement.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-namespace TYPO3\CMS\Extensionmanager\Compatibility;
-
-use TYPO3\CMS\Core\Package\Event\AfterPackageActivationEvent;
-use TYPO3\CMS\Core\Package\Event\AfterPackageDeactivationEvent;
-use TYPO3\CMS\Core\Package\Event\BeforePackageActivationEvent;
-use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher;
-use TYPO3\CMS\Extensionmanager\Event\AfterExtensionDatabaseContentHasBeenImportedEvent;
-use TYPO3\CMS\Extensionmanager\Event\AfterExtensionFilesHaveBeenImportedEvent;
-use TYPO3\CMS\Extensionmanager\Event\AfterExtensionStaticDatabaseContentHasBeenImportedEvent;
-use TYPO3\CMS\Extensionmanager\Event\AvailableActionsForExtensionEvent;
-use TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService;
-use TYPO3\CMS\Extensionmanager\Utility\InstallUtility;
-use TYPO3\CMS\Extensionmanager\ViewHelpers\ProcessAvailableActionsViewHelper;
-
-/**
- * This class provides a replacement for all existing signals in EXT:extensionmanager of TYPO3 Core, which now act as a
- * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation.
- *
- * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should
- * switch to PSR-14 event listeners.
- */
-class SlotReplacement
-{
-    /**
-     * @var SignalSlotDispatcher
-     */
-    protected $signalSlotDispatcher;
-
-    public function __construct(SignalSlotDispatcher $signalSlotDispatcher)
-    {
-        $this->signalSlotDispatcher = $signalSlotDispatcher;
-    }
-
-    public function afterExtensionInstallSlot(AfterPackageActivationEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            InstallUtility::class,
-            'afterExtensionInstall',
-            [
-                $event->getPackageKey(),
-                $event->getEmitter()
-            ]
-        );
-    }
-
-    public function afterExtensionUninstallSlot(AfterPackageDeactivationEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            InstallUtility::class,
-            'afterExtensionUninstall',
-            [
-                $event->getPackageKey(),
-                $event->getEmitter()
-            ]
-        );
-    }
-
-    public function emitAfterExtensionT3DImportSignal(AfterExtensionDatabaseContentHasBeenImportedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            InstallUtility::class,
-            'afterExtensionT3DImport',
-            [
-                $event->getImportFileName(),
-                $event->getImportResult(),
-                $event->getEmitter()
-            ]
-        );
-    }
-
-    public function emitAfterExtensionStaticSqlImportSignal(AfterExtensionStaticDatabaseContentHasBeenImportedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            InstallUtility::class,
-            'afterExtensionStaticSqlImport',
-            [
-                $event->getSqlFileName(),
-                $event->getEmitter()
-            ]
-        );
-    }
-
-    public function emitAfterExtensionFileImportSignal(AfterExtensionFilesHaveBeenImportedEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            InstallUtility::class,
-            'afterExtensionFileImport',
-            [
-                $event->getDestinationAbsolutePath(),
-                $event->getEmitter()
-            ]
-        );
-    }
-
-    public function emitWillInstallExtensionsSignal(BeforePackageActivationEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ExtensionManagementService::class,
-            'willInstallExtensions',
-            [
-                $event->getPackageKeys()
-            ]
-        );
-    }
-
-    public function emitProcessActionsSignal(AvailableActionsForExtensionEvent $event): void
-    {
-        $actions = $event->getActions();
-        $this->signalSlotDispatcher->dispatch(
-            ProcessAvailableActionsViewHelper::class,
-            'processActions',
-            [
-                $event->getPackageData(),
-                &$actions,
-            ]
-        );
-        $event->setActions($actions);
-    }
-}
diff --git a/typo3/sysext/extensionmanager/Configuration/Services.yaml b/typo3/sysext/extensionmanager/Configuration/Services.yaml
index 9c547ab8306a25e7e01a627fccf88025dd16b0e5..a765964393cf8aedd9419a769594022c123c3f3e 100644
--- a/typo3/sysext/extensionmanager/Configuration/Services.yaml
+++ b/typo3/sysext/extensionmanager/Configuration/Services.yaml
@@ -10,37 +10,6 @@ services:
     # EXT:reports to be installed, ignore for now.
     exclude: '../Classes/{Task,Report}'
 
-  TYPO3\CMS\Extensionmanager\Compatibility\SlotReplacement:
-    tags:
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitWillInstallExtensionsSignal'
-        event: TYPO3\CMS\Core\Package\Event\BeforePackageActivationEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'afterExtensionInstallSlot'
-        event: TYPO3\CMS\Core\Package\Event\AfterPackageActivationEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'afterExtensionUninstallSlot'
-        event: TYPO3\CMS\Core\Package\Event\AfterPackageDeactivationEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitAfterExtensionT3DImportSignal'
-        event: TYPO3\CMS\Extensionmanager\Event\AfterExtensionDatabaseContentHasBeenImportedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitAfterExtensionStaticSqlImportSignal'
-        event: TYPO3\CMS\Extensionmanager\Event\AfterExtensionStaticDatabaseContentHasBeenImportedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitAfterExtensionFileImportSignal'
-        event: TYPO3\CMS\Extensionmanager\Event\AfterExtensionFilesHaveBeenImportedEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitProcessActionsSignal'
-        event: TYPO3\CMS\Extensionmanager\Event\AvailableActionsForExtensionEvent
-
   TYPO3\CMS\Extensionmanager\Command\ActivateExtensionCommand:
     tags:
       - name: 'console.command'
diff --git a/typo3/sysext/impexp/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/impexp/Classes/Compatibility/SlotReplacement.php
deleted file mode 100644
index 7acf93287f59268c3aa17bf672fdfab05a26a8d9..0000000000000000000000000000000000000000
--- a/typo3/sysext/impexp/Classes/Compatibility/SlotReplacement.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-namespace TYPO3\CMS\Impexp\Compatibility;
-
-use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher;
-use TYPO3\CMS\Impexp\Event\BeforeImportEvent;
-use TYPO3\CMS\Impexp\Utility\ImportExportUtility;
-
-/**
- * This class provides a replacement for all existing signals in EXT:impexp of TYPO3 Core, which now act as a
- * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation.
- *
- * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should
- * switch to PSR-14 event listeners.
- */
-class SlotReplacement
-{
-    /**
-     * @var SignalSlotDispatcher
-     */
-    protected $signalSlotDispatcher;
-
-    public function __construct(SignalSlotDispatcher $signalSlotDispatcher)
-    {
-        $this->signalSlotDispatcher = $signalSlotDispatcher;
-    }
-
-    public function emitAfterImportExportInitialisationSignal(BeforeImportEvent $event): void
-    {
-        $this->signalSlotDispatcher->dispatch(
-            ImportExportUtility::class,
-            'afterImportExportInitialisation',
-            [$event->getImport()]
-        );
-    }
-}
diff --git a/typo3/sysext/impexp/Configuration/Services.yaml b/typo3/sysext/impexp/Configuration/Services.yaml
index 321ccd27139c8f0f891badbcfdf29659473c87d0..c486cb77a6dfe9b2251f33721a3ebfd950c5594b 100644
--- a/typo3/sysext/impexp/Configuration/Services.yaml
+++ b/typo3/sysext/impexp/Configuration/Services.yaml
@@ -14,11 +14,3 @@ services:
     tags:
       - name: 'console.command'
         command: 'impexp:import'
-
-  # Listener for old Signal Slots
-  TYPO3\CMS\Impexp\Compatibility\SlotReplacement:
-    tags:
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'emitAfterImportExportInitialisationSignal'
-        event: TYPO3\CMS\Impexp\Event\BeforeImportEvent
diff --git a/typo3/sysext/install/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/install/Classes/Compatibility/SlotReplacement.php
deleted file mode 100644
index 9cee2399958bcd3c463822ee3e379f3a0a39acbd..0000000000000000000000000000000000000000
--- a/typo3/sysext/install/Classes/Compatibility/SlotReplacement.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-namespace TYPO3\CMS\Install\Compatibility;
-
-use TYPO3\CMS\Core\Http\Uri;
-use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher;
-use TYPO3\CMS\Install\Service\Event\ModifyLanguagePackRemoteBaseUrlEvent;
-
-/**
- * This class provides a replacement for all existing signals in EXT:install of TYPO3 Core, which now act as a
- * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation.
- *
- * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should
- * switch to PSR-14 event listeners.
- */
-class SlotReplacement
-{
-    /**
-     * @var SignalSlotDispatcher
-     */
-    protected $signalSlotDispatcher;
-
-    public function __construct(SignalSlotDispatcher $signalSlotDispatcher)
-    {
-        $this->signalSlotDispatcher = $signalSlotDispatcher;
-    }
-
-    public function onLanguagePackProcessMirrorUrl(ModifyLanguagePackRemoteBaseUrlEvent $event): void
-    {
-        $languagePackBaseUrl = (string)$event->getBaseUrl();
-        $this->signalSlotDispatcher->dispatch(
-            'TYPO3\\CMS\\Lang\\Service\\TranslationService',
-            'postProcessMirrorUrl',
-            [
-                'extensionKey' => $event->getPackageKey(),
-                'mirrorUrl' => &$languagePackBaseUrl,
-            ]
-        );
-        $event->setBaseUrl(new Uri($languagePackBaseUrl));
-    }
-}
diff --git a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php
index 37e5959873de6ff5050c166aa1027df998cab279..54315520067fa89d5b5ee286edc8f9d5b1333b7a 100644
--- a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php
+++ b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php
@@ -196,191 +196,228 @@ return [
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreProcessStorage' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostProcessStorage' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileAdd' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileCopy' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileCreate' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileDelete' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileMove' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileRename' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileReplace' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileSetContents' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFolderAdd' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFolderCopy' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFolderDelete' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFolderMove' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFolderRename' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileAdd' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileCopy' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileCreate' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileDelete' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileMove' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileRename' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileReplace' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileSetContents' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFolderAdd' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFolderCopy' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFolderDelete' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFolderMove' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFolderRename' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreGeneratePublicUrl' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_SanitizeFileName' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PreFileProcess' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PostFileProcess' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider::SIGNAL_PostProcessTreeData' => [
         'restFiles' => [
             'Feature-89733-NewPSR-14EventsForExistingSignalSlotsInCoreExtension.rst',
             'Deprecation-89733-SignalSlotsInCoreExtensionMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_BeforeCaching' => [
         'restFiles' => [
             'Feature-89733-NewPSR-14EventsForExistingSignalSlotsInCoreExtension.rst',
             'Deprecation-89733-SignalSlotsInCoreExtensionMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_PostProcesss' => [
         'restFiles' => [
             'Feature-89733-NewPSR-14EventsForExistingSignalSlotsInCoreExtension.rst',
             'Deprecation-89733-SignalSlotsInCoreExtensionMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GetDataArray_PostProcesss' => [
         'restFiles' => [
             'Feature-89733-NewPSR-14EventsForExistingSignalSlotsInCoreExtension.rst',
             'Deprecation-89733-SignalSlotsInCoreExtensionMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_SortDataArray_PostProcesss' => [
         'restFiles' => [
             'Feature-89733-NewPSR-14EventsForExistingSignalSlotsInCoreExtension.rst',
             'Deprecation-89733-SignalSlotsInCoreExtensionMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ]
 ];
diff --git a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php
index 5582c107df272f4be848fcc2db0fe3f02855c545..98c632757dc05bc319ad94778f5be16c51a8f3a9 100644
--- a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php
+++ b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php
@@ -1341,6 +1341,7 @@ return [
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface' => [
         'restFiles' => [
             'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Configuration\TsConfigParser' => [
diff --git a/typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php b/typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php
index b01ebb26e48b6376920a424fbb3ff63abf111b62..aa945e54ff6b866ee67dac71845c538d9c0d3253 100644
--- a/typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php
+++ b/typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php
@@ -4397,6 +4397,7 @@ return [
         'maximumNumberOfArguments' => 1,
         'restFiles' => [
             'Deprecation-89870-NewPSR-14EventsForExtbase-relatedSignals.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Html\RteHtmlParser->init' => [
diff --git a/typo3/sysext/install/Configuration/Services.yaml b/typo3/sysext/install/Configuration/Services.yaml
index 001682a48bb9f3b59964ff3c7858585d56932bec..15f76349eb9f8ad387c25395a2ed65fe957e3d36 100644
--- a/typo3/sysext/install/Configuration/Services.yaml
+++ b/typo3/sysext/install/Configuration/Services.yaml
@@ -8,12 +8,3 @@ services:
         identifier: 'install/show-latest-errors'
         method: 'appendMessage'
         event: TYPO3\CMS\Backend\Backend\Event\SystemInformationToolbarCollectorEvent
-  TYPO3\CMS\Install\Compatibility\SlotReplacement:
-    autowire: true
-    autoconfigure: true
-    public: false
-    tags:
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onLanguagePackProcessMirrorUrl'
-        event: TYPO3\CMS\Install\Service\Event\ModifyLanguagePackRemoteBaseUrlEvent
diff --git a/typo3/sysext/linkvalidator/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/linkvalidator/Classes/Compatibility/SlotReplacement.php
deleted file mode 100644
index 0f0afb8fb6035f9ceb2b1c52a1d03cd89e5e6779..0000000000000000000000000000000000000000
--- a/typo3/sysext/linkvalidator/Classes/Compatibility/SlotReplacement.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-namespace TYPO3\CMS\Linkvalidator\Compatibility;
-
-use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher;
-use TYPO3\CMS\Linkvalidator\Event\BeforeRecordIsAnalyzedEvent;
-use TYPO3\CMS\Linkvalidator\LinkAnalyzer;
-
-/**
- * This class provides a replacement for all existing signals in EXT:linkvalidator of TYPO3 Core, which now act as a
- * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation.
- *
- * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should
- * switch to PSR-14 event listeners.
- */
-class SlotReplacement
-{
-    /**
-     * @var SignalSlotDispatcher
-     */
-    protected $signalSlotDispatcher;
-
-    public function __construct(SignalSlotDispatcher $signalSlotDispatcher)
-    {
-        $this->signalSlotDispatcher = $signalSlotDispatcher;
-    }
-
-    public function beforeLinkAnalyzerRecordIsAnalyzed(BeforeRecordIsAnalyzedEvent $event): void
-    {
-        [$results, $record] = $this->signalSlotDispatcher->dispatch(
-            LinkAnalyzer::class,
-            'beforeAnalyzeRecord',
-            [
-                $event->getResults(),
-                $event->getRecord(),
-                $event->getTableName(),
-                $event->getFields(),
-                $event->getLinkAnalyzer()
-            ]
-        );
-        $event->setRecord($record);
-        $event->setResults($results);
-    }
-}
diff --git a/typo3/sysext/linkvalidator/Configuration/Services.yaml b/typo3/sysext/linkvalidator/Configuration/Services.yaml
index 70db046bb187adce50fc21580ecbc80ff52f9994..47a3fd398927d97b14dac440f5fea490e30e806b 100644
--- a/typo3/sysext/linkvalidator/Configuration/Services.yaml
+++ b/typo3/sysext/linkvalidator/Configuration/Services.yaml
@@ -30,10 +30,3 @@ services:
         identifier: 'rte-check-link-to-file'
         event: TYPO3\CMS\Core\Html\Event\BrokenLinkAnalysisEvent
         method: 'checkFileLink'
-
-  TYPO3\CMS\Linkvalidator\Compatibility\SlotReplacement:
-    tags:
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'beforeLinkAnalyzerRecordIsAnalyzed'
-        event: TYPO3\CMS\Linkvalidator\Event\BeforeRecordIsAnalyzedEvent
diff --git a/typo3/sysext/seo/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/seo/Classes/Compatibility/SlotReplacement.php
deleted file mode 100644
index a769fd08e1865f5cb4615959a783cd4eb2530e5e..0000000000000000000000000000000000000000
--- a/typo3/sysext/seo/Classes/Compatibility/SlotReplacement.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-namespace TYPO3\CMS\Seo\Compatibility;
-
-use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher;
-use TYPO3\CMS\Seo\Canonical\CanonicalGenerator;
-use TYPO3\CMS\Seo\Event\ModifyUrlForCanonicalTagEvent;
-
-/**
- * This class provides a replacement for all existing signals in EXT:seo of TYPO3 Core, which now act as a
- * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation.
- *
- * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should
- * switch to PSR-14 event listeners.
- */
-class SlotReplacement
-{
-    /**
-     * @var SignalSlotDispatcher
-     */
-    protected $signalSlotDispatcher;
-
-    public function __construct(SignalSlotDispatcher $signalSlotDispatcher)
-    {
-        $this->signalSlotDispatcher = $signalSlotDispatcher;
-    }
-
-    public function beforeGeneratingCanonical(ModifyUrlForCanonicalTagEvent $event): void
-    {
-        $href = $event->getUrl();
-        $this->signalSlotDispatcher->dispatch(
-            CanonicalGenerator::class,
-            'beforeGeneratingCanonical',
-            [&$href]
-        );
-        $event->setUrl($href);
-    }
-}
diff --git a/typo3/sysext/seo/Configuration/Services.yaml b/typo3/sysext/seo/Configuration/Services.yaml
index cbba1c295d3706efe70bba482a40bb43eddb78d6..9ebc77a2fe470f8ca4a18475d87a3c2f2c2c7f46 100644
--- a/typo3/sysext/seo/Configuration/Services.yaml
+++ b/typo3/sysext/seo/Configuration/Services.yaml
@@ -7,13 +7,6 @@ services:
   TYPO3\CMS\Seo\:
     resource: '../Classes/*'
 
-  TYPO3\CMS\Seo\Compatibility\SlotReplacement:
-    tags:
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'beforeGeneratingCanonical'
-        event: TYPO3\CMS\Seo\Event\ModifyUrlForCanonicalTagEvent
-
   TYPO3\CMS\Seo\HrefLang\HrefLangGenerator:
     tags:
       - name: event.listener
diff --git a/typo3/sysext/workspaces/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/workspaces/Classes/Compatibility/SlotReplacement.php
deleted file mode 100644
index 94a16a2b6aee70ca32f7dcef738a71668c1c99da..0000000000000000000000000000000000000000
--- a/typo3/sysext/workspaces/Classes/Compatibility/SlotReplacement.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-namespace TYPO3\CMS\Workspaces\Compatibility;
-
-use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher;
-use TYPO3\CMS\Workspaces\Event\AfterCompiledCacheableDataForWorkspaceEvent;
-use TYPO3\CMS\Workspaces\Event\AfterDataGeneratedForWorkspaceEvent;
-use TYPO3\CMS\Workspaces\Event\GetVersionedDataEvent;
-use TYPO3\CMS\Workspaces\Event\SortVersionedDataEvent;
-use TYPO3\CMS\Workspaces\Service\GridDataService;
-
-/**
- * This class provides a replacement for all existing signals in EXT:workspaces of TYPO3 Core, which now act as a
- * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation.
- *
- * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should
- * switch to PSR-14 event listeners.
- */
-class SlotReplacement
-{
-    /**
-     * @var SignalSlotDispatcher
-     */
-    protected $signalSlotDispatcher;
-
-    public function __construct(SignalSlotDispatcher $signalSlotDispatcher)
-    {
-        $this->signalSlotDispatcher = $signalSlotDispatcher;
-    }
-
-    public function onGenerateDataArrayBeforeCaching(AfterCompiledCacheableDataForWorkspaceEvent $event): void
-    {
-        [$obj, $dataArray, $versions] = $this->signalSlotDispatcher->dispatch(
-            GridDataService::class,
-            GridDataService::SIGNAL_GenerateDataArray_BeforeCaching,
-            [$event->getGridService(), $event->getData(), $event->getVersions()]
-        );
-        $event->setData($dataArray);
-        $event->setVersions($versions);
-    }
-
-    public function onGenerateDataArrayPostProcessing(AfterDataGeneratedForWorkspaceEvent $event): void
-    {
-        [$obj, $dataArray] = $this->signalSlotDispatcher->dispatch(
-            GridDataService::class,
-            GridDataService::SIGNAL_GenerateDataArray_PostProcesss,
-            [$event->getGridService(), $event->getData(), $event->getVersions()]
-        );
-        $event->setData($dataArray);
-    }
-
-    public function onGetDataPostProcessing(GetVersionedDataEvent $event): void
-    {
-        [$obj, $dataArray, $start, $limit, $dataArrayPart] = $this->signalSlotDispatcher->dispatch(
-            GridDataService::class,
-            GridDataService::SIGNAL_GetDataArray_PostProcesss,
-            [$event->getGridService(), $event->getData(), $event->getStart(), $event->getLimit(), $event->getDataArrayPart()]
-        );
-        $event->setData($dataArray);
-        $event->setDataArrayPart($dataArrayPart);
-    }
-
-    public function onSortDataPostProcessing(SortVersionedDataEvent $event): void
-    {
-        [$obj, $dataArray, $sortingColumn, $sortingDirection] = $this->signalSlotDispatcher->dispatch(
-            GridDataService::class,
-            GridDataService::SIGNAL_SortDataArray_PostProcesss,
-            [$event->getGridService(), $event->getData(), $event->getSortColumn(), $event->getSortDirection()]
-        );
-        $event->setData($dataArray);
-        $event->setSortColumn($sortingColumn);
-        $event->setSortDirection($sortingDirection);
-    }
-}
diff --git a/typo3/sysext/workspaces/Classes/Service/GridDataService.php b/typo3/sysext/workspaces/Classes/Service/GridDataService.php
index 4cda2383e0370535a24abda185a0c09cbafb08cc..1cd07087a3bc723c83f94a73dc0fbbcb06c31668 100644
--- a/typo3/sysext/workspaces/Classes/Service/GridDataService.php
+++ b/typo3/sysext/workspaces/Classes/Service/GridDataService.php
@@ -41,23 +41,6 @@ class GridDataService implements LoggerAwareInterface
 {
     use LoggerAwareTrait;
 
-    /**
-     * @deprecated will be removed in TYPO3 v11 in favor of PSR-14 events
-     */
-    const SIGNAL_GenerateDataArray_BeforeCaching = 'generateDataArray.beforeCaching';
-    /**
-     * @deprecated will be removed in TYPO3 v11 in favor of PSR-14 events
-     */
-    const SIGNAL_GenerateDataArray_PostProcesss = 'generateDataArray.postProcess';
-    /**
-     * @deprecated will be removed in TYPO3 v11 in favor of PSR-14 events
-     */
-    const SIGNAL_GetDataArray_PostProcesss = 'getDataArray.postProcess';
-    /**
-     * @deprecated will be removed in TYPO3 v11 in favor of PSR-14 events
-     */
-    const SIGNAL_SortDataArray_PostProcesss = 'sortDataArray.postProcess';
-
     const GridColumn_Collection = 'Workspaces_Collection';
     const GridColumn_CollectionLevel = 'Workspaces_CollectionLevel';
     const GridColumn_CollectionParent = 'Workspaces_CollectionParent';
diff --git a/typo3/sysext/workspaces/Configuration/Services.yaml b/typo3/sysext/workspaces/Configuration/Services.yaml
index 2649612811def30f370d5e2807d5000cc1485d09..655d222eee1a64b0b5c8ac2767679f2057c89929 100644
--- a/typo3/sysext/workspaces/Configuration/Services.yaml
+++ b/typo3/sysext/workspaces/Configuration/Services.yaml
@@ -29,22 +29,3 @@ services:
     tags:
       - name: 'console.command'
         command: 'workspace:autopublish'
-
-  TYPO3\CMS\Workspaces\Compatibility\SlotReplacement:
-    tags:
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onGenerateDataArrayBeforeCaching'
-        event: TYPO3\CMS\Workspaces\Event\AfterCompiledCacheableDataForWorkspaceEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onGenerateDataArrayPostProcessing'
-        event: TYPO3\CMS\Workspaces\Event\AfterDataGeneratedForWorkspaceEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onGetDataPostProcessing'
-        event: TYPO3\CMS\Workspaces\Event\GetVersionedDataEvent
-      - name: event.listener
-        identifier: 'legacy-slot'
-        method: 'onSortDataPostProcessing'
-        event: TYPO3\CMS\Workspaces\Event\SortVersionedDataEvent