import { type IMask } from 'react-imask';
import { type MinMaxDate, type PickerProps } from '../../types';
type UseMaskedValueAndSelectedBaseDateOptions = MinMaxDate & {
    mask: string;
    currentValue?: Date | null;
    /**
     * смещение базовой даты в месяцах.
     * ожидается использование в DateRangePicker, для создания опорной даты второго календаря,
     * @default 0
     */
    monthOffset?: number;
    /**
     * колбэк на выбор даты в пикере
     */
    onDatePick: (date?: Date | null) => void;
    onChange?: (date?: Date | null) => void;
};
type UseMaskedValueAndSelectedBaseDateReturn = {
    onAccept?: (value: string, maskRef: IMask.InputMask<IMask.AnyMaskedOptions>, e?: InputEvent | undefined, onChange?: (changeValue: string) => void) => void;
    /**
     * пропсы необходимые для работы пикеров
     */
    pickerProps: PickerProps;
    /**
     * пропсы необходимые для работы инпутов
     */
    inputProps: {
        /**
         * строковое значение даты для инпута с маской
         */
        value: string;
    };
    /** При blur неполной даты - в onChange уходит Invalid Date (тот же стейт, что у маски). */
    onMaskedValueBlur: () => void;
};
/**
 * хук объединяющий повторяющуюся логику в работе DatePicker и RangeDatePicker:
 * опорная дата;
 * значение для маски;
 * обработчик изменения значения маски;
 * выбранную даты;
 * обработчик выбора даты;
 * выбранное значение даты;
 */
export declare const useDatePickerOptions: ({ onChange, mask, currentValue, minDate, maxDate, monthOffset, onDatePick, }: UseMaskedValueAndSelectedBaseDateOptions) => UseMaskedValueAndSelectedBaseDateReturn;
export {};
