// Signature format: 4.0
package androidx.arch.core.internal {

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class FastSafeIterableMap<K, V> extends androidx.arch.core.internal.SafeIterableMap<K!,V!> {
    ctor public FastSafeIterableMap();
    method public java.util.Map.Entry<K!,V!>? ceil(K!);
    method public boolean contains(K!);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class SafeIterableMap<K, V> implements java.lang.Iterable<java.util.Map.Entry<K!,V!>!> {
    ctor public SafeIterableMap();
    method public java.util.Iterator<java.util.Map.Entry<K!,V!>!> descendingIterator();
    method public java.util.Map.Entry<K!,V!>? eldest();
    method protected androidx.arch.core.internal.SafeIterableMap.Entry<K!,V!>? get(K!);
    method public java.util.Iterator<java.util.Map.Entry<K!,V!>!> iterator();
    method public androidx.arch.core.internal.SafeIterableMap.IteratorWithAdditions iteratorWithAdditions();
    method public java.util.Map.Entry<K!,V!>? newest();
    method public V! putIfAbsent(K, V);
    method public V! remove(K);
    method public int size();
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class SafeIterableMap.IteratorWithAdditions extends androidx.arch.core.internal.SafeIterableMap.SupportRemove<K!,V!> implements java.util.Iterator<java.util.Map.Entry<K!,V!>!> {
    method public boolean hasNext();
    method public java.util.Map.Entry<K!,V!>! next();
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract static class SafeIterableMap.SupportRemove<K, V> {
    ctor public SafeIterableMap.SupportRemove();
  }

}

package androidx.arch.core.util {

  public interface Function<I, O> {
    method public O! apply(I!);
  }

}

