// Signature format: 3.0
package androidx.ui.savedinstancestate {

  public final class ListSaverKt {
    method public static <Original, Saveable> androidx.ui.savedinstancestate.Saver<Original,java.lang.Object> listSaver(kotlin.jvm.functions.Function2<? super androidx.ui.savedinstancestate.SaverScope,? super Original,? extends java.util.List<? extends Saveable>> save, kotlin.jvm.functions.Function1<? super java.util.List<? extends Saveable>,? extends Original> restore);
  }

  public final class MapSaverKt {
    method public static <T> androidx.ui.savedinstancestate.Saver<T,java.lang.Object> mapSaver(kotlin.jvm.functions.Function2<? super androidx.ui.savedinstancestate.SaverScope,? super T,? extends java.util.Map<java.lang.String,?>> save, kotlin.jvm.functions.Function1<? super java.util.Map<java.lang.String,?>,? extends T> restore);
  }

  public final class RememberSavedInstanceStateKt {
    method @androidx.compose.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
  }

  public final class SavedInstanceStateKt {
    method @androidx.compose.Composable public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
  }

  public interface Saver<Original, Saveable> {
    method public Original? restore(Saveable value);
    method public Saveable? save(androidx.ui.savedinstancestate.SaverScope, Original? value);
  }

  public final class SaverKt {
    method public static <Original, Saveable> androidx.ui.savedinstancestate.Saver<Original,Saveable> Saver(kotlin.jvm.functions.Function2<? super androidx.ui.savedinstancestate.SaverScope,? super Original,? extends Saveable> save, kotlin.jvm.functions.Function1<? super Saveable,? extends Original> restore);
    method public static <T> androidx.ui.savedinstancestate.Saver<T,java.lang.Object> autoSaver();
  }

  public interface SaverScope {
    method public boolean canBeSaved(Object value);
  }

  public interface UiSavedStateRegistry {
    method public boolean canBeSaved(Object value);
    method public Object? consumeRestored(String key);
    method public java.util.Map<java.lang.String,java.lang.Object> performSave();
    method public void registerProvider(String key, kotlin.jvm.functions.Function0<?> valueProvider);
    method public void unregisterProvider(String key);
  }

  public final class UiSavedStateRegistryKt {
    method public static androidx.ui.savedinstancestate.UiSavedStateRegistry UiSavedStateRegistry(java.util.Map<java.lang.String,?>? restoredValues, kotlin.jvm.functions.Function1<java.lang.Object,java.lang.Boolean> canBeSaved);
    method public static error.NonExistentClass! getUiSavedStateRegistryAmbient();
  }

}

