export type Role = "tank" | "healer" | "dps" | "everyone";
export type Importance = "tank-important" | "healer-important" | "everyone-important" | null;

export interface AbilityCard {
  name: string;
  wowheadUrl?: string;
  role: Role;
  importance: Importance;
  /** Raw HTML — contains <ul>, <li>, <a>, <span class="warn">, etc. */
  descriptionHtml: string;
}

export interface MobCard {
  name: string;
  nameHtml: string;
  tankRelevant: boolean;
  /** Raw HTML strings per <li> — contain wowhead links, inline styles */
  abilitiesHtml: string[];
}

export interface QuickRef {
  /** Raw HTML — contains <strong>, <a href="wowhead...">, etc. */
  html: string;
}

export type TrashContentItem =
  | { type: "quickRef"; data: QuickRef }
  | { type: "mob"; data: MobCard };

export interface TrashSection {
  header: string;
  content: TrashContentItem[];
}

export interface BossSection {
  bossNumber: string;
  name: string;
  subtitle: string;
  image: string;
  abilities: AbilityCard[];
}

export type DungeonSection =
  | { type: "trash"; data: TrashSection }
  | { type: "boss"; data: BossSection }
  | { type: "divider" };

export interface DungeonData {
  id: string;
  name: string;
  /** Raw HTML — may contain wing badge spans */
  descriptionHtml: string;
  headerImage: string;
  icon: string;
  disabled?: boolean;
  sections: DungeonSection[];
}

export interface DungeonListItem {
  id: string;
  name: string;
  icon: string;
  disabled?: boolean;
}
