/**
 * Flowtype definitions for cache-manage-multi-request
 * Generated by Flowgen from a Typescript Definition
 * Flowgen v1.21.0
 */

import { Api, App } from "@yoroi/types";
declare type CacheMultiRequestParams<K: string, V> = {
  cachedInfosWithoutRecord: $ReadOnly<Map<K, App.CacheInfo>>,
  ids: $ReadOnlyArray<K>,
  request: (
    ids: $ReadOnlyArray<Api.RequestWithCache<K>>
  ) => Promise<
    $ReadOnly<
      Api.Response<
        $ObjMapi<{ [k: K]: any }, <key>(key) => Api.ResponseWithCache<V>>
      >
    >
  >,
  persistance: {
    read: (
      ids: $ReadOnlyArray<K>
    ) => $ReadOnlyArray<[K, App.CacheRecord<V> | null]>,
    save: (records: $ReadOnlyArray<[K, App.CacheRecord<V>]>) => void,
    ...
  },
  unknownRecordFactory?: (id: K) => $ReadOnly<App.CacheRecord<V>>,
  ...
};
declare export var cacheManageMultiRequest: <K: string, V>(
  x: CacheMultiRequestParams<K, V>
) => Promise<{
  records: Map<K, App.CacheRecord<V> | null>,
  updatedIds: K[],
  unknownIds: K[],
  revalidatedIds: K[],
  fromCacheIds: K[],
  isInvalidated: boolean,
  ...
}>;
