import { JSX } from "react";
import { type NullableDateRange } from "@ryuzaki13/react-foundation-lib/formatters";
import { UiBaseProps } from "../../types";
import { type DateInputSelectionMode, type DateInputWeekEndDay, type DatePickerLevel } from "../lib";
interface BaseDateInputProps {
    error?: string;
    onClearError?: () => void;
    minDate?: Date;
    maxDate?: Date;
    datePreset?: string;
    /**
     * @deprecated Используйте `datePreset`.
     */
    dateFormat?: string;
    /**
     * Минимальный уровень календарной навигации. Размер выбранного периода задаёт `selectionMode`.
     */
    datePickerLevel?: DatePickerLevel;
    /**
     * Размер периода, который выбирает поле: день, неделя, месяц или год.
     */
    selectionMode?: DateInputSelectionMode;
    /**
     * Последний включённый день недели для `selectionMode="week"`.
     */
    weekEndDay?: DateInputWeekEndDay;
    /**
     * Показывает переключатель `selectionMode` под календарём.
     */
    allowSelectionModeChange?: boolean;
    /**
     * Ограничивает набор режимов в runtime-переключателе.
     */
    selectionModeOptions?: readonly DateInputSelectionMode[];
    /**
     * Сообщает наружу о runtime-смене режима выбора.
     */
    onSelectionModeChange?: (selectionMode: DateInputSelectionMode) => void;
}
export interface DateSingleInputProps extends BaseDateInputProps, UiBaseProps<Date | null> {
    selectsRange?: false;
}
export interface DateRangeInputProps extends BaseDateInputProps, UiBaseProps<NullableDateRange | null> {
    selectsRange: true;
}
export declare function SingleDateInput(props: Omit<DateSingleInputProps, "selectsRange">): JSX.Element;
export declare function RangeDateInput(props: Omit<DateRangeInputProps, "selectsRange">): JSX.Element;
export {};
//# sourceMappingURL=DateInput.d.ts.map