export enum CommonAssetType {
  PHYS_PRESET = "PHYS_PRESET",
  XANIM = "XANIM",
  XMODEL = "XMODEL",
  MATERIAL = "MATERIAL",
  TECHNIQUE_SET = "TECHNIQUE_SET",
  IMAGE = "IMAGE",
  SOUND = "SOUND",
  SOUND_CURVE = "SOUND_CURVE",
  LOADED_SOUND = "LOADED_SOUND",
  CLIP_MAP = "CLIP_MAP",
  COM_WORLD = "COM_WORLD",
  GAME_WORLD_SP = "GAME_WORLD_SP",
  GAME_WORLD_MP = "GAME_WORLD_MP",
  MAP_ENTS = "MAP_ENTS",
  GFX_WORLD = "GFX_WORLD",
  LIGHT_DEF = "LIGHT_DEF",
  UI_MAP = "UI_MAP",
  FONT = "FONT",
  MENU_LIST = "MENU_LIST",
  MENU = "MENU",
  LOCALIZE_ENTRY = "LOCALIZE_ENTRY",
  WEAPON = "WEAPON",
  SOUND_DRIVER_GLOBALS = "SOUND_DRIVER_GLOBALS",
  FX = "FX",
  IMPACT_FX = "IMPACT_FX",
  AI_TYPE = "AI_TYPE",
  MP_TYPE = "MP_TYPE",
  CHARACTER = "CHARACTER",
  XMODEL_ALIAS = "XMODEL_ALIAS",
  RAW_FILE = "RAW_FILE",
  STRING_TABLE = "STRING_TABLE",
  XMODEL_PIECES = "XMODEL_PIECES",
  PHYS_COLL_MAP = "PHYS_COLL_MAP",
  XMODEL_SURFS = "XMODEL_SURFS",
  PIXEL_SHADER = "PIXEL_SHADER",
  VERTEX_SHADER = "VERTEX_SHADER",
  VERTEX_DECL = "VERTEX_DECL",
  FX_WORLD = "FX_WORLD",
  LEADERBOARD = "LEADERBOARD",
  STRUCTURED_DATA_DEF = "STRUCTURED_DATA_DEF",
  TRACER = "TRACER",
  VEHICLE = "VEHICLE",
  ADDON_MAP_ENTS = "ADDON_MAP_ENTS",
  GLASS_WORLD = "GLASS_WORLD",
  PATH_DATA = "PATH_DATA",
  VEHICLE_TRACK = "VEHICLE_TRACK",
  ATTACHMENT = "ATTACHMENT",
  SURFACE_FX = "SURFACE_FX",
  SCRIPT = "SCRIPT",
  PHYS_CONSTRAINTS = "PHYS_CONSTRAINTS",
  DESTRUCTIBLE_DEF = "DESTRUCTIBLE_DEF",
  SOUND_PATCH = "SOUND_PATCH",
  WEAPON_DEF = "WEAPON_DEF",
  WEAPON_VARIANT = "WEAPON_VARIANT",
  MP_BODY = "MP_BODY",
  MP_HEAD = "MP_HEAD",
  PACK_INDEX = "PACK_INDEX",
  XGLOBALS = "XGLOBALS",
  DDL = "DDL",
  GLASSES = "GLASSES",
  EMBLEM_SET = "EMBLEM_SET",
  FONT_ICON = "FONT_ICON",
  WEAPON_FULL = "WEAPON_FULL",
  ATTACHMENT_UNIQUE = "ATTACHMENT_UNIQUE",
  WEAPON_CAMO = "WEAPON_CAMO",
  KEY_VALUE_PAIRS = "KEY_VALUE_PAIRS",
  MEMORY_BLOCK = "MEMORY_BLOCK",
  SKINNED_VERTS = "SKINNED_VERTS",
  QDB = "QDB",
  SLUG = "SLUG",
  FOOTSTEP_TABLE = "FOOTSTEP_TABLE",
  FOOTSTEP_FX_TABLE = "FOOTSTEP_FX_TABLE",
  ZBARRIER = "ZBARRIER",
}

export interface AssetDto {
  type: CommonAssetType;
  name: string;
}

export interface ZoneAssetsDto {
  assets: AssetDto[];
  references: AssetDto[];
}

export interface AssetBinds {
  getAssetsForZone(zoneName: string): Promise<ZoneAssetsDto | null>;
}
