import * as moment from "moment";
import * as React from "react";
import * as PropTypes from "prop-types";
import { Size } from "../utils/Forms";
import { Values } from "../utils/types";
import "./DateInput.less";
import "../less/forms.less";
export interface Props {
    disabled?: boolean;
    error?: string;
    label?: string;
    name: string;
    onChange?: (...args: any[]) => void;
    placeholder?: string;
    readOnly?: boolean;
    required?: boolean;
    type?: string;
    value?: moment.Moment;
    className?: string;
    min?: moment.Moment;
    max?: moment.Moment;
    useTime?: boolean;
    popperPlacement?: Values<typeof popperPlacementPositions>;
    size?: Size;
    dateFormat?: string[];
}
interface State {
    hasBeenFocused: boolean;
    inFocus: boolean;
}
declare const popperPlacementPositions: {
    readonly BOTTOM: "bottom";
    readonly BOTTOM_END: "bottom-end";
    readonly BOTTOM_START: "bottom-start";
    readonly LEFT: "left";
    readonly LEFT_END: "left-end";
    readonly LEFT_START: "left-start";
    readonly RIGHT: "right";
    readonly RIGHT_END: "right-end";
    readonly RIGHT_START: "right-start";
    readonly TOP: "top";
    readonly TOP_END: "top-end";
    readonly TOP_START: "top-start";
};
export default class DateInput extends React.Component<Props, State> {
    static propTypes: {
        disabled: PropTypes.Requireable<boolean>;
        error: PropTypes.Requireable<string>;
        label: PropTypes.Requireable<string>;
        name: PropTypes.Validator<string>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        placeholder: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        readOnly: PropTypes.Requireable<boolean>;
        required: PropTypes.Requireable<boolean>;
        type: PropTypes.Requireable<string>;
        value: PropTypes.Requireable<unknown>;
        className: PropTypes.Requireable<string>;
        min: PropTypes.Requireable<unknown>;
        max: PropTypes.Requireable<unknown>;
        useTime: PropTypes.Requireable<boolean>;
        popperPlacement: PropTypes.Requireable<Values<{
            readonly BOTTOM: "bottom";
            readonly BOTTOM_END: "bottom-end";
            readonly BOTTOM_START: "bottom-start";
            readonly LEFT: "left";
            readonly LEFT_END: "left-end";
            readonly LEFT_START: "left-start";
            readonly RIGHT: "right";
            readonly RIGHT_END: "right-end";
            readonly RIGHT_START: "right-start";
            readonly TOP: "top";
            readonly TOP_END: "top-end";
            readonly TOP_START: "top-start";
        }>>;
        size: PropTypes.Requireable<Values<{
            readonly SMALL: "small";
            readonly MEDIUM: "medium";
            readonly LARGE: "large";
            readonly FULL_WIDTH: "fullWidth";
        }>>;
        dateFormat: PropTypes.Requireable<string[]>;
    };
    static popperPlacementPositions: {
        readonly BOTTOM: "bottom";
        readonly BOTTOM_END: "bottom-end";
        readonly BOTTOM_START: "bottom-start";
        readonly LEFT: "left";
        readonly LEFT_END: "left-end";
        readonly LEFT_START: "left-start";
        readonly RIGHT: "right";
        readonly RIGHT_END: "right-end";
        readonly RIGHT_START: "right-start";
        readonly TOP: "top";
        readonly TOP_END: "top-end";
        readonly TOP_START: "top-start";
    };
    static defaultProps: {
        size: "fullWidth";
    };
    constructor(props: Props);
    isValidDate(current: any): boolean;
    render(): JSX.Element;
}
export {};
