A runtime implements portions of an execution model, which would be for JavaScript in this case. A runtime is not an object that needs to be instanced and injected into a an object.
You can inject IJSRuntime or any Interface into an object as long as the code the Interface represents is running or that the object the Interface represents has been instanced in order to use their behaviors/methods of objects in the runtime or on an instanced object.
https://en.wikipedia.org/wiki/Runtime_system
Is there a definitive list of all such services that don't need explicit registering and are readily available in the framework to inject?
No, none that I know about.
But I feel that you need to understand the purpose of DI.
https://ardalis.com/new-is-glue/
You need to understand the purpose of an Interface.
https://www.c-sharpcorner.com/blogs/understanding-interfaces-via-loose-coupling-and-tight-coupling