import { TextFieldProps } from '../../TextField/internal/TextField';
import { DateTime } from 'luxon';
import { DateMode } from '../types';
export type MaskedDateInputChange = {
    date: DateTime | null;
    isInputValid: boolean;
    isInputEmpty: boolean;
};
export type MaskedDateInputChangeHandler = (change: MaskedDateInputChange) => void;
export type MaskedDateInputProps = Omit<TextFieldProps, "onChange" | "value" | "ref" | "showCounter" | "hint" | "prefix"> & {
    onChange: MaskedDateInputChangeHandler;
    mode?: DateMode;
    lastValidDate: DateTime | null;
    disableHint?: boolean;
};
export type MaskedDateInputRef = HTMLInputElement & {
    setDate: (date: DateTime | null) => void;
};
/**
 * 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 MaskedDateInput: import('react').ForwardRefExoticComponent<Omit<TextFieldProps, "ref" | "prefix" | "onChange" | "hint" | "showCounter" | "value"> & {
    onChange: MaskedDateInputChangeHandler;
    mode?: DateMode;
    lastValidDate: DateTime | null;
    disableHint?: boolean;
} & import('react').RefAttributes<MaskedDateInputRef>>;
