from __future__ import annotations
from typing import Any, Protocol, runtime_checkable
from com.sun.star.uno import XInterface

@runtime_checkable
class XCalendar(XInterface, Protocol):
    def loadDefaultCalendar(self, rLocale: Locale) -> None: ...
    def loadCalendar(self, uniqueID: str, rLocale: Locale) -> None: ...
    def getLoadedCalendar(self) -> Calendar: ...
    def getAllCalendars(self, rLocale: Locale) -> list[str]: ...
    def getUniqueID(self) -> str: ...
    def setDateTime(self, nTimeInDays: float) -> None: ...
    def getDateTime(self) -> float: ...
    def setValue(self, nCalendarFieldIndex: int, nValue: int) -> None: ...
    def getValue(self, nCalendarFieldIndex: int) -> int: ...
    def isValid(self) -> bool: ...
    def addValue(self, nCalendarFieldIndex: int, nAmount: int) -> None: ...
    def getFirstDayOfWeek(self) -> int: ...
    def setFirstDayOfWeek(self, nDay: int) -> None: ...
    def setMinimumNumberOfDaysForFirstWeek(self, nDays: int) -> None: ...
    def getMinimumNumberOfDaysForFirstWeek(self) -> int: ...
    def getNumberOfMonthsInYear(self) -> int: ...
    def getNumberOfDaysInWeek(self) -> int: ...
    def getMonths(self) -> list[CalendarItem]: ...
    def getDays(self) -> list[CalendarItem]: ...
    def getDisplayName(self, nCalendarDisplayIndex: int, nIdx: int, nNameType: int) -> str: ...
