diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-91079-VariousTypoScriptFrontendRendererFunctionalityIsNowInternal.rst b/typo3/sysext/core/Documentation/Changelog/master/Important-91079-VariousTypoScriptFrontendRendererFunctionalityIsNowInternal.rst
new file mode 100644
index 0000000000000000000000000000000000000000..c0681bfcc9d7ad65a5897476c6a710eef1c9468e
--- /dev/null
+++ b/typo3/sysext/core/Documentation/Changelog/master/Important-91079-VariousTypoScriptFrontendRendererFunctionalityIsNowInternal.rst
@@ -0,0 +1,47 @@
+.. include:: ../../Includes.txt
+
+====================================================================================
+Important: #91079 - Various TypoScriptFrontendRenderer functionality is now internal
+====================================================================================
+
+See :issue:`91079`
+
+Description
+===========
+
+TypoScriptFrontendController has methods and properties which
+are marked as "@internal" in TYPO3 v10.
+
+They are still used in TYPO3 v10 from within TYPO3 Core, but
+extension authors should use the actual APIs directly.
+
+The properties
+
+* :php:`TypoScriptFrontendController->sPre`
+* :php:`TypoScriptFrontendController->pSetup`
+* :php:`TypoScriptFrontendController->all`
+
+are related to unpacking TypoScript details related
+to a page object in TypoScript and to its caching part,
+this is now officially marked as internal - if needed,
+TemplateService should be queried directly. These properties
+will likely be removed in future TYPO3 versions, in order to
+decouple TypoScript Parsing from the global `TSFE` object.
+
+The properties
+
+* :php:`TypoScriptFrontendController->additionalJavaScript`
+* :php:`TypoScriptFrontendController->additionalCSS`
+* :php:`TypoScriptFrontendController->JSCode`
+* :php:`TypoScriptFrontendController->inlineJS`
+
+and the method :php:`TypoScriptFrontendController->setJS()` are
+marked as internal. The AssetCollector API and the PageRenderer
+can be used instead, and TYPO3 Core will move towards these
+APIs completely internally.
+
+The property :php:`TypoScriptFrontendController->indexedDocTitle`
+is now marked as internal as the PageTitle API is in place since
+TYPO3 v9 LTS.
+
+.. index:: Frontend, ext:frontend
\ No newline at end of file
diff --git a/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php b/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
index fa5862ef914dc77de835d9830dc32a601ae43831..a063b2cd6c91e978314a562115fa123006e9f133 100644
--- a/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
+++ b/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
@@ -308,12 +308,14 @@ class TypoScriptFrontendController implements LoggerAwareInterface
      * the template. If $this->all is empty it's because the template-data is not
      * cached, which it must be.
      * @var array
+     * @internal
      */
     public $all = [];
 
     /**
      * Toplevel - objArrayName, eg 'page'
      * @var string
+     * @internal should only be used by TYPO3 Core
      */
     public $sPre = '';
 
@@ -321,6 +323,7 @@ class TypoScriptFrontendController implements LoggerAwareInterface
      * TypoScript configuration of the page-object pointed to by sPre.
      * $this->tmpl->setup[$this->sPre.'.']
      * @var array|string
+     * @internal should only be used by TYPO3 Core
      */
     public $pSetup = '';
 
@@ -390,6 +393,7 @@ class TypoScriptFrontendController implements LoggerAwareInterface
      * additionalHeaderData. Reserved keys at 'openPic' and 'mouseOver'
      *
      * @var array
+     * @internal only used by TYPO3 Core, use AssetCollector or PageRenderer to add JavaScript
      */
     public $additionalJavaScript = [];
 
@@ -397,16 +401,19 @@ class TypoScriptFrontendController implements LoggerAwareInterface
      * Used to accumulate additional Style code. Works like additionalHeaderData.
      *
      * @var array
+     * @internal only used by TYPO3 Core, use AssetCollector or PageRenderer to add CSS
      */
     public $additionalCSS = [];
 
     /**
      * @var string
+     * @internal only used by TYPO3 Core, use AssetCollector or PageRenderer to add inline JavaScript
      */
     public $JSCode;
 
     /**
      * @var string
+     * @internal only used by TYPO3 Core, use AssetCollector or PageRenderer to add inline JavaScript
      */
     public $inlineJS;
 
@@ -583,6 +590,7 @@ class TypoScriptFrontendController implements LoggerAwareInterface
      * This value will be used as the title for the page in the indexer (if
      * indexing happens)
      * @var string
+     * @internal only used by TYPO3 Core, use PageTitle API instead.
      */
     public $indexedDocTitle = '';
 
@@ -3499,6 +3507,7 @@ class TypoScriptFrontendController implements LoggerAwareInterface
      * @param string $key is the key in the array, for num-key let the value be empty. Note reserved key: 'openPic'
      * @param string $content is the content if you want any
      * @see ContentObjectRenderer::imageLinkWrap()
+     * @internal only used by TYPO3 Core, use PageRenderer or AssetCollector API instead.
      */
     public function setJS($key, $content = '')
     {