import * as React from 'react';
export interface UseDateInputDependencies<T, D> {
    maxElement: number;
    refs: Array<React.RefObject<T | null>>;
    autoFocus?: boolean;
    disabled?: boolean;
    value?: D | null;
    elementsConfig: (index: number) => {
        length: number;
        min: number;
        max: number;
    };
    onInternalValueChange: (value: string[]) => void;
    getInternalValue: (value?: D | null | undefined) => string[];
    onClear: () => void;
    onCalendarOpenChanged?: (opened: boolean) => void;
    accessible?: boolean;
}
export declare function useDateInput<T extends HTMLElement, D>({ maxElement, refs, autoFocus, disabled, elementsConfig, onClear, onInternalValueChange, getInternalValue, value, onCalendarOpenChanged, accessible, }: UseDateInputDependencies<T, D>): {
    rootRef: React.RefObject<HTMLDivElement | null>;
    calendarRef: React.RefObject<HTMLDivElement | null>;
    open: boolean;
    openCalendar: () => void;
    closeCalendar: () => void;
    toggleCalendar: () => void;
    internalValue: string[];
    focusedElement: number | null;
    setFocusedElement: React.Dispatch<React.SetStateAction<number | null>>;
    handleKeyDown: (e: React.KeyboardEvent<HTMLSpanElement>) => void;
    clear: () => void;
    handleFieldEnter: () => void;
    removeFocusFromField: () => void;
    handleRestoreFocus: () => boolean;
};
//# sourceMappingURL=useDateInput.d.ts.map