import { InputHTMLAttributes } from 'react';
import { YearlessDateMode, YearlessDate } from '../types';
import { PassThroughPropsWithRef, Size } from '../../../types';
export type YearlessDateInputChange = {
event: React.ChangeEvent | null;
value: YearlessDate | null;
isInputValid: boolean;
isInputEmpty: boolean;
};
export type YearlessDateInputChangeHandler = (change: YearlessDateInputChange) => void;
export type YearlessDateInputProps = Omit, "onChange" | "value" | "ref" | "size"> & {
onChange: YearlessDateInputChangeHandler;
mode?: YearlessDateMode;
value?: YearlessDate | null;
error?: boolean;
size?: Extract;
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, "onChange" | "ref" | "size" | "value"> & {
onChange: YearlessDateInputChangeHandler;
mode?: YearlessDateMode;
value?: YearlessDate | null;
error?: boolean;
size?: Extract;
wrapperProps?: PassThroughPropsWithRef<"div">;
rootProps?: PassThroughPropsWithRef<"div">;
loading?: boolean;
enableStepping?: boolean;
} & import('react').RefAttributes>;