// SPDX-FileCopyrightText: 2022 Johannes Loher
//
// SPDX-License-Identifier: MIT

import type { DS4 } from "../../config";
import type { DS4AlphabetDataSource } from "./alphabet/alphabet-data-source";
import type { DS4ArmorDataSource } from "./armor/armor-data-source";
import type { DS4EquipmentDataSource } from "./equipment/equipment-data-source";
import type { DS4LanguageDataSource } from "./language/language-data-source";
import type { DS4LootDataSource } from "./loot/loot-data-source";
import type { DS4RacialAbilityDataSource } from "./racial-ability/racial-ability-data-source";
import type { DS4ShieldDataSource } from "./shield/shield-data-source";
import type { DS4SpecialCreatureAbilityDataSource } from "./special-creature-ability/special-creature-ability-data-source";
import type { DS4SpellDataSource } from "./spell/spell-data-source";
import type { DS4TalentDataSource } from "./talent/talent-data-source";
import type { DS4WeaponDataSource } from "./weapon/weapon-data-source";

declare global {
  interface SourceConfig {
    Item: DS4ItemDataSource;
  }
}

export type ItemType = keyof typeof DS4.i18n.itemTypes;

export type DS4ItemDataSource =
  | DS4AlphabetDataSource
  | DS4ArmorDataSource
  | DS4EquipmentDataSource
  | DS4LanguageDataSource
  | DS4LootDataSource
  | DS4RacialAbilityDataSource
  | DS4ShieldDataSource
  | DS4SpecialCreatureAbilityDataSource
  | DS4SpellDataSource
  | DS4TalentDataSource
  | DS4WeaponDataSource;
