/// <reference types="react" />
import PropTypes from 'prop-types';
import _ from 'lodash';
import { FormControl } from '../FormControl';
export declare class DatePickerBase extends FormControl<any> {
    static propTypes: {
        inputProps: PropTypes.Requireable<object>;
        ariaLabel: PropTypes.Requireable<string>;
        disabled: PropTypes.Requireable<boolean>;
        testAutomationId: PropTypes.Requireable<string>;
        dayPickerPhrase: PropTypes.Requireable<object>;
        name: PropTypes.Validator<string>;
        hasFormGroupContainer: PropTypes.Requireable<boolean>;
        hasFeedbackBlock: PropTypes.Requireable<boolean>;
    };
    static defaultProps: {
        ariaLabel: string;
        dayPickerPhrase: {
            readonly calendarLabel: string;
            readonly closeDatePicker: string;
            readonly focusStartDate: string;
            readonly clearDate: string;
            readonly clearDates: string;
            readonly jumpToPrevMonth: string;
            readonly jumpToNextMonth: string;
            readonly keyboardShortcuts: string;
            readonly showKeyboardShortcutsPanel: string;
            readonly hideKeyboardShortcutsPanel: string;
            readonly openThisPanel: string;
            readonly enterKey: string;
            readonly leftArrowRightArrow: string;
            readonly upArrowDownArrow: string;
            readonly pageUpPageDown: string;
            readonly homeEnd: string;
            readonly escape: string;
            readonly questionMark: string;
            readonly selectFocusedDate: string;
            readonly moveFocusByOneDay: string;
            readonly moveFocusByOneWeek: string;
            readonly moveFocusByOneMonth: string;
            readonly moveFocustoStartAndEndOfWeek: string;
            readonly returnFocusToInput: string;
            readonly keyboardNavigationInstructions: string;
            readonly chooseAvailableDate: string;
            readonly chooseAvailableStartDate: string;
            readonly chooseAvailableEndDate: string;
            readonly dateIsUnavailable: string;
            readonly dateIsSelected: string;
        };
        hasFormGroupContainer: boolean;
        hasFeedbackBlock: boolean;
        testAutomationId: string;
    };
    constructor(props: any, ctx: any);
    componentDidMount(): void;
    instanceId: any;
    calendarContainer: any;
    onKeyDown: ((event: any) => void) & _.Cancelable;
    onCalendarKeyUp: ((event: any) => void) & _.Cancelable;
    /** prevent dayPicker being closed after react-dates trigger blur on monthChange, yearChange */
    isPreventCloseDayPickerOnBlur: boolean;
    onInputKeyDownArrowDown: () => void;
    focusOnDateCell: () => Promise<{}>;
    blurDateCell: () => Promise<{}>;
    setStatePromise: (state: any) => Promise<{}>;
    closeDayPicker(): Promise<{}>;
    showDayPicker: () => void;
    handleFocusInput: () => void;
    handleToggleDayPickerDisplay: (e: any) => void;
    isFocusedInsideDayPickerContainer: () => any;
    focusToInput: () => void;
    handleBlurDatePickerControl: () => void;
    toggleIsInputFocusedFromOutside: (isInputFocusedFromOutside: any) => Promise<{}>;
    handleMouseDownPreventCloseDayPicker: () => void;
    handleCloseDayPickerOnBlur: () => void;
    setContainerRef: (el: any) => any;
    handleOutsideClick: () => void;
    /** @abstract */
    getDatePickerContainerClassName(): string;
    /** @abstract */
    renderDatePicker(): any;
    /** @abstract */
    getDisplayValue: () => any;
    /** @abstract */
    getPhrases(): {
        calendarLabel: any;
        closeDatePicker: any;
        focusStartDate: any;
        clearDate: any;
        clearDates: any;
        jumpToPrevMonth: any;
        jumpToNextMonth: any;
        keyboardShortcuts: any;
        showKeyboardShortcutsPanel: any;
        hideKeyboardShortcutsPanel: any;
        openThisPanel: any;
        enterKey: any;
        leftArrowRightArrow: any;
        upArrowDownArrow: any;
        pageUpPageDown: any;
        homeEnd: any;
        escape: any;
        questionMark: any;
        selectFocusedDate: any;
        moveFocusByOneDay: any;
        moveFocusByOneWeek: any;
        moveFocusByOneMonth: any;
        moveFocustoStartAndEndOfWeek: any;
        returnFocusToInput: any;
        keyboardNavigationInstructions: any;
        chooseAvailableDate: ({ date }: {
            date: any;
        }) => any;
        chooseAvailableStartDate: ({ date }: {
            date: any;
        }) => any;
        chooseAvailableEndDate: ({ date }: {
            date: any;
        }) => any;
        dateIsUnavailable: ({ date }: {
            date: any;
        }) => any;
        dateIsSelected: ({ date }: {
            date: any;
        }) => any;
    };
    /** @abstract */
    handleMouseUpDayPickerContainer: () => void;
    handlePreventDefault: (e: any) => any;
    render(): JSX.Element;
}
