// Signature format: 3.0
package androidx.lifecycle {

  public final class ViewModelKt {
    method public static kotlinx.coroutines.CoroutineScope getViewModelScope(androidx.lifecycle.ViewModel);
  }

  public final class ViewModelLazy<VM extends androidx.lifecycle.ViewModel> implements kotlin.Lazy<VM> {
    ctor public ViewModelLazy(kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory> factoryProducer);
    method public VM getValue();
    method public boolean isInitialized();
    property public VM value;
  }

  public final class ViewModelProviderKt {
    method @MainThread public static inline <reified VM> VM! get(androidx.lifecycle.ViewModelProvider);
  }

  public final class ViewTreeViewModelKt {
    method public static androidx.lifecycle.ViewModelStoreOwner? findViewTreeViewModelStoreOwner(android.view.View);
  }

}

