// Signature format: 3.0
package androidx.paging {

  public final class CachedPagedDataKt {
    method public static <T> kotlinx.coroutines.flow.Flow<androidx.paging.PagedData<T>> cachedIn(kotlinx.coroutines.flow.Flow<androidx.paging.PagedData<T>>, kotlinx.coroutines.CoroutineScope scope);
  }

  public abstract class DataSource<Key, Value> {
    method @AnyThread public void addInvalidatedCallback(androidx.paging.DataSource.InvalidatedCallback onInvalidatedCallback);
    method @AnyThread public final void addInvalidatedCallback(kotlin.jvm.functions.Function0<kotlin.Unit> onInvalidatedCallback);
    method @AnyThread public void invalidate();
    method @WorkerThread public boolean isInvalid();
    method public <ToValue> androidx.paging.DataSource<Key,ToValue> map(androidx.arch.core.util.Function<Value,ToValue> function);
    method public <ToValue> androidx.paging.DataSource<Key,ToValue> map(kotlin.jvm.functions.Function1<? super Value,? extends ToValue> function);
    method public <ToValue> androidx.paging.DataSource<Key,ToValue> mapByPage(androidx.arch.core.util.Function<java.util.List<Value>,java.util.List<ToValue>> function);
    method public <ToValue> androidx.paging.DataSource<Key,ToValue> mapByPage(kotlin.jvm.functions.Function1<? super java.util.List<? extends Value>,? extends java.util.List<? extends ToValue>> function);
    method @AnyThread public void removeInvalidatedCallback(androidx.paging.DataSource.InvalidatedCallback onInvalidatedCallback);
    method @AnyThread public final void removeInvalidatedCallback(kotlin.jvm.functions.Function0<kotlin.Unit> onInvalidatedCallback);
    property @WorkerThread public boolean isInvalid;
  }

  public abstract static class DataSource.Factory<Key, Value> {
    ctor public DataSource.Factory();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final kotlin.jvm.functions.Function0<androidx.paging.PagedSource<Key,Value>> asPagedSourceFactory();
    method public abstract androidx.paging.DataSource<Key,Value> create();
    method public <ToValue> androidx.paging.DataSource.Factory<Key,ToValue> map(androidx.arch.core.util.Function<Value,ToValue> function);
    method public <ToValue> androidx.paging.DataSource.Factory<Key,ToValue> map(kotlin.jvm.functions.Function1<? super Value,? extends ToValue> function);
    method public <ToValue> androidx.paging.DataSource.Factory<Key,ToValue> mapByPage(androidx.arch.core.util.Function<java.util.List<Value>,java.util.List<ToValue>> function);
    method public <ToValue> androidx.paging.DataSource.Factory<Key,ToValue> mapByPage(kotlin.jvm.functions.Function1<? super java.util.List<? extends Value>,? extends java.util.List<? extends ToValue>> function);
  }

  public static interface DataSource.InvalidatedCallback {
    method @AnyThread public void onInvalidated();
  }

  public final class DataSourceKt {
  }

  public abstract class ItemKeyedDataSource<Key, Value> extends androidx.paging.DataSource<Key,Value> {
    ctor public ItemKeyedDataSource();
    method public abstract Key getKey(Value item);
    method public abstract void loadAfter(androidx.paging.ItemKeyedDataSource.LoadParams<Key> params, androidx.paging.ItemKeyedDataSource.LoadCallback<Value> callback);
    method public abstract void loadBefore(androidx.paging.ItemKeyedDataSource.LoadParams<Key> params, androidx.paging.ItemKeyedDataSource.LoadCallback<Value> callback);
    method public abstract void loadInitial(androidx.paging.ItemKeyedDataSource.LoadInitialParams<Key> params, androidx.paging.ItemKeyedDataSource.LoadInitialCallback<Value> callback);
    method public final <ToValue> androidx.paging.ItemKeyedDataSource<Key,ToValue> map(androidx.arch.core.util.Function<Value,ToValue> function);
    method public final <ToValue> androidx.paging.ItemKeyedDataSource<Key,ToValue> map(kotlin.jvm.functions.Function1<? super Value,? extends ToValue> function);
    method public final <ToValue> androidx.paging.ItemKeyedDataSource<Key,ToValue> mapByPage(androidx.arch.core.util.Function<java.util.List<Value>,java.util.List<ToValue>> function);
    method public final <ToValue> androidx.paging.ItemKeyedDataSource<Key,ToValue> mapByPage(kotlin.jvm.functions.Function1<? super java.util.List<? extends Value>,? extends java.util.List<? extends ToValue>> function);
  }

  public abstract static class ItemKeyedDataSource.LoadCallback<Value> {
    ctor public ItemKeyedDataSource.LoadCallback();
    method public abstract void onResult(java.util.List<? extends Value> data);
  }

  public abstract static class ItemKeyedDataSource.LoadInitialCallback<Value> extends androidx.paging.ItemKeyedDataSource.LoadCallback<Value> {
    ctor public ItemKeyedDataSource.LoadInitialCallback();
    method public abstract void onResult(java.util.List<? extends Value> data, int position, int totalCount);
  }

  public static class ItemKeyedDataSource.LoadInitialParams<Key> {
    ctor public ItemKeyedDataSource.LoadInitialParams(Key? requestedInitialKey, int requestedLoadSize, boolean placeholdersEnabled);
    field public final boolean placeholdersEnabled;
    field public final Key? requestedInitialKey;
    field public final int requestedLoadSize;
  }

  public static class ItemKeyedDataSource.LoadParams<Key> {
    ctor public ItemKeyedDataSource.LoadParams(Key key, int requestedLoadSize);
    field public final Key key;
    field public final int requestedLoadSize;
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class LegacyPagedSource<Key, Value> extends androidx.paging.PagedSource<Key,Value> {
    ctor public LegacyPagedSource(internal androidx.paging.DataSource<Key,Value> dataSource);
    method public suspend Object load(androidx.paging.PagedSource.LoadParams<Key> params, kotlin.coroutines.Continuation<? super androidx.paging.PagedSource.LoadResult<Key,Value>> p);
  }

  public abstract sealed class LoadState {
  }

  public static final class LoadState.Done extends androidx.paging.LoadState {
    field public static final androidx.paging.LoadState.Done! INSTANCE;
  }

  public static final class LoadState.Error extends androidx.paging.LoadState {
    ctor public LoadState.Error(Throwable error);
    method public Throwable component1();
    method public androidx.paging.LoadState.Error copy(Throwable error);
    method public Throwable getError();
  }

  public static final class LoadState.Idle extends androidx.paging.LoadState {
    field public static final androidx.paging.LoadState.Idle! INSTANCE;
  }

  public static final class LoadState.Loading extends androidx.paging.LoadState {
    field public static final androidx.paging.LoadState.Loading! INSTANCE;
  }

  public enum LoadType {
    enum_constant public static final androidx.paging.LoadType END;
    enum_constant public static final androidx.paging.LoadType REFRESH;
    enum_constant public static final androidx.paging.LoadType START;
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface NullPaddedList<T> {
    method public T! getFromStorage(int localIndex);
    method public int getPlaceholdersEnd();
    method public int getPlaceholdersStart();
    method public int getSize();
    method public int getStorageCount();
    property public abstract int placeholdersEnd;
    property public abstract int placeholdersStart;
    property public abstract int size;
    property public abstract int storageCount;
  }

  public final class PageEventKt {
  }

  public abstract class PageKeyedDataSource<Key, Value> extends androidx.paging.DataSource<Key,Value> {
    ctor public PageKeyedDataSource();
    method public abstract void loadAfter(androidx.paging.PageKeyedDataSource.LoadParams<Key> params, androidx.paging.PageKeyedDataSource.LoadCallback<Key,Value> callback);
    method public abstract void loadBefore(androidx.paging.PageKeyedDataSource.LoadParams<Key> params, androidx.paging.PageKeyedDataSource.LoadCallback<Key,Value> callback);
    method public abstract void loadInitial(androidx.paging.PageKeyedDataSource.LoadInitialParams<Key> params, androidx.paging.PageKeyedDataSource.LoadInitialCallback<Key,Value> callback);
    method public final <ToValue> androidx.paging.PageKeyedDataSource<Key,ToValue> map(androidx.arch.core.util.Function<Value,ToValue> function);
    method public final <ToValue> androidx.paging.PageKeyedDataSource<Key,ToValue> map(kotlin.jvm.functions.Function1<? super Value,? extends ToValue> function);
    method public final <ToValue> androidx.paging.PageKeyedDataSource<Key,ToValue> mapByPage(androidx.arch.core.util.Function<java.util.List<Value>,java.util.List<ToValue>> function);
    method public final <ToValue> androidx.paging.PageKeyedDataSource<Key,ToValue> mapByPage(kotlin.jvm.functions.Function1<? super java.util.List<? extends Value>,? extends java.util.List<? extends ToValue>> function);
  }

  public abstract static class PageKeyedDataSource.LoadCallback<Key, Value> {
    ctor public PageKeyedDataSource.LoadCallback();
    method public abstract void onResult(java.util.List<? extends Value> data, Key? adjacentPageKey);
  }

  public abstract static class PageKeyedDataSource.LoadInitialCallback<Key, Value> {
    ctor public PageKeyedDataSource.LoadInitialCallback();
    method public abstract void onResult(java.util.List<? extends Value> data, int position, int totalCount, Key? previousPageKey, Key? nextPageKey);
    method public abstract void onResult(java.util.List<? extends Value> data, Key? previousPageKey, Key? nextPageKey);
  }

  public static class PageKeyedDataSource.LoadInitialParams<Key> {
    ctor public PageKeyedDataSource.LoadInitialParams(int requestedLoadSize, boolean placeholdersEnabled);
    field public final boolean placeholdersEnabled;
    field public final int requestedLoadSize;
  }

  public static class PageKeyedDataSource.LoadParams<Key> {
    ctor public PageKeyedDataSource.LoadParams(Key key, int requestedLoadSize);
    field public final Key key;
    field public final int requestedLoadSize;
  }

  public final class PagedData<T> {
    method public androidx.paging.PagedData<T> filter(kotlin.jvm.functions.Function1<? super T,java.lang.Boolean> predicate);
    method public <R> androidx.paging.PagedData<R> flatMap(kotlin.jvm.functions.Function1<? super T,? extends java.lang.Iterable<? extends R>> transform);
    method public <R extends T> androidx.paging.PagedData<T> insertSeparators(kotlin.jvm.functions.Function2<? super T,? super T,? extends R> generator);
    method public <R> androidx.paging.PagedData<R> map(kotlin.jvm.functions.Function1<? super T,? extends R> transform);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class PagedDataDiffer<T> {
    ctor public PagedDataDiffer(kotlinx.coroutines.CoroutineDispatcher mainDispatcher, kotlinx.coroutines.CoroutineDispatcher workerDispatcher);
    ctor public PagedDataDiffer();
    method public final void connect(kotlinx.coroutines.flow.Flow<androidx.paging.PagedData<T>> flow, kotlinx.coroutines.CoroutineScope scope, androidx.paging.PresenterCallback callback);
    method public final operator T? get(int index);
    method public final int getSize();
    method public abstract suspend Object! performDiff(androidx.paging.NullPaddedList<T> previousList, androidx.paging.NullPaddedList<T> newList, java.util.Map<androidx.paging.LoadType,? extends androidx.paging.LoadState> newLoadStates, kotlin.coroutines.Continuation<? super kotlin.Unit> p);
    method public final void retry();
    property public final int size;
  }

  public final class PagedDataFlow {
    method public static <Key, Value> kotlinx.coroutines.flow.Flow<androidx.paging.PagedData<Value>> create(androidx.paging.PagingConfig config, Key? initialKey, kotlin.jvm.functions.Function0<? extends androidx.paging.PagedSource<Key,Value>> pagedSourceFactory);
    method public static <Key, Value> kotlinx.coroutines.flow.Flow<androidx.paging.PagedData<Value>> create(androidx.paging.PagingConfig config, kotlin.jvm.functions.Function0<? extends androidx.paging.PagedSource<Key,Value>> pagedSourceFactory);
  }

  public abstract class PagedList<T> extends java.util.AbstractList<T> {
    method @Deprecated public final void addWeakCallback(java.util.List<? extends T>? previousSnapshot, androidx.paging.PagedList.Callback callback);
    method public final void addWeakCallback(androidx.paging.PagedList.Callback callback);
    method public final void addWeakLoadStateListener(kotlin.jvm.functions.Function2<? super androidx.paging.LoadType,? super androidx.paging.LoadState,kotlin.Unit> listener);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final <K, T> androidx.paging.PagedList<T> create(androidx.paging.PagedSource<K,T> pagedSource, androidx.paging.PagedSource.LoadResult.Page<K,T>? initialPage, kotlinx.coroutines.CoroutineScope coroutineScope, kotlinx.coroutines.CoroutineDispatcher notifyDispatcher, kotlinx.coroutines.CoroutineDispatcher fetchDispatcher, androidx.paging.PagedList.BoundaryCallback<T>? boundaryCallback, androidx.paging.PagedList.Config config, K? key);
    method public abstract void detach();
    method public T? get(int index);
    method public final androidx.paging.PagedList.Config getConfig();
    method @Deprecated public final androidx.paging.DataSource<?,T> getDataSource();
    method public abstract Object? getLastKey();
    method public final int getLoadedCount();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final androidx.paging.NullPaddedList<T> getNullPaddedList();
    method public final int getPositionOffset();
    method public int getSize();
    method public abstract boolean isDetached();
    method public boolean isImmutable();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final int lastLoad();
    method public final void loadAround(int index);
    method public final void removeWeakCallback(androidx.paging.PagedList.Callback callback);
    method public final void removeWeakLoadStateListener(kotlin.jvm.functions.Function2<? super androidx.paging.LoadType,? super androidx.paging.LoadState,kotlin.Unit> listener);
    method public void retry();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setInitialLoadState(androidx.paging.LoadType loadType, androidx.paging.LoadState loadState);
    method public final java.util.List<T> snapshot();
    property @Deprecated public final androidx.paging.DataSource<?,T> dataSource;
    property public abstract boolean isDetached;
    property public boolean isImmutable;
    property public abstract Object? lastKey;
    property public final int loadedCount;
    property public final int positionOffset;
    property public int size;
  }

  @MainThread public abstract static class PagedList.BoundaryCallback<T> {
    ctor public PagedList.BoundaryCallback();
    method public void onItemAtEndLoaded(T itemAtEnd);
    method public void onItemAtFrontLoaded(T itemAtFront);
    method public void onZeroItemsLoaded();
  }

  public static final class PagedList.Builder<Key, Value> {
    ctor @Deprecated public PagedList.Builder(androidx.paging.DataSource<Key,Value> dataSource, androidx.paging.PagedList.Config config);
    ctor @Deprecated public PagedList.Builder(androidx.paging.DataSource<Key,Value> dataSource, int pageSize);
    ctor public PagedList.Builder(androidx.paging.PagedSource<Key,Value> pagedSource, androidx.paging.PagedSource.LoadResult.Page<Key,Value> initialPage, androidx.paging.PagedList.Config config);
    ctor public PagedList.Builder(androidx.paging.PagedSource<Key,Value> pagedSource, androidx.paging.PagedSource.LoadResult.Page<Key,Value> initialPage, int pageSize);
    method public androidx.paging.PagedList<Value> build();
    method public androidx.paging.PagedList.Builder<Key,Value> setBoundaryCallback(androidx.paging.PagedList.BoundaryCallback<Value>? boundaryCallback);
    method public androidx.paging.PagedList.Builder<Key,Value> setCoroutineScope(kotlinx.coroutines.CoroutineScope coroutineScope);
    method public androidx.paging.PagedList.Builder<Key,Value> setFetchDispatcher(kotlinx.coroutines.CoroutineDispatcher fetchDispatcher);
    method @Deprecated public androidx.paging.PagedList.Builder<Key,Value> setFetchExecutor(java.util.concurrent.Executor fetchExecutor);
    method public androidx.paging.PagedList.Builder<Key,Value> setInitialKey(Key? initialKey);
    method public androidx.paging.PagedList.Builder<Key,Value> setNotifyDispatcher(kotlinx.coroutines.CoroutineDispatcher notifyDispatcher);
    method @Deprecated public androidx.paging.PagedList.Builder<Key,Value> setNotifyExecutor(java.util.concurrent.Executor notifyExecutor);
  }

  public abstract static class PagedList.Callback {
    ctor public PagedList.Callback();
    method public abstract void onChanged(int position, int count);
    method public abstract void onInserted(int position, int count);
    method public abstract void onRemoved(int position, int count);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class PagedList.Companion {
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <K, T> androidx.paging.PagedList<T> create(androidx.paging.PagedSource<K,T> pagedSource, androidx.paging.PagedSource.LoadResult.Page<K,T>? initialPage, kotlinx.coroutines.CoroutineScope coroutineScope, kotlinx.coroutines.CoroutineDispatcher notifyDispatcher, kotlinx.coroutines.CoroutineDispatcher fetchDispatcher, androidx.paging.PagedList.BoundaryCallback<T>? boundaryCallback, androidx.paging.PagedList.Config config, K? key);
  }

  public static final class PagedList.Config {
    field public static final int MAX_SIZE_UNBOUNDED = 2147483647; // 0x7fffffff
    field public final boolean enablePlaceholders;
    field public final int initialLoadSizeHint;
    field public final int maxSize;
    field public final int pageSize;
    field public final int prefetchDistance;
  }

  public static final class PagedList.Config.Builder {
    ctor public PagedList.Config.Builder();
    method public androidx.paging.PagedList.Config build();
    method public androidx.paging.PagedList.Config.Builder setEnablePlaceholders(boolean enablePlaceholders);
    method public androidx.paging.PagedList.Config.Builder setInitialLoadSizeHint(@IntRange(from=1) int initialLoadSizeHint);
    method public androidx.paging.PagedList.Config.Builder setMaxSize(@IntRange(from=2) int maxSize);
    method public androidx.paging.PagedList.Config.Builder setPageSize(@IntRange(from=1) int pageSize);
    method public androidx.paging.PagedList.Config.Builder setPrefetchDistance(@IntRange(from=0) int prefetchDistance);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract static class PagedList.LoadStateManager {
    method public final void dispatchCurrentLoadState(kotlin.jvm.functions.Function2<? super androidx.paging.LoadType,? super androidx.paging.LoadState,kotlin.Unit> callback);
    method public final androidx.paging.LoadState getEndState();
    method public final androidx.paging.LoadState getRefreshState();
    method public final androidx.paging.LoadState getStartState();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract void onStateChanged(androidx.paging.LoadType type, androidx.paging.LoadState state);
    method public final void setEndState(androidx.paging.LoadState p);
    method public final void setRefreshState(androidx.paging.LoadState p);
    method public final void setStartState(androidx.paging.LoadState p);
    method public final void setState(androidx.paging.LoadType type, androidx.paging.LoadState state);
    property public final androidx.paging.LoadState endState;
    property public final androidx.paging.LoadState refreshState;
    property public final androidx.paging.LoadState startState;
  }

  public final class PagedListConfigKt {
    method public static androidx.paging.PagedList.Config Config(int pageSize, int prefetchDistance = pageSize, boolean enablePlaceholders = true, int initialLoadSizeHint = pageSize * androidx.paging.PagedList.Config.Builder.DEFAULT_INITIAL_PAGE_MULTIPLIER, int maxSize = 2147483647);
  }

  public final class PagedListKt {
    method @Deprecated public static <Key, Value> androidx.paging.PagedList<Value> PagedList(androidx.paging.DataSource<Key,Value> dataSource, androidx.paging.PagedList.Config config, java.util.concurrent.Executor notifyExecutor, java.util.concurrent.Executor fetchExecutor, androidx.paging.PagedList.BoundaryCallback<Value>? boundaryCallback = null, Key? initialKey = null);
  }

  public abstract class PagedSource<Key, Value> {
    ctor public PagedSource();
    method public final boolean getInvalid();
    method public Key? getRefreshKeyFromPage(int indexInPage, androidx.paging.PagedSource.LoadResult.Page<Key,Value> page);
    method public void invalidate();
    method public abstract suspend Object load(androidx.paging.PagedSource.LoadParams<Key> params, kotlin.coroutines.Continuation<? super androidx.paging.PagedSource.LoadResult<Key,Value>> p);
    method public final void registerInvalidatedCallback(kotlin.jvm.functions.Function0<kotlin.Unit> onInvalidatedCallback);
    method public final void unregisterInvalidatedCallback(kotlin.jvm.functions.Function0<kotlin.Unit> onInvalidatedCallback);
    property public final boolean invalid;
  }

  public static final class PagedSource.LoadParams<Key> {
    ctor public PagedSource.LoadParams(androidx.paging.LoadType loadType, Key? key, int loadSize, boolean placeholdersEnabled, int pageSize);
    method public androidx.paging.LoadType component1();
    method public Key? component2();
    method public int component3();
    method public boolean component4();
    method public int component5();
    method public androidx.paging.PagedSource.LoadParams<Key> copy(androidx.paging.LoadType loadType, Key? key, int loadSize, boolean placeholdersEnabled, int pageSize);
    method public Key? getKey();
    method public int getLoadSize();
    method public androidx.paging.LoadType getLoadType();
    method public int getPageSize();
    method public boolean getPlaceholdersEnabled();
  }

  public abstract static sealed class PagedSource.LoadResult<Key, Value> {
  }

  public static final class PagedSource.LoadResult.Error<Key, Value> extends androidx.paging.PagedSource.LoadResult<Key,Value> {
    ctor public PagedSource.LoadResult.Error(Throwable throwable);
    method public Throwable component1();
    method public androidx.paging.PagedSource.LoadResult.Error<Key,Value> copy(Throwable throwable);
    method public Throwable getThrowable();
  }

  public static final class PagedSource.LoadResult.Page<Key, Value> extends androidx.paging.PagedSource.LoadResult<Key,Value> {
    ctor public PagedSource.LoadResult.Page(java.util.List<? extends Value> data, Key? prevKey, Key? nextKey, @IntRange(from=null) int itemsBefore, @IntRange(from=null) int itemsAfter);
    method public java.util.List<Value> component1();
    method public Key? component2();
    method public Key? component3();
    method public int component4();
    method public int component5();
    method public androidx.paging.PagedSource.LoadResult.Page<Key,Value> copy(java.util.List<? extends Value> data, Key? prevKey, Key? nextKey, int itemsBefore, int itemsAfter);
    method public java.util.List<Value> getData();
    method public int getItemsAfter();
    method public int getItemsBefore();
    method public Key? getNextKey();
    method public Key? getPrevKey();
    field public static final int COUNT_UNDEFINED = -2147483648; // 0x80000000
    field public static final androidx.paging.PagedSource.LoadResult.Page.Companion! Companion;
  }

  public static final class PagedSource.LoadResult.Page.Companion {
  }

  public final class PagedSourceKt {
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static <Key> androidx.paging.PagedSource.LoadParams<Key> toRefreshLoadParams(androidx.paging.PagedList.Config, Key? key);
  }

  public final class PagingConfig {
    ctor public PagingConfig(int pageSize, int prefetchDistance, boolean enablePlaceholders, int initialLoadSize, int maxSize);
    field public static final androidx.paging.PagingConfig.Companion! Companion;
    field public static final int MAX_SIZE_UNBOUNDED = 2147483647; // 0x7fffffff
    field public final boolean enablePlaceholders;
    field public final int initialLoadSize;
    field public final int maxSize;
    field public final int pageSize;
    field public final int prefetchDistance;
  }

  public static final class PagingConfig.Builder {
    ctor public PagingConfig.Builder(int pageSize);
    method public androidx.paging.PagingConfig build();
    method public androidx.paging.PagingConfig.Builder setEnablePlaceholders(boolean enablePlaceholders);
    method public androidx.paging.PagingConfig.Builder setInitialLoadSizeHint(@IntRange(from=1) int initialLoadSizeHint);
    method public androidx.paging.PagingConfig.Builder setMaxSize(@IntRange(from=2) int maxSize);
    method public androidx.paging.PagingConfig.Builder setPrefetchDistance(@IntRange(from=0) int prefetchDistance);
  }

  public static final class PagingConfig.Companion {
  }

  public abstract class PositionalDataSource<T> extends androidx.paging.DataSource<java.lang.Integer,T> {
    ctor public PositionalDataSource();
    method public static final int computeInitialLoadPosition(androidx.paging.PositionalDataSource.LoadInitialParams params, int totalCount);
    method public static final int computeInitialLoadSize(androidx.paging.PositionalDataSource.LoadInitialParams params, int initialLoadPosition, int totalCount);
    method @WorkerThread public abstract void loadInitial(androidx.paging.PositionalDataSource.LoadInitialParams params, androidx.paging.PositionalDataSource.LoadInitialCallback<T> callback);
    method @WorkerThread public abstract void loadRange(androidx.paging.PositionalDataSource.LoadRangeParams params, androidx.paging.PositionalDataSource.LoadRangeCallback<T> callback);
    method public final <V> androidx.paging.PositionalDataSource<V> map(androidx.arch.core.util.Function<T,V> function);
    method public final <V> androidx.paging.PositionalDataSource<V> map(kotlin.jvm.functions.Function1<? super T,? extends V> function);
    method public final <V> androidx.paging.PositionalDataSource<V> mapByPage(androidx.arch.core.util.Function<java.util.List<T>,java.util.List<V>> function);
    method public final <V> androidx.paging.PositionalDataSource<V> mapByPage(kotlin.jvm.functions.Function1<? super java.util.List<? extends T>,? extends java.util.List<? extends V>> function);
  }

  public abstract static class PositionalDataSource.LoadInitialCallback<T> {
    ctor public PositionalDataSource.LoadInitialCallback();
    method public abstract void onResult(java.util.List<? extends T> data, int position, int totalCount);
    method public abstract void onResult(java.util.List<? extends T> data, int position);
  }

  public static class PositionalDataSource.LoadInitialParams {
    ctor public PositionalDataSource.LoadInitialParams(int requestedStartPosition, int requestedLoadSize, int pageSize, boolean placeholdersEnabled);
    field public final int pageSize;
    field public final boolean placeholdersEnabled;
    field public final int requestedLoadSize;
    field public final int requestedStartPosition;
  }

  public abstract static class PositionalDataSource.LoadRangeCallback<T> {
    ctor public PositionalDataSource.LoadRangeCallback();
    method public abstract void onResult(java.util.List<? extends T> data);
  }

  public static class PositionalDataSource.LoadRangeParams {
    ctor public PositionalDataSource.LoadRangeParams(int startPosition, int loadSize);
    field public final int loadSize;
    field public final int startPosition;
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface PresenterCallback {
    method public void onChanged(int position, int count);
    method public void onInserted(int position, int count);
    method public void onRemoved(int position, int count);
    method public void onStateUpdate(androidx.paging.LoadType loadType, androidx.paging.LoadState loadState);
  }

  public final class SeparatorsKt {
  }

}

package androidx.paging.multicast {

  public final class ChannelManagerKt {
  }

}

