/** * Calendar Generation Service * * Generates calendar grids and layouts. * * SOLID: Single Responsibility - Only calendar generation * DRY: Reusable calendar generation logic * KISS: Simple calendar grid creation */ import type { CalendarDay } from '../../domain/entities/CalendarDay.entity'; import type { CalendarEvent } from '../../domain/entities/CalendarEvent.entity'; export declare class CalendarGeneration { /** * Generate calendar days for a specific month * Returns 42 days (6 weeks) including days from prev/next months */ static generateMonthDays(year: number, month: number, events?: CalendarEvent[]): CalendarDay[]; /** * Generate calendar days for a specific week */ static generateWeekDays(startDate: Date, events?: CalendarEvent[]): CalendarDay[]; /** * Get events for a specific date */ static getEventsForDate(date: Date, allEvents: CalendarEvent[]): CalendarEvent[]; /** * Get events in date range */ static getEventsInRange(startDate: Date, endDate: Date, events: CalendarEvent[]): CalendarEvent[]; /** * 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; /** * Check if date is today */ static isToday(date: Date): boolean; /** * Check if two dates are the same day */ static isSameDay(date1: Date, date2: Date): boolean; /** * Format date for display */ static formatDate(date: Date): string; /** * Get month name */ static getMonthName(date: Date): string; /** * Get weekday name */ static getWeekdayName(date: Date): string; /** * Get short weekday name */ static getShortWeekdayName(date: Date): string; }