quran-meta
Version:
Library with meta data and functionality related to Holy Quran
61 lines (60 loc) • 2.41 kB
TypeScript
import { AyahId, AyahNo, HizbId, Juz, RubAlHizbId, Surah, SurahAyah } from "./types";
/**
* Checks if the given value is a valid AyahId.
*
* @param x - The value to check.
* @returns True if the value is a valid AyahId, otherwise false.
*/
export declare function isValidAyahId(x: unknown): x is AyahId;
/**
* Checks if the given value is a valid Ayah number.
*
* @param x - The value to check.
* @returns True if the value is a valid Ayah number, otherwise false.
*/
export declare function isValidAyahNo(x: unknown): x is AyahNo;
/**
* Checks if the given value is a valid Surah number.
*
* @param x - The value to check.
* @returns `true` if the value is a valid Surah number, otherwise `false`.
*/
export declare function isValidSurah(x: unknown): x is Surah;
/**
* Type guard function that checks if a tuple of two numbers represents a valid Surah and Ayah combination.
*
* @param x - A tuple containing [surahNumber, ayahNumber]
* @returns True if the tuple represents a valid Surah-Ayah combination, false otherwise
*
* @example
* ```ts
* isValidSurahAyah([1, 7]) // true - Al-Fatiha has 7 ayahs
* isValidSurahAyah([1, 8]) // false - Al-Fatiha only has 7 ayahs
* isValidSurahAyah([115, 1]) // false - there are only 114 surahs
* ```
*/
export declare function isValidSurahAyah(x: [unknown, unknown]): x is SurahAyah;
/**
* Type guard that checks if a number is a valid Juz number
* @param x - The number to check
* @returns True if the number is an integer between 1 and the total number of Juzs (inclusive)
*/
export declare function isValidJuz(x: unknown): x is Juz;
/**
* Type guard to check if a number is a valid Hizb number
* @param x - The number to check
* @returns True if the number is an integer between 1 and the total number of Hizbs (inclusive)
*/
export declare function isValidHizb(x: unknown): x is HizbId;
/**
* Type guard to check if a number is a valid RubAlHizb number
* @param x - The number to check
* @returns True if the number is an integer between 1 and the total number of RubAlHizbs (inclusive)
*/
export declare function isValidRubAlHizb(x: unknown): x is RubAlHizbId;
/**
* Type guard to check if a number is a valid Quran page number
* @param x - The number to check
* @returns True if the number is an integer between 1 and the total number of pages (inclusive)
*/
export declare function isValidPage(x: unknown): x is Juz;