import { Component } from 'react';
import { default as moment } from 'moment';
import { default as PropTypes } from 'prop-types';
declare const _default: any;
export default _default;
export { DateRangePicker as DateRangePickerPure };
/**
 * Wrapper component for React-Datetime.
 *
 * @deprecated This will be removed from the UIKIT at some time.
 */
declare class DateRangePicker extends Component<any, any, any> {
    constructor(props: any);
    state: {
        internalStartValue: any;
        internalEndValue: any;
        isMounted: boolean;
        isCustomVisible: any;
        isDropdownOpen: boolean;
        customRangeStartValue: moment.Moment;
        customRangeEndValue: moment.Moment;
        isStartValid: boolean;
        isEndValid: boolean;
        dropdownToggleText: import("react/jsx-runtime").JSX.Element;
        dropup: any;
        pullRight: any;
    };
    /**
     * Toggles dropdown open status and visibility of custom range area.
     * @param {object} event - mouse event on toggle dropdown
     * @returns {undefined}
     */
    toggleDropdownOpen(event: object): undefined;
    /**
     * Gets called when "custom ..." has been selected.
     * @returns {undefined}
     */
    handleCustomToggle(): undefined;
    /**
     * Gets called user clicks the apply button.
     * @returns {undefined}
     */
    handleCustomApply(): undefined;
    /**
     * Only gets called on manual change of datePicker (user interaction).
     * Has influence the validity of the end date.
     *
     * Important to note that the start date is not limited,
     * whereas the end date is limited by the start date (see 'getValidEndDates').
     *
     * @param {object} startValue - the start date (date or moment).
     * @param {object} isValidDate - if the date is valid or not.
     * @returns {undefined}
     */
    onStartChange(startValue: object, isValidDate: object): undefined;
    /**
     * Callback method for DatePicker to limit selection in DatePicker.
     * @param {object} current - Current date in the loop.
     * @returns {undefined}
     */
    getValidStartDates(current: object): undefined;
    /**
     * Only gets called on manual change of datePicker (user interaction)
     * @param {object} endValue - the start date (date or moment).
     * @param {object} isValidDate - if the date is valid or not.
     * @returns {undefined}
     */
    onEndChange(endValue: object, isValidDate: object): undefined;
    /**
     * Callback method for DatePicker to limit selection in DatePicker.
     * End date has to be after start date.
     * @param {object} current - Current date in the loop.
     * @returns {undefined}
     */
    getValidEndDates(current: object): undefined;
    handleResetInternalState(event: any): void;
    componentDidMount(): void;
    /**
     * Responsible for handling start/end values given from outside (controlled component context).
     * @param {object} nextProps - The next props.
     * @returns {undefined}
     */
    UNSAFE_componentWillReceiveProps(nextProps: object): undefined;
    /**
     * Converts start/end values to moments, makes them readable,
     * crafts a dropdownToggleText and updates state.
     * @param {object} startValue - the start date (date or moment).
     * @param {object} endValue - the start date (date or moment).
     * @param {object} locale - the locale to use.
     * @param {object} extras - additional state, which needs to update.
     * @param {object} callback - callback to be called, after state has changed.
     * @returns {undefined}
     */
    update(startValue: object, endValue: object, locale: object, extras: object, callback: object): undefined;
    /**
     * Gets called by wrapper component "onClickOutside".
     * Responsible for closing the dropdown when a click occured outside.
     * @returns {undefined}
     */
    handleClickOutside(): undefined;
    isAutoDropActive(): boolean;
    handleCustomPresetSelect(preset: any): void;
    /**
     * Gets called when a preset has been selected.
     * @param {object} startValue - the start date (date or moment).
     * @param {object} endValue - the start date (date or moment).
     * @returns {undefined}
     */
    handleSelect(startValue: object, endValue: object): undefined;
    getDropdownToggle(dropdownToggleText: any): import("react/jsx-runtime").JSX.Element;
    refDropdownToggle: HTMLDivElement | null | undefined;
    getClearButton(): import("react/jsx-runtime").JSX.Element;
    getCustomPanelToggle(isCustomVisible: any, textCustom: any): import("react/jsx-runtime").JSX.Element;
    getCustomPanelButtons(isCustomVisible: any, isStartValid: any, isEndValid: any, textApply: any, textCancel: any): import("react/jsx-runtime").JSX.Element;
    render(): import("react/jsx-runtime").JSX.Element;
    refDropdownMenu: HTMLUListElement | null | undefined;
}
declare namespace DateRangePicker {
    export { propTypes };
    export { defaultProps };
}
declare namespace propTypes {
    let startValue: PropTypes.Requireable<object>;
    let endValue: PropTypes.Requireable<object>;
    let defaultStartValue: PropTypes.Requireable<object>;
    let defaultEndValue: PropTypes.Requireable<object>;
    let minValue: PropTypes.Requireable<object>;
    let maxValue: PropTypes.Requireable<object>;
    let onRangeChange: PropTypes.Requireable<(...args: any[]) => any>;
    let locale: PropTypes.Requireable<string>;
    let textDefault: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
    let textToday: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
    let textLastWeek: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
    let textLastMonth: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
    let textLastYear: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
    let textCustom: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
    let textApply: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
    let textCancel: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
    let textFrom: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
    let textTo: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
    let className: PropTypes.Requireable<string>;
    let dropdownClass: PropTypes.Requireable<string>;
    let dropdownMenuClass: PropTypes.Requireable<string>;
    let hasTimePicker: PropTypes.Requireable<boolean>;
    let customRangeOnly: PropTypes.Requireable<boolean>;
    let customPresets: PropTypes.Requireable<(PropTypes.InferProps<{
        startValue: PropTypes.Validator<object>;
        endValue: PropTypes.Validator<object>;
        text: PropTypes.Validator<string>;
        onSelect: PropTypes.Requireable<(...args: any[]) => any>;
    }> | null | undefined)[]>;
    let dropup: PropTypes.Requireable<boolean>;
    let pullRight: PropTypes.Requireable<boolean>;
    let autoDropDirection: PropTypes.Requireable<boolean>;
    let clearable: PropTypes.Requireable<boolean>;
    let onClear: PropTypes.Requireable<(...args: any[]) => any>;
}
declare namespace defaultProps {
    let defaultStartValue_1: moment.Moment;
    export { defaultStartValue_1 as defaultStartValue };
    let defaultEndValue_1: moment.Moment;
    export { defaultEndValue_1 as defaultEndValue };
    let minValue_1: null;
    export { minValue_1 as minValue };
    let maxValue_1: null;
    export { maxValue_1 as maxValue };
    let locale_1: string;
    export { locale_1 as locale };
    let textDefault_1: string;
    export { textDefault_1 as textDefault };
    let textToday_1: string;
    export { textToday_1 as textToday };
    let textLastWeek_1: string;
    export { textLastWeek_1 as textLastWeek };
    let textLastMonth_1: string;
    export { textLastMonth_1 as textLastMonth };
    let textCustom_1: string;
    export { textCustom_1 as textCustom };
    let textFrom_1: string;
    export { textFrom_1 as textFrom };
    let textTo_1: string;
    export { textTo_1 as textTo };
    let textApply_1: string;
    export { textApply_1 as textApply };
    let textCancel_1: string;
    export { textCancel_1 as textCancel };
    let dropdownClass_1: string;
    export { dropdownClass_1 as dropdownClass };
    let dropdownMenuClass_1: string;
    export { dropdownMenuClass_1 as dropdownMenuClass };
    let hasTimePicker_1: boolean;
    export { hasTimePicker_1 as hasTimePicker };
    let customRangeOnly_1: boolean;
    export { customRangeOnly_1 as customRangeOnly };
    let customPresets_1: {
        text: string;
        startValue: moment.Moment;
        endValue: moment.Moment;
    }[];
    export { customPresets_1 as customPresets };
    export function onRangeChange_1(): void;
    export { onRangeChange_1 as onRangeChange };
    let autoDropDirection_1: boolean;
    export { autoDropDirection_1 as autoDropDirection };
    let dropup_1: boolean;
    export { dropup_1 as dropup };
    let pullRight_1: boolean;
    export { pullRight_1 as pullRight };
    let clearable_1: boolean;
    export { clearable_1 as clearable };
    export function onClear_1(): undefined;
    export { onClear_1 as onClear };
}
