import { FC, FocusEventHandler, PropsWithChildren } from "react";
import { DateOrTimeInputType, NvDateInputOnChangeHandler, NvDateInputValue } from "./types";
/**
* Defines the props for the NvDateInput component.
*
* @param digitPlaceholder Character that will be displayed instead of missing digits
* @param format If `inputType` is `date`, sets format string for the date input, only `MM`, `dd`, `yyyy` patterns could be used for date format string. No need to set format if `inputType` is `time`. See [date-fns documentation](https://date-fns.org/v3.6.0/docs/format) for details.
* @param fullwidth If `true`, the button will take up the full width of its container
* @param placeholder The short hint displayed in the input before the user enters a value
* @param onChange Callback fired when the value changes. First argument of callback will be a `Date` object for date input, or a `string` in 'HH:mm' format for time input, or `null` if no value is present
* @param onBlur Callback fired when the input loses focus
* @param className Additional CSS class name
* @param value The value of the input
* @param inputType Specifies if the input is for date or time
* @param invalid If `true`, indicates that the input value is invalid
* @param disabled If `true`, disables the input
*/
export interface NvDateInputProps {
/** Character that will be displayed instead of missing digits */
digitPlaceholder?: string;
/** If inputType is date sets format string for the date input, only MM, dd, yyyy patterns could be used for date format string. No need to set format if inputType is time. See [date-fns documentation](https://date-fns.org/v3.6.0/docs/format) for details. */
format?: string;
/** If true, the button will take up the full width of its container. */
fullwidth?: boolean;
/** The short hint displayed in the input before the user enters a value. */
placeholder?: string;
/** Callback fired when the value changes. First argument of callback will be a Date object for date input, or a string in 'HH:mm' format for time input, or null if no value is present. */
onChange: NvDateInputOnChangeHandler;
onBlur?: FocusEventHandler;
value?: NvDateInputValue;
inputType?: DateOrTimeInputType;
/** Indicates if the input is invalid */
invalid?: boolean;
/** Indicates if the input is disabled */
disabled?: boolean;
/** Indicates if the input is read-only */
readOnly?: boolean;
/** Additional CSS classes for styling */
className?: string;
}
/**
* Functional component for a date input field.
*
* @param {DateOrTimeInputType} inputType - The type of input (date or time).
* @param {Date | string} value - The current value of the input field.
* @param {boolean} invalid - Indicates if the input is invalid.
* @param {string} placeholder - The placeholder text for the input field.
* @param {boolean} disabled - Indicates if the input is disabled.
* @param {string} format - The format of the date input.
* @param {string} digitPlaceholder - The placeholder for digits in the input.
* @param {boolean} fullwidth - Indicates if the input should take full width.
* @param {func} onChange - Function to handle input change.
* @param {boolean} readOnly - Indicates if the input is read-only.
* @param {string} className - Additional CSS classes for styling.
* @param {ReactNode} children - Child components.
* @returns React element for the date input field.
*/
declare const NvDateInput: FC>;
export default NvDateInput;