IndexValue findKey(StoreKey key, FileSpan fileSpan) throws StoreException {
    return findKey(key, fileSpan, EnumSet.of(IndexEntryType.PUT, IndexEntryType.DELETE, IndexEntryType.UNDELETE));
  }
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
@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