import { FixedArray } from "../ts-utils.cjs";
import { AyahId, QuranMeta, SurahInfo } from "../types.cjs";

//#region src/lists/types.d.ts
interface RiwayaFullData {
  HizbEighthList?: AyahId[];
  HizbQuarterList: AyahId[];
  JuzList: AyahId[];
  ManzilList: AyahId[];
  PageList: AyahId[];
  RukuList: AyahId[];
  SajdaList: AyahId[];
  SurahList: FixedArray<SurahInfo, 116>;
  meta: QuranMeta;
}
type RiwayasNames = ["Hafs", "Qalun", "Warsh"];
type RiwayaName = RiwayasNames[number];
interface MissingListsPerRiwaya {
  Hafs: ["HizbEighthList"];
  Qalun: [];
  Warsh: [];
}
type Riwayas = { [k in RiwayaName]: Omit<RiwayaFullData, MissingListsPerRiwaya[k][number]> & {
  meta: QuranMeta;
} };
type RiwayaData = Riwayas[RiwayaName];
declare const partNames: readonly ["surah", "juz", "rubAlHizb", "thumunAlHizb", "page", "manzil", "ruku"];
type PartType = (typeof partNames)[number];
//#endregion
export { PartType, RiwayaData, RiwayaName, Riwayas };