/// <reference types="react" />
import { CalendarViewType, WeekDayType } from './models';
export interface UseCalendarOptions {
    defaultDate?: Date | number | string;
    defaultWeekStart?: WeekDayType;
    defaultViewType?: CalendarViewType;
}
/**
 * @deprecated This package will be replaced with @h6s/calendar
 * @see https://github.com/h6s-dev/h6s
 */
export default function useCalendar({ defaultDate, defaultWeekStart, defaultViewType, }?: UseCalendarOptions): {
    headers: {
        weekDays: ({
            value: Date;
        } & {
            key: string;
        })[];
    };
    body: {
        value: {
            key: string;
            value: ({
                value: Date;
            } & {
                date: number;
                isCurrentMonth: boolean;
                isCurrentDate: boolean;
                isWeekend: boolean;
            } & {
                key: string;
            })[];
        }[];
    } | {
        value: {
            key: string;
            value: ({
                value: Date;
            } & {
                date: number;
                isCurrentMonth: boolean;
                isCurrentDate: boolean;
                isWeekend: boolean;
            } & {
                key: string;
            })[];
        }[];
    } | {
        value: {
            key: string;
            value: ({
                value: Date;
            } & {
                date: number;
                isCurrentMonth: boolean;
                isCurrentDate: boolean;
                isWeekend: boolean;
            } & {
                key: string;
            })[];
        }[];
    };
    navigation: {
        toNext: () => void;
        toPrev: () => void;
        setToday: () => void;
        setDate: (date: Date) => void;
    };
    view: {
        type: CalendarViewType;
        setViewType: import("react").Dispatch<import("react").SetStateAction<CalendarViewType>>;
        setWeekStartsOn: import("react").Dispatch<import("react").SetStateAction<WeekDayType>>;
        isMonthView: boolean;
        isWeekView: boolean;
        isDayView: boolean;
        showMonthView: () => void;
        showWeekView: () => void;
        showDayView: () => void;
    };
    cursorDate: Date;
    year: number;
    month: number;
    day: number;
    weekStartsOn: WeekDayType;
    startWeekdayInMonth: number;
    weeksInMonth: number;
    weekendDays: {
        value: Date;
    }[];
    today: {
        weekIndex: number;
        dateIndex: WeekDayType;
    };
    getDateCellByIndex: (weekIndex: number, dayIndex: number) => {
        value: Date;
    };
};
