IndexValue findKey(StoreKey key, FileSpan fileSpan, EnumSet<IndexEntryType> types) throws StoreException {
    return findKey(key, fileSpan, types, validIndexSegments);
  }
Finds the latest {@link IndexValue} associated with the {@code key} that matches any of the provided {@code types}
if present in the index within the given {@code fileSpan}.
@param key The key to do the exist check against
@param fileSpan FileSpan which specifies the range within which search should be made
@param types the types of {@link IndexEntryType} to look for. The latest entry matching one of the types will be
             returned
@return The latest {@link IndexValue} for {@code key} conforming to one of the types {@code types} - if one exists
within the {@code fileSpan}, {@code null} otherwise.
@throws StoreException
ambry-store/src/main/java/com/github/ambry/store/PersistentIndex.java