async function listModels() {
    const schemes = ModelStoreManagerRegistry.getSchemes();
    const out = {};
    for (const scheme of schemes){
        const schemeOut = await ModelStoreManagerRegistry.getManager(scheme).listModels();
        for(const path in schemeOut){
            const url = scheme + URL_SCHEME_SUFFIX + path;
            out[url] = schemeOut[path];
        }
    }
    return out;
}
List all models stored in registered storage mediums.

For a web browser environment, the registered mediums are Local Storage and
IndexedDB.

```js
// First create and save a model.
const model = tf.sequential();
model.add(tf.layers.dense(
    {units: 1, inputShape: [10], activation: 'sigmoid'}));
await model.save('localstorage://demo/management/model1');

// Then list existing models.
console.log(JSON.stringify(await tf.io.listModels()));

// Delete the model.
await tf.io.removeModel('localstorage://demo/management/model1');

// List models again.
console.log(JSON.stringify(await tf.io.listModels()));
```

@returns A `Promise` of a dictionary mapping URLs of existing models to
their model artifacts info. URLs include medium-specific schemes, e.g.,
  'indexeddb://my/model/1'. Model artifacts info include type of the
model's topology, byte sizes of the topology, weights, etc.

@doc {
  heading: 'Models',
  subheading: 'Management',
  namespace: 'io',
  ignoreCI: true
}