import { Moment } from 'moment';
import { InitialDirection, ViewModeType } from './datetime-range-picker';
import { ValueOf } from '../types';
export declare enum DATE_RANGE_ERROR_TYPES {
    INVALID_DATETIME = "INVALID_DATETIME",
    START_AFTER_END = "START_AFTER_END",
    END_BEFORE_START = "END_BEFORE_START",
    START_BEFORE_MIN = "START_BEFORE_MIN",
    END_AFTER_MAX = "END_AFTER_MAX",
    END_AFTER_MIN = "END_AFTER_MIN",
    START_AFTER_MAX = "START_AFTER_MAX",
    INVALID_START_DATE = "INVALID_START_DATE",
    INVALID_END_DATE = "INVALID_END_DATE",
    START_END_SAME = "START_END_SAME"
}
export type DateRangeErrors = {
    [DATE_RANGE_ERROR_TYPES.INVALID_DATETIME]?: string;
    [DATE_RANGE_ERROR_TYPES.START_AFTER_END]?: string;
    [DATE_RANGE_ERROR_TYPES.END_BEFORE_START]?: string;
    [DATE_RANGE_ERROR_TYPES.START_BEFORE_MIN]?: string;
    [DATE_RANGE_ERROR_TYPES.END_AFTER_MAX]?: string;
    [DATE_RANGE_ERROR_TYPES.END_AFTER_MIN]?: string;
    [DATE_RANGE_ERROR_TYPES.START_AFTER_MAX]?: string;
    [DATE_RANGE_ERROR_TYPES.INVALID_START_DATE]?: string;
    [DATE_RANGE_ERROR_TYPES.INVALID_END_DATE]?: string;
};
export declare const DATE_RANGE_INPUT_TYPES: {
    readonly START: "START";
    readonly END: "END";
};
export type DateRangeInputType = ValueOf<typeof DATE_RANGE_INPUT_TYPES>;
type ValidateOnClickProps = {
    start?: Moment | null;
    end?: Moment | null;
    viewMode: string;
    dateTimeFormat: string;
    minStart?: Moment;
    maxEnd?: Moment;
    sameDateError?: boolean;
};
export type ValidateOnClick = ({ start, end, viewMode, dateTimeFormat, minStart, maxEnd, sameDateError, }: ValidateOnClickProps) => {
    startErrors: DateRangeErrors;
    endErrors: DateRangeErrors;
};
export type ValidateOnChange = (dateTime: string, dateTimeFormat: string) => string | undefined;
export type DateRangePickerPanelProps = {
    buttonText: string;
    cancelButtonText?: string;
    dateFormat?: string;
    defaultEnd: Moment;
    defaultStart: Moment;
    initialDirection: InitialDirection;
    initialViewMode?: ViewModeType;
    initialTargetInput?: DateRangeInputType;
    maxEnd?: Moment;
    minStart?: Moment;
    sameDateError?: boolean;
    onSubmit: (start: Moment, end: Moment) => void;
    onDismiss: () => void;
    resetText?: string;
    timeFormat: string | boolean;
    utcSuffix?: string;
    validateOnClick?: ValidateOnClick;
    validateOnChange?: ValidateOnChange;
    dateStartInputAriaLabel: string;
    dateEndInputAriaLabel: string;
};
/** Represents the panel used to select two datetimes that make up a range. */
declare function DateRangePickerPanel({ buttonText, cancelButtonText, dateFormat, defaultEnd, defaultStart, initialDirection, initialViewMode, initialTargetInput, maxEnd, minStart, sameDateError, onSubmit, onDismiss, resetText, timeFormat, utcSuffix, validateOnClick: propValidateOnClick, validateOnChange: propValidateOnChange, dateStartInputAriaLabel, dateEndInputAriaLabel, }: DateRangePickerPanelProps): import("react/jsx-runtime").JSX.Element;
export default DateRangePickerPanel;
