// Signature format: 4.0
package androidx.datastore.preferences.core {

  public final class MutablePreferences extends androidx.datastore.preferences.core.Preferences {
    method public java.util.Map<androidx.datastore.preferences.core.Preferences.Key<? extends java.lang.Object?>,java.lang.Object> asMap();
    method public void clear();
    method public operator <T> boolean contains(androidx.datastore.preferences.core.Preferences.Key<T> key);
    method public operator <T> T? get(androidx.datastore.preferences.core.Preferences.Key<T> key);
    method public operator void minusAssign(androidx.datastore.preferences.core.Preferences.Key<? extends java.lang.Object?> key);
    method public operator void plusAssign(androidx.datastore.preferences.core.Preferences prefs);
    method public operator void plusAssign(androidx.datastore.preferences.core.Preferences.Pair<? extends java.lang.Object?> pair);
    method public void putAll(androidx.datastore.preferences.core.Preferences.Pair<? extends java.lang.Object?>... pairs);
    method public <T> T remove(androidx.datastore.preferences.core.Preferences.Key<T> key);
    method public operator <T> void set(androidx.datastore.preferences.core.Preferences.Key<T> key, T value);
  }

  public final class PreferenceDataStoreFactory {
    method public androidx.datastore.core.DataStore<androidx.datastore.preferences.core.Preferences> create(optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<androidx.datastore.preferences.core.Preferences>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<androidx.datastore.preferences.core.Preferences>> migrations, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
    method public androidx.datastore.core.DataStore<androidx.datastore.preferences.core.Preferences> create(optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<androidx.datastore.preferences.core.Preferences>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<androidx.datastore.preferences.core.Preferences>> migrations, optional kotlinx.coroutines.CoroutineScope scope, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
    method public androidx.datastore.core.DataStore<androidx.datastore.preferences.core.Preferences> create(optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<androidx.datastore.preferences.core.Preferences>? corruptionHandler, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
    method public androidx.datastore.core.DataStore<androidx.datastore.preferences.core.Preferences> create(androidx.datastore.core.Storage<androidx.datastore.preferences.core.Preferences> storage, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<androidx.datastore.preferences.core.Preferences>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<androidx.datastore.preferences.core.Preferences>> migrations, optional kotlinx.coroutines.CoroutineScope scope);
    method public androidx.datastore.core.DataStore<androidx.datastore.preferences.core.Preferences> create(kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
    method public androidx.datastore.core.DataStore<androidx.datastore.preferences.core.Preferences> createWithPath(optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<androidx.datastore.preferences.core.Preferences>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<androidx.datastore.preferences.core.Preferences>> migrations, optional kotlinx.coroutines.CoroutineScope scope, kotlin.jvm.functions.Function0<okio.Path> produceFile);
    field public static final androidx.datastore.preferences.core.PreferenceDataStoreFactory INSTANCE;
  }

  public abstract class Preferences {
    method public abstract java.util.Map<androidx.datastore.preferences.core.Preferences.Key<? extends java.lang.Object?>,java.lang.Object> asMap();
    method public abstract operator <T> boolean contains(androidx.datastore.preferences.core.Preferences.Key<T> key);
    method public abstract operator <T> T? get(androidx.datastore.preferences.core.Preferences.Key<T> key);
    method public final androidx.datastore.preferences.core.MutablePreferences toMutablePreferences();
    method public final androidx.datastore.preferences.core.Preferences toPreferences();
  }

  public static final class Preferences.Key<T> {
    method public String getName();
    method public infix androidx.datastore.preferences.core.Preferences.Pair<T> to(T value);
    property public final String name;
  }

  public static final class Preferences.Pair<T> {
  }

  public final class PreferencesFactory {
    method public static androidx.datastore.preferences.core.Preferences create(androidx.datastore.preferences.core.Preferences.Pair<? extends java.lang.Object?>... pairs);
    method public static androidx.datastore.preferences.core.Preferences createEmpty();
    method public static androidx.datastore.preferences.core.MutablePreferences createMutable(androidx.datastore.preferences.core.Preferences.Pair<? extends java.lang.Object?>... pairs);
  }

  public final class PreferencesKeys {
    method public static androidx.datastore.preferences.core.Preferences.Key<java.lang.Boolean> booleanKey(String name);
    method public static androidx.datastore.preferences.core.Preferences.Key<byte[]> byteArrayKey(String name);
    method public static androidx.datastore.preferences.core.Preferences.Key<java.lang.Double> doubleKey(String name);
    method public static androidx.datastore.preferences.core.Preferences.Key<java.lang.Float> floatKey(String name);
    method public static androidx.datastore.preferences.core.Preferences.Key<java.lang.Integer> intKey(String name);
    method public static androidx.datastore.preferences.core.Preferences.Key<java.lang.Long> longKey(String name);
    method public static androidx.datastore.preferences.core.Preferences.Key<java.lang.String> stringKey(String name);
    method public static androidx.datastore.preferences.core.Preferences.Key<java.util.Set<java.lang.String>> stringSetKey(String name);
  }

  public final class PreferencesKt {
    method public static suspend Object? edit(androidx.datastore.core.DataStore<androidx.datastore.preferences.core.Preferences>, kotlin.jvm.functions.Function2<? super androidx.datastore.preferences.core.MutablePreferences,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> transform, kotlin.coroutines.Continuation<? super androidx.datastore.preferences.core.Preferences>);
  }

  public final class PreferencesSerializer implements androidx.datastore.core.okio.OkioSerializer<androidx.datastore.preferences.core.Preferences> {
    method public androidx.datastore.preferences.core.Preferences getDefaultValue();
    method @kotlin.jvm.Throws(exceptionClasses={IOException::class, CorruptionException::class}) public suspend Object? readFrom(okio.BufferedSource source, kotlin.coroutines.Continuation<? super androidx.datastore.preferences.core.Preferences>) throws androidx.datastore.core.CorruptionException, java.io.IOException;
    method @kotlin.jvm.Throws(exceptionClasses={IOException::class, CorruptionException::class}) public suspend Object? writeTo(androidx.datastore.preferences.core.Preferences t, okio.BufferedSink sink, kotlin.coroutines.Continuation<? super kotlin.Unit>) throws androidx.datastore.core.CorruptionException, java.io.IOException;
    property public androidx.datastore.preferences.core.Preferences defaultValue;
    field public static final androidx.datastore.preferences.core.PreferencesSerializer INSTANCE;
  }

}

