docs: def cleanup(arctic_lib, symbol, version_ids, versions_coll, shas_to_delete=None, pointers_cfgs=None):
      """
      Helper method for cleaning up chunks from a version store
      """
      pointers_cfgs = set(pointers_cfgs) if pointers_cfgs else set()
      collection = arctic_lib.get_top_level_collection()
      version_ids = list(version_ids)
  
      # Iterate versions to check if they are created only with fw pointers, parent pointers (old), or mixed
      # Keep in mind that the version is not yet inserted.
      all_symbol_pointers_cfgs = _get_symbol_pointer_cfgs(symbol, versions_coll)
      all_symbol_pointers_cfgs.update(pointers_cfgs)
  
      # All the versions of the symbol have been created with old arctic or with disabled forward pointers.
      # Preserves backwards compatibility and regression for old pointers implementation.
      if all_symbol_pointers_cfgs == {FwPointersCfg.DISABLED} or not all_symbol_pointers_cfgs:
          _cleanup_parent_pointers(collection, symbol, version_ids)
          return
  
      # All the versions of the symbol we wish to delete have been created with forward pointers
      if FwPointersCfg.DISABLED not in all_symbol_pointers_cfgs:
          _cleanup_fw_pointers(collection, symbol, version_ids, versions_coll,
                               shas_to_delete=shas_to_delete, do_clean=True)
          return
  
      # Reaching here means the symbol has versions with mixed forward pointers and legacy/parent pointer configurations
      _cleanup_mixed(symbol, collection, version_ids, versions_coll)