import React, { ComponentType, FocusEvent, FocusEventHandler, HTMLProps } from 'react';
import Datetime, { ViewMode, TimeConstraints } from 'react-datetime';
import { Moment, MomentInput } from 'moment';
import { InputProps } from '../input';
import { DATE_PICKER_START_END_DATE, DATE_PICKER_VALUE, DatePickerPlacement, DATE_PICKER_VALIDITY } from './types';
import './datetime-picker.less';
export type DatePickerProps = {
    showInput?: boolean;
    inputNode?: ComponentType;
    startDate?: DATE_PICKER_START_END_DATE;
    endDate?: DATE_PICKER_START_END_DATE;
    placement?: DatePickerPlacement;
    validity?: DATE_PICKER_VALIDITY;
    className?: string;
    utc?: boolean;
    value?: DATE_PICKER_VALUE;
    initialValue?: DATE_PICKER_VALUE;
    /** Props passed to the Input component */
    inputProps?: InputProps & HTMLProps<HTMLInputElement>;
    onClose?: (event: FocusEvent<any> | Moment | string) => void;
    /** Props passed to the Datetime component */
    onChange?: (value: Moment | string) => void;
    onOpen?: FocusEventHandler<any>;
    onNavigate?: (viewMode: string) => void;
    onNavigateBack?: (amount: number, type: string) => void;
    onNavigateForward?: (amount: number, type: string) => void;
    defaultValue?: MomentInput;
    initialViewDate?: Date | string | Moment;
    initialViewMode?: ViewMode;
    dateFormat?: boolean | string;
    timeFormat?: boolean | string;
    closeOnSelect?: boolean;
    closeOnClickOutside?: boolean;
    closeOnTab?: boolean;
    timeConstraints?: TimeConstraints;
    /** If this component's Input should be focused on render */
    autoFocus?: boolean;
};
/** Wrapper around react-datetime package. Original props from https://github.com/arqex/react-datetime#api are supported
 * @midnight-gray-supported
 * @alpine-light-supported
 * */
export declare class DatePicker extends React.Component<DatePickerProps> {
    static defaultProps: {
        startDate: Date;
        endDate: Date;
        placement: "bottom";
        value: Date;
        defaultValue: Date;
        dateFormat: string;
        timeFormat: string;
        showInput: boolean;
        utc: boolean;
        onChange: () => void;
        onOpen: () => void;
        onClose: () => void;
        onNavigate: () => void;
        onNavigateBack: () => void;
        onNavigateForward: () => void;
        initialViewMode: Datetime.ViewMode;
        closeOnSelect: boolean;
        closeOnTab: boolean;
        timeConstraints: {};
        closeOnClickOutside: boolean;
        autoFocus: boolean;
    };
    isDateEnabled: (currentDate: any) => boolean;
    renderInput: (renderProps: any) => import("react/jsx-runtime").JSX.Element;
    render(): import("react/jsx-runtime").JSX.Element;
}
