import { ICalendarGeneratorService } from '../interfaces/calendar-generator.service.interfaces'; import { CalendarDate, CalendarMonth, CalendarYear } from '../interfaces/calendar.interfaces'; import { CalendarGenerationOptions, MonthViewGenerationOptions, YearViewGenerationOptions } from '../interfaces/calendar.service.interfaces'; /** * Implementation of CalendarGeneratorService * Responsible for generating calendar data structures */ export declare class CalendarGeneratorService implements ICalendarGeneratorService { getWeekNumber(date: Date, locale?: string): number; /** * Generate calendar days for a specific month/year * @param year Year * @param month Month (0-11) * @param options Calendar generation options * @returns Array of calendar dates */ generateCalendarDays(year: number, month: number, options: CalendarGenerationOptions): CalendarDate[]; /** * Generate an array of calendar months for a year view * @param year Year to generate months for * @param options Month view generation options * @returns Array of calendar month objects */ generateCalendarMonths(year: number, options: MonthViewGenerationOptions): CalendarMonth[]; /** * Generate an array of calendar years for a year range view * @param baseYear Starting year for the range * @param rangeSize Number of years to generate * @param options Year view generation options * @returns Array of calendar year objects */ generateCalendarYears(baseYear: number, rangeSize: number, options: YearViewGenerationOptions): CalendarYear[]; /** * Create a calendar date object with the correct properties * @param date Date * @param isCurrentMonth Whether this date is in the current month * @param today Today's date * @param options Calendar generation options * @returns Calendar date object */ private createCalendarDateObject; /** * Get calendar days generation function * Returns a function that can be called to generate calendar days * @param getCurrentDate Function to get current date * @param getCalendarOptions Function to get calendar options * @returns Function that generates calendar days */ getCalendarDaysGenerator(getCurrentDate: () => Date, getCalendarOptions: () => CalendarGenerationOptions): () => CalendarDate[]; /** * Generate month view for a specific month/year * @param year Year * @param month Month (0-11) * @param options Calendar generation options * @returns Object with month view data */ generateMonthView(year: number, month: number, options: CalendarGenerationOptions): { month: number; year: number; weeks: { days: CalendarDate[]; weekNumber?: number; }[]; weekdays: string[]; }; /** * Generate year view with all months for a specific year * @param year Year to generate view for * @param options Year view generation options * @returns Object with year view data */ generateYearView(year: number, options: YearViewGenerationOptions): { months: CalendarMonth[]; year: number; }; /** * Generate decade view (10 years) * @param baseYear Base year for the decade view * @param options Year view generation options * @returns Object with decade view data */ generateDecadeView(baseYear: number, options: YearViewGenerationOptions): { years: CalendarYear[]; startYear: number; endYear: number; }; /** * Generate multi-year view (typically for selecting a year within a decade or larger range) * @param baseYear Base year for the multi-year view * @param options Year view generation options * @returns Object with multi-year view data */ generateMultiYearView(baseYear: number, options: YearViewGenerationOptions): { years: CalendarYear[]; decades: Array<{ startYear: number; endYear: number; }>; startYear: number; endYear: number; }; }