from typing import Final, Literal

EPOCH: Final = 1948439.5
WEEKDAYS: Final = ("al-'ahad", "al-'ithnayn", "ath-thalatha'", "al-'arb`a'", "al-khamis", "al-jum`a", "as-sabt")
MONTHS: Final[list[str]]
HAS_29_DAYS: Final = (2, 4, 6, 8, 10)
HAS_30_DAYS: Final = (1, 3, 5, 7, 9, 11)

def leap(year: int) -> bool: ...
def to_jd(year: int, month: int, day: int) -> float: ...
def from_jd(jd: float) -> tuple[int, int, int]: ...
def to_jd_gregorianyear(gregorianyear: int, islamic_month: int, islamic_day: int) -> float: ...
def from_gregorian(year: int, month: int, day: int) -> tuple[int, int, int]: ...
def to_gregorian(year: int, month: int, day: int) -> tuple[int, int, int]: ...
def month_length(year: int, month: int) -> Literal[29, 30]: ...
def monthcalendar(year: int, month: int) -> list[list[int | None]]: ...
def format(year: int, month: int, day: int) -> str: ...
