import { default as React } from 'react';
import { Moment } from 'moment';
import { default as DatetimeImport, DatetimepickerProps } from 'react-datetime';
export type DatePickerProps = Omit<DatetimepickerProps, 'onChange' | 'initialValue'> & {
    /**
     * An id used for the internal input element.
     */
    id?: string;
    /**
     * The moment locale to be used for the date picker.
     * Make sure to import the respective moment locale files.
     *
     * @default 'en-GB'
     * @example import 'moment/dist/locale/de';
     */
    locale?: string;
    /**
     * Once the day has been selected, the date picker will be closed automatically.
     *
     * @default true
     */
    closeOnSelect?: boolean;
    /**
     * Default value of the DatePicker (date or moment).
     */
    initialValue?: Date | Moment;
    /**
     * Value of the DatePicker (date or moment). Use this only if you want to use
     * this component as a controlled component
     */
    value?: Date | string | Moment;
    dateFormat?: boolean | string;
    timeFormat?: boolean | string;
    inputProps?: React.HTMLProps<HTMLInputElement>;
    /**
     * Defines whether the dropdown opens upwards or not.
     *
     * @default false
     */
    dropup?: boolean;
    /**
     * Opens the picker right aligned.
     *
     * @default false
     */
    alignRight?: boolean;
    /**
     * Defines whether the clearableInput button is shown.
     *
     * @default false
     */
    clearableInput?: boolean;
    /**
     * Optional min-width value (without px). Since the DatePicker has a max-width of 100%
     * you can also set a high minWidth number to use 100% with of the parent element.
     * A value of "0" means no extra width is set and it becomes 100% width of the parent.
     *
     * @default 0
     */
    minWidth?: number;
    /**
     * Callback function when the value changes. Receives the new date (moment)
     * and a boolean (whether date is valid or not) as arguments.
     *
     * @param value
     * @param isValid
     * @returns
     */
    onChange?: (value: Moment | string, isValid: boolean) => void;
    /**
     * Defines whether the input shows an error when the date is invalid or cleared.
     *
     * @default true
     */
    mandatory?: boolean;
    /**
     * Overwrites the internal date validation function in case you need to customize it.
     *
     * @param date
     * @returns
     */
    dateValidation?: (date: Moment | string) => boolean;
    /**
     * Additional classes to be set on the DatePicker element.
     */
    className?: string;
};
declare const DatePicker: React.ForwardRefExoticComponent<Omit<DatetimeImport.DatetimepickerProps, "onChange" | "initialValue"> & {
    /**
     * An id used for the internal input element.
     */
    id?: string;
    /**
     * The moment locale to be used for the date picker.
     * Make sure to import the respective moment locale files.
     *
     * @default 'en-GB'
     * @example import 'moment/dist/locale/de';
     */
    locale?: string;
    /**
     * Once the day has been selected, the date picker will be closed automatically.
     *
     * @default true
     */
    closeOnSelect?: boolean;
    /**
     * Default value of the DatePicker (date or moment).
     */
    initialValue?: Date | Moment;
    /**
     * Value of the DatePicker (date or moment). Use this only if you want to use
     * this component as a controlled component
     */
    value?: Date | string | Moment;
    dateFormat?: boolean | string;
    timeFormat?: boolean | string;
    inputProps?: React.HTMLProps<HTMLInputElement>;
    /**
     * Defines whether the dropdown opens upwards or not.
     *
     * @default false
     */
    dropup?: boolean;
    /**
     * Opens the picker right aligned.
     *
     * @default false
     */
    alignRight?: boolean;
    /**
     * Defines whether the clearableInput button is shown.
     *
     * @default false
     */
    clearableInput?: boolean;
    /**
     * Optional min-width value (without px). Since the DatePicker has a max-width of 100%
     * you can also set a high minWidth number to use 100% with of the parent element.
     * A value of "0" means no extra width is set and it becomes 100% width of the parent.
     *
     * @default 0
     */
    minWidth?: number;
    /**
     * Callback function when the value changes. Receives the new date (moment)
     * and a boolean (whether date is valid or not) as arguments.
     *
     * @param value
     * @param isValid
     * @returns
     */
    onChange?: (value: Moment | string, isValid: boolean) => void;
    /**
     * Defines whether the input shows an error when the date is invalid or cleared.
     *
     * @default true
     */
    mandatory?: boolean;
    /**
     * Overwrites the internal date validation function in case you need to customize it.
     *
     * @param date
     * @returns
     */
    dateValidation?: (date: Moment | string) => boolean;
    /**
     * Additional classes to be set on the DatePicker element.
     */
    className?: string;
} & React.RefAttributes<unknown>>;
export default DatePicker;
