import { InputHTMLAttributes } from 'react';
import { YearlessDateMode, YearlessDate } from '../types';
import { PassThroughPropsWithRef, Size } from '../../../types';
export type YearlessDateInputChange = {
    event: React.ChangeEvent<HTMLInputElement> | null;
    value: YearlessDate | null;
    isInputValid: boolean;
    isInputEmpty: boolean;
};
export type YearlessDateInputChangeHandler = (change: YearlessDateInputChange) => void;
export type YearlessDateInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "value" | "ref" | "size"> & {
    onChange: YearlessDateInputChangeHandler;
    mode?: YearlessDateMode;
    value?: YearlessDate | null;
    error?: boolean;
    size?: Extract<Size, "small" | "medium" | "large">;
    wrapperProps?: PassThroughPropsWithRef<"div">;
    rootProps?: PassThroughPropsWithRef<"div">;
    loading?: boolean;
    enableStepping?: boolean;
};
export type YearlessDateInputRef = HTMLInputElement & {
    setValue: (value: YearlessDate | null) => {
        value: YearlessDate | null;
        isInputValid: boolean;
        isInputEmpty: boolean;
    };
    removePlaceholder: (value: string) => string;
};
/**
 * A masked date input component that allows for the input of a date in a specific format.
 *
 * Provides a `setDate` method that can be used to set the date from outside the component (e.g from a calendar).
 *
 * @internal This component is not intended to be used directly in consumer code.
 *
 * @param props - The props for the MaskedDateInput component.
 * @param props.onChange - The function to call when the date changes.
 * @param props.mode - The mode of the date input.
 */
export declare const YearlessDateInput: import('react').ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "ref" | "onChange" | "size" | "value"> & {
    onChange: YearlessDateInputChangeHandler;
    mode?: YearlessDateMode;
    value?: YearlessDate | null;
    error?: boolean;
    size?: Extract<Size, "small" | "medium" | "large">;
    wrapperProps?: PassThroughPropsWithRef<"div">;
    rootProps?: PassThroughPropsWithRef<"div">;
    loading?: boolean;
    enableStepping?: boolean;
} & import('react').RefAttributes<YearlessDateInputRef>>;
