import { type CalendarPeriodOptions, type DateRangeInput } from "@ryuzaki13/react-foundation-lib/formatters";
import type { DateInputSelectionMode, DatePickerLevel } from "./types";
export declare const DATE_PICKER_LEVELS: readonly ["day", "month", "year"];
export declare const DATE_INPUT_SELECTION_MODES: readonly ["day", "week", "month", "year"];
export declare const DATE_INPUT_WEEK_END_DAYS: readonly ["friday", "saturday", "sunday"];
/**
 * Возвращает календарный вид, который удобнее всего открывать для выбранного размера периода.
 */
export declare function getDatePickerLevelForSelectionMode(selectionMode: DateInputSelectionMode): DatePickerLevel;
/**
 * Проверяет, разрешён ли календарный вид относительно минимального уровня навигации.
 */
export declare function isDatePickerLevelAvailable(level: DatePickerLevel, minLevel: DatePickerLevel): boolean;
/**
 * Подбирает вид календаря для режима выбора с учётом ограничения `datePickerLevel`.
 */
export declare function resolveAvailableDatePickerLevel(selectionMode: DateInputSelectionMode, minLevel: DatePickerLevel): DatePickerLevel;
export interface DateInputPeriodRangeStateOptions {
    readonly date: Date;
    readonly value: DateRangeInput;
    readonly hoveredDate?: Date | null;
    readonly selectsRange?: boolean;
    readonly selectionOptions?: CalendarPeriodOptions;
}
export interface DateInputPeriodRangeState {
    readonly selected: boolean;
    readonly range: boolean;
    readonly rangeStart: boolean;
    readonly rangeEnd: boolean;
}
/**
 * Рассчитывает visual-state ячейки календарного периода для single/range режима.
 */
export declare function resolveDateInputPeriodRangeState({ date, value, hoveredDate, selectsRange, selectionOptions }: DateInputPeriodRangeStateOptions): DateInputPeriodRangeState;
//# sourceMappingURL=dateInputCalendar.d.ts.map