import { CalendarSystem, CalendarView, DayInGrid, CalendarDay, Layer, Schedule } from '../types';
export type ScheduleState = 'on' | 'off' | 'holiday' | 'exemption' | 'bonus';
export interface ScheduleForDay {
    schedule: Schedule;
    color: string;
    state: ScheduleState;
    isCompleted: boolean;
}
export declare const useCalendar: (initialView?: CalendarView, initialSystem?: CalendarSystem, initialDate?: DayInGrid) => {
    view: CalendarView;
    system: CalendarSystem;
    displayDate: DayInGrid;
    calendarGrid: CalendarDay[];
    currentMonthName: string;
    currentYear: number;
    hourHeight: number;
    setView: import("react").Dispatch<import("react").SetStateAction<CalendarView>>;
    setSystem: (newSystem: CalendarSystem) => void;
    setDisplayDate: import("react").Dispatch<import("react").SetStateAction<DayInGrid>>;
    setHourHeight: import("react").Dispatch<import("react").SetStateAction<number>>;
    goToNextPeriod: () => void;
    goToPrevPeriod: () => void;
    goToToday: () => void;
    goToDate: (date: DayInGrid) => void;
    toggleSystem: () => void;
    useScheduleCalculations: (days: CalendarDay[], schedules: Schedule[], layersById: Map<string, Layer>, visibleLayerIds: Set<string>, areSchedulesGloballyVisible?: boolean) => Map<string, ScheduleForDay[]>;
    getDayKey: (date: DayInGrid) => string;
};
//# sourceMappingURL=useCalendar.d.ts.map