import type { CalendarEvent } from "../types/events"; import type { LocaleConfig } from "../types/locale"; import type { CalendarTheme } from "../types/theme"; import type { CalendarDay } from "../types/calendar"; export interface UseCalendarEnhancedOptions { initialYear?: number; initialMonth?: number; initialSelectedDate?: Date; onDateSelect?: (date: Date) => void; onMonthChange?: (year: number, month: number) => void; events?: CalendarEvent[]; locale?: LocaleConfig; theme?: CalendarTheme; themeMode?: "light" | "dark" | "auto"; minDate?: Date; maxDate?: Date; disabledDates?: Date[]; disabledDaysOfWeek?: number[]; isDateDisabled?: (date: Date) => boolean; firstDayOfWeek?: number; showWeekNumbers?: boolean; } export interface UseCalendarEnhancedReturn { year: number; month: number; days: CalendarDay[]; selectedDate: Date | null; previousMonth: () => void; nextMonth: () => void; goToMonth: (year: number, month: number) => void; goToToday: () => void; selectDate: (date: Date) => void; isDateSelected: (date: Date) => boolean; isToday: (date: Date) => boolean; isDateDisabled: (date: Date) => boolean; getEventsForDate: (date: Date) => CalendarEvent[]; hasEvents: (date: Date) => boolean; theme: CalendarTheme; } export declare function useCalendarEnhanced(options?: UseCalendarEnhancedOptions): UseCalendarEnhancedReturn;