import type { RulesSystem, SystemId } from './types';
import { dnd5e } from './dnd5e';
import { pf2e } from './pf2e';

const SYSTEMS: Record<SystemId, RulesSystem> = {
  '5e': dnd5e,
  pf2e,
};

export function getSystem(id: SystemId): RulesSystem {
  return SYSTEMS[id];
}

export const SYSTEM_OPTIONS: { id: SystemId; label: string }[] = [
  { id: '5e', label: dnd5e.label },
  { id: 'pf2e', label: pf2e.label },
];

export * from './types';
export * from './progression';
export { abilityModifier, ABILITY_ABBR, ABILITY_LABELS, formatDamage } from './abilities';
export { applyRest } from './rest';
export { getConditions, CONDITIONS_5E, CONDITIONS_PF2E, type ConditionDef } from './conditions';
