import { CalendarDate } from '../interfaces/calendar.interfaces'; import { CalendarGenerationOptions } from '../interfaces/calendar.service.interfaces'; import { ICalendarService } from '../interfaces/calendar.service.interfaces'; import { ILocalizationService } from '../interfaces/localization.service.interfaces'; /** * Implementation of CalendarService * Responsible for calendar generation and navigation functions */ export declare class CalendarService implements ICalendarService { private _localizationService; /** * Set the localization service * @param service The localization service to use */ setLocalizationService(service: ILocalizationService): void; /** * Get the localization service * @returns The current localization service or null */ getLocalizationService(): ILocalizationService | null; /** * Generate calendar days for a specific month/year * @param year The year * @param month The month (0-11) * @param options Options for calendar generation * @returns Array of CalendarDate objects */ generateCalendarDays(year: number, month: number, options: CalendarGenerationOptions): CalendarDate[]; /** * Create a calendar date object with the correct properties * @param date The date * @param isCurrentMonth Whether this date is in the current month * @param today Today's date * @param options Options for calendar generation * @returns CalendarDate object */ private createCalendarDateObject; /** * Get month name from month index * @param month Month index (0-11) * @returns Month name */ getMonthName(month: number, short?: boolean): string; /** * Get weekday names starting from specified first day * @param firstDayOfWeek First day of week (0 = Sunday, 1 = Monday, etc.) * @returns Array of weekday names */ getWeekdayNames(firstDayOfWeek: number, short?: boolean): string[]; /** * Navigate to next month from current date * @param currentDate Current date * @returns New date in the next month */ getNextMonth(currentDate: Date): Date; /** * Navigate to previous month from current date * @param currentDate Current date * @returns New date in the previous month */ getPreviousMonth(currentDate: Date): Date; /** * Navigate to next year from current date * @param currentDate Current date * @returns New date in the next year */ getNextYear(currentDate: Date): Date; /** * Navigate to previous year from current date * @param currentDate Current date * @returns New date in the previous year */ getPreviousYear(currentDate: Date): Date; /** * Check if a date is within a selected date range * @param date The date to check * @param range The date range (startDate and endDate) * @returns True if the date is within the range */ isDateInSelectedRange(date: Date, range: { startDate: Date | null; endDate: Date | null; }): boolean; /** * Get the ISO week number for a date * @param date The date * @returns The week number (1-53) */ getWeekNumber(date: Date): number; /** * Check if a date is today * @param date The date to check * @returns True if the date is today */ isToday(date: Date): boolean; }