Was ist der Unterschied zwischen MediatorLiveData und MutableLiveData in MVVM?

Ich habe viel gesucht, aber keine kristallklare Antwort auf die Fragen gefunden: Was ist der Unterschied zwischen MediatorLiveData und MutableLiveData? Was sind die geeigneten Bedingungen, um eine von ihnen zu verwenden.