import { Ref, ReactElement, CSSProperties } from 'react';
import { DateValue, Calendar } from '@internationalized/date';
import { AriaDateFieldProps } from '@react-aria/datepicker';
import { SupportedCalendars } from '../types/common.types.js';
import { InputClassNames, InputStyles } from '../types/theme.types.js';
import { DateFieldProps } from './date-field.js';
import { DateInputGroupProps } from './date-input-group.js';
import '@react-stately/datepicker';
import '@react-types/shared';
import './date-input-segment.js';

interface Props<T extends DateValue = DateValue> extends AriaDateFieldProps<T>, Pick<DateFieldProps, 'inputProps' | 'fieldProps' | 'segmentProps' | 'formatSegment'>, Pick<DateInputGroupProps, 'children' | 'startContent' | 'endContent' | 'labelProps' | 'groupProps'> {
    className?: string;
    style?: CSSProperties;
    classNames?: InputClassNames;
    styles?: InputStyles;
    createCalendar?: (calendar: SupportedCalendars) => Calendar | null;
}
type DateInputProps<T extends DateValue = DateValue> = Props<T> & {
    ref?: Ref<HTMLElement>;
};
declare const _default: <T extends DateValue>(props: DateInputProps<T>) => ReactElement;

export { type DateInputProps, _default as default };
