import { Dispatch, SetStateAction } from "react";
import { ITheme } from "../Pallette/themes";
export interface ICalendarProps {
    id?: string;
    locale?: ILocale;
    isRangeMode?: boolean;
    date?: string;
    setDateToInput?: (date: string) => void;
    closeCalendar?: (chosenDate: string | string[] | null) => void;
    minDate?: string;
    maxDate?: string;
    hasButtons?: boolean;
}
export interface IHeaderProps {
    currentMonth: string;
    currentYear: number;
    yearEnd?: string;
    isMonthEditing: boolean;
    isYearEditing: boolean;
    setIsMonthEditing: Dispatch<SetStateAction<boolean>>;
    setIsYearEditing: Dispatch<SetStateAction<boolean>>;
    onPrevious: () => void;
    onNext: () => void;
}
export interface IMonthsProps {
    data: IMonth[];
    changeMonth: (id: number) => void;
}
export interface IYearsProps {
    data: IYear[];
    changeYear: (id: number) => void;
}
export interface IMonth {
    id: number;
    name: string;
    isActive: boolean;
    isDisabled: boolean;
}
export declare type IYear = IMonth;
export interface ICalendarListProps {
    locale: ILocale;
    daysInMonth: number;
    daysInPreviousMonth: number;
    weekDayNumber: number;
    currentMonth: number;
    currentYear: number;
    chosenDate: string | null;
    chosenRange: string[] | null;
    chooseDate: (date: string) => void;
    formattedDate: (date: Date | null) => string | null;
    closeCalendar?: () => void;
    minDate?: string;
    maxDate?: string;
    isRangeMode?: boolean;
    hasButtons?: boolean;
    onPrevious: () => void;
    onNext: () => void;
}
export interface IDay {
    id: number;
    day: number | string;
    date?: string | null;
    isActive?: boolean;
    isDisabled?: boolean;
    isToday?: boolean;
    isInRange?: boolean | null;
    isRangeStart?: boolean | null;
    isRangeEnd?: boolean | null;
    isOuterItem?: boolean;
    isDiffMonth?: boolean;
    isPrevMonth?: boolean;
    isNextMonth?: boolean;
}
export interface IStylesProps {
    theme: ITheme;
    root?: boolean;
    offset?: number;
    isActive?: boolean;
    isDisabled?: boolean;
    isToday?: boolean;
    isInRange?: boolean | null;
    isRangeStart?: boolean | null;
    isRangeEnd?: boolean | null;
    isOuterItem?: boolean;
    isMonthEditing?: boolean;
    isDiffMonth?: boolean;
}
export declare type ILocale = "ru" | "en" | "de";
export declare type IMonthChangeType = "previous" | "next";
