import * as React from "react";
import { DateFnsLocalizedComponent } from "../dateFnsLocalizedComponent";
import type { DateRangeInput3DefaultProps, DateRangeInput3Props } from "./dateRangeInput3Props";
import type { DateRangeInput3State } from "./dateRangeInput3State";
export type { DateRangeInput3Props };
/**
 * Date range input (v3) component.
 *
 * @see https://blueprintjs.com/docs/#datetime2/date-range-input3
 */
export declare class DateRangeInput3 extends DateFnsLocalizedComponent<DateRangeInput3Props, DateRangeInput3State> {
    static defaultProps: DateRangeInput3DefaultProps;
    static displayName: string;
    startInputElement: HTMLInputElement | null;
    endInputElement: HTMLInputElement | null;
    private handleStartInputRef;
    private handleEndInputRef;
    constructor(props: DateRangeInput3Props);
    componentDidMount(): Promise<void>;
    componentDidUpdate(prevProps: DateRangeInput3Props): Promise<void>;
    render(): React.JSX.Element;
    protected validateProps(props: DateRangeInput3Props): void;
    private renderTarget;
    private renderInputGroup;
    private handleDateRangePickerChange;
    private handleShortcutChange;
    private handleDateRangePickerHoverChange;
    private handleStartInputEvent;
    private handleEndInputEvent;
    private handleInputEvent;
    private handleInputKeyDown;
    private handleInputArrowKeyDown;
    private getNextDateForArrowKeyNavigation;
    private getDefaultDateForArrowKeyNavigation;
    private handleInputMouseDown;
    private handleInputClick;
    private handleInputFocus;
    private handleInputBlur;
    private handleInputChange;
    private handlePopoverClose;
    private shouldFocusInputRef;
    private getIsOpenValueWhenDateChanges;
    private getInitialRange;
    private getSelectedRange;
    private getInputDisplayString;
    private getInputPlaceholderString;
    private getInputProps;
    private getInputRef;
    private getStateKeysAndValuesForBoundary;
    private getDateRangeForCallback;
    private getOtherBoundary;
    private doBoundaryDatesOverlap;
    /**
     * Returns true if the provided boundary is an END boundary overlapping the
     * selected start date. (If the boundaries overlap, we consider the END
     * boundary to be erroneous.)
     */
    private doesEndBoundaryOverlapStartBoundary;
    private isControlled;
    private isInputEmpty;
    private isInputInErrorState;
    private isDateValidAndInRange;
    private isNextDateRangeValid;
    private formatMinMaxDateString;
    private parseDate;
    private formatDate;
}
