import React from 'react';
import { DateTime } from 'luxon';
import { useMergeRefs } from '@floating-ui/react';
import { CalendarType, DateRangePickerProps, DateTimeTuple } from '../types';
export declare const useDateRangePicker: ({ dateMin, dateMax, name: _name, format: propFormat, maskOptions, isOpenState, defaultValue, rangePickerType, onOpen, onClose, onError, onChange, ...rest }: DateRangePickerProps & {
    isOpenState?: boolean;
}) => {
    formatIndexes: {
        day: number;
        month: number;
        year: number;
    };
    dateMinParts: number[];
    dateMaxParts: number[];
    dateMinDT: DateTime;
    dateMaxDT: DateTime;
    dateTime: DateTimeTuple;
    inputValueFrom?: string;
    inputValueTo?: string;
    calendarViewDateTime: DateTimeTuple;
    calendarType: CalendarType;
    lastChangedDate?: [Date | undefined | null, Date | undefined | null];
    luxonFormat: string;
    lastFocusedElement: "from" | "to";
    nameFrom: string;
    nameTo: string;
    currentIndex: number;
    currentCalendarViewDT: DateTime;
    isOpen: boolean;
    status?: "error" | "success" | "basic";
    inputFromRef: ReturnType<typeof useMergeRefs<HTMLInputElement | null>>;
    inputToRef: ReturnType<typeof useMergeRefs<HTMLInputElement | null>>;
    setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
    setLastFocusedElement: React.Dispatch<React.SetStateAction<"from" | "to">>;
    safeOnChange: (newDateTime?: DateTime) => void;
    setCalendarType: React.Dispatch<React.SetStateAction<CalendarType>>;
    setCalendarViewDateTime: React.Dispatch<React.SetStateAction<DateTimeTuple>>;
    setDateTime: React.Dispatch<React.SetStateAction<DateTimeTuple>>;
    handleBlur: React.FocusEventHandler<HTMLInputElement>;
    rangeSelectionStep: "start" | "end" | null;
    setRangeSelectionStep: React.Dispatch<React.SetStateAction<"start" | "end" | null>>;
    clearInputValue: (field: "from" | "to") => void;
    isEndDatePresent: boolean;
    setIsEndDatePresent: React.Dispatch<React.SetStateAction<boolean>>;
    setLastChangedDate: React.Dispatch<React.SetStateAction<[Date | undefined | null, Date | undefined | null]>>;
};
