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 '@react-stately/datepicker';
import '@react-types/shared';
import './date-input-segment.js';

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

export { type DateRangeFieldProps, _default as default };
