// Signature format: 3.0
package androidx.lifecycle {

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class ComputableLiveData<T> {
    ctor public ComputableLiveData();
    ctor public ComputableLiveData(java.util.concurrent.Executor);
    method @WorkerThread protected abstract T! compute();
    method public androidx.lifecycle.LiveData<T!> getLiveData();
    method public void invalidate();
  }

  public class MediatorLiveData<T> extends androidx.lifecycle.MutableLiveData<T> {
    ctor public MediatorLiveData();
    method @MainThread public <S> void addSource(androidx.lifecycle.LiveData<S!>, androidx.lifecycle.Observer<? super S>);
    method @MainThread public <S> void removeSource(androidx.lifecycle.LiveData<S!>);
  }

  public class Transformations {
    method @MainThread public static <X> androidx.lifecycle.LiveData<X!> distinctUntilChanged(androidx.lifecycle.LiveData<X!>);
    method @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y!> map(androidx.lifecycle.LiveData<X!>, androidx.arch.core.util.Function<X!,Y!>);
    method @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y!> switchMap(androidx.lifecycle.LiveData<X!>, androidx.arch.core.util.Function<X!,androidx.lifecycle.LiveData<Y!>!>);
  }

}

