import type { Holiday, LocaleCode, CalendarEvent } from '../types';
export interface MonthData {
    month: Date;
    weeks: (Date | null)[][];
    eventsByDate: Record<string, CalendarEvent[]>;
    holidaysByDate: Record<string, Holiday[]>;
}
interface UseCalendarComposerProps {
    events: CalendarEvent[];
    holidays?: Holiday[];
    locale?: LocaleCode | string;
    holidayServiceKey?: string;
}
export declare function useCalendarComposer({ events, holidays, locale, holidayServiceKey }: UseCalendarComposerProps): {
    displayMonth: Date;
    activeMonth: Date;
    infiniteMonths: Date[];
    monthsData: {
        month: Date;
        weeks: (Date | null)[][];
        eventsByDate: Record<string, CalendarEvent<any>[]>;
        holidaysByDate: Record<string, Holiday[]>;
    }[];
    availableHeight: number | null;
    isCurrentMonthVisible: boolean;
    isInitialScrollSet: boolean;
    showDateSelector: boolean;
    selectedYear: number;
    selectedMonth: number;
    showYearDropdown: boolean;
    showMonthDropdown: boolean;
    setActiveMonth: (date: Date) => void;
    setDisplayMonth: (date: Date) => void;
    setInfiniteMonths: (months: Date[]) => void;
    setAvailableHeight: (height: number | null) => void;
    setIsCurrentMonthVisible: (visible: boolean) => void;
    setIsInitialScrollSet: (value: boolean) => void;
    openDateSelector: () => void;
    closeDateSelector: () => void;
    setShowYearDropdown: () => void;
    setShowMonthDropdown: () => void;
    setSelectedYear: (year: number) => void;
    setSelectedMonth: (month: number) => void;
    confirmDateSelection: () => void;
    addPrevMonth: () => void;
    addNextMonth: () => void;
    holidayLoading: boolean;
    autoHolidays: Holiday[];
};
export {};
