/** * Calendar Service * * Facade for calendar operations using composition. * Delegates to specialized services for specific operations. * * SOLID: Facade pattern - Single entry point, delegates to specialists * DRY: Avoids code duplication by composing smaller services * KISS: Simple interface, complex operations delegated */ import type { CalendarDay, CalendarWeek } from '../../domain/entities/CalendarDay.entity'; import type { CalendarEvent } from '../../domain/entities/CalendarEvent.entity'; /** * Calendar Service Implementation * * Facade that delegates to specialized services. * Follows SOLID principles with composition over inheritance. */ export declare class CalendarService { private static weekdayNamesCache; /** * Generate calendar days for a specific month */ static getMonthDays(year: number, month: number, events?: CalendarEvent[]): CalendarDay[]; /** * Generate calendar week */ static getWeek(date: Date, events?: CalendarEvent[]): CalendarWeek; /** * Navigate to previous month */ static getPreviousMonth(currentDate: Date): Date; /** * Navigate to next month */ static getNextMonth(currentDate: Date): Date; /** * Navigate to previous week */ static getPreviousWeek(currentDate: Date): Date; /** * Navigate to next week */ static getNextWeek(currentDate: Date): Date; /** * Get events for a specific date */ static getEventsForDate(date: Date, events: CalendarEvent[]): CalendarEvent[]; /** * Get events in date range */ static getEventsInRange(startDate: Date, endDate: Date, events: CalendarEvent[]): CalendarEvent[]; /** * Get weekday names */ static getWeekdayNames(locale?: string): string[]; /** * Check if two dates are the same day */ static isSameDay(date1: Date, date2: Date): boolean; }