1// Signature format: 4.0
2package androidx.datastore.core {
3
4  public final class CorruptionException extends java.io.IOException {
5    ctor public CorruptionException(String message, optional Throwable? cause);
6  }
7
8  public interface DataMigration<T> {
9    method public suspend Object? cleanUp(kotlin.coroutines.Continuation<? super kotlin.Unit> p);
10    method public suspend Object? migrate(T? currentData, kotlin.coroutines.Continuation<? super T> p);
11    method public suspend Object? shouldMigrate(T? currentData, kotlin.coroutines.Continuation<? super java.lang.Boolean> p);
12  }
13
14  public interface DataStore<T> {
15    method public kotlinx.coroutines.flow.Flow<T> getData();
16    method public suspend Object? updateData(kotlin.jvm.functions.Function2<? super T,? super kotlin.coroutines.Continuation<? super T>,?> transform, kotlin.coroutines.Continuation<? super T> p);
17    property public abstract kotlinx.coroutines.flow.Flow<T> data;
18  }
19
20  public final class DataStoreFactory {
21    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
22    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations, optional kotlinx.coroutines.CoroutineScope scope, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
23    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
24    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
25    field public static final androidx.datastore.core.DataStoreFactory INSTANCE;
26  }
27
28  public interface Serializer<T> {
29    method public T! getDefaultValue();
30    method public suspend Object? readFrom(java.io.InputStream input, kotlin.coroutines.Continuation<? super T> p);
31    method public suspend Object? writeTo(T? t, java.io.OutputStream output, kotlin.coroutines.Continuation<? super kotlin.Unit> p);
32    property public abstract T! defaultValue;
33  }
34
35}
36
37package androidx.datastore.core.handlers {
38
39  public final class ReplaceFileCorruptionHandler<T> {
40    ctor public ReplaceFileCorruptionHandler(kotlin.jvm.functions.Function1<? super androidx.datastore.core.CorruptionException,? extends T> produceNewData);
41    method @kotlin.jvm.Throws(exceptionClasses=IOException::class) public suspend Object? handleCorruption(androidx.datastore.core.CorruptionException ex, kotlin.coroutines.Continuation<? super T> p) throws java.io.IOException;
42  }
43
44}
45
46