content: package im.actor.runtime;
  
  import im.actor.runtime.bser.BserCreator;
  import im.actor.runtime.bser.BserObject;
  import im.actor.runtime.mvvm.PlatformDisplayList;
  import im.actor.runtime.storage.ListEngine;
  import im.actor.runtime.storage.ListEngineItem;
  import im.actor.runtime.storage.ListStorage;
  
  public interface EnginesRuntime {
  
      /**
       * Creating of List Engine instance
       *
       * @param storage list storage
       * @param creator list creator
       * @param <T>     type of object
       * @return the List Engine
       */
      <T extends BserObject & ListEngineItem> ListEngine<T> createListEngine(ListStorage storage, BserCreator<T> creator);
  
      /**
       * Creating of Display List instance
       *
       * @param listEngine       list engine
       * @param isSharedInstance is this list can be used by different lists
       * @param clazz            entity simple class name
       * @param <T>              type of object
       * @return the Display List
       */
      <T extends BserObject & ListEngineItem> PlatformDisplayList<T> createDisplayList(ListEngine<T> listEngine, boolean isSharedInstance,
                                                                               String clazz);
  }
  