import type { TZDate } from '@date-fns/tz'; import type { RequireAtLeastOne } from 'type-fest'; import type { CalendarType } from './types/calendarConfiguration.js'; import type { BehaviorTrackingProps } from '../../core/types/behavior-tracking-props.js'; import type { DataTestId } from '../../core/types/data-props.js'; import type { FormControlProps } from '../../core/types/form-control-props.js'; import type { MaskingProps } from '../../core/types/masking-props.js'; import type { StylingProps } from '../../core/types/styling-props.js'; import type { Timeframe } from '../../core/types/time.js'; import type { MessageTarget } from '../validation/message-routing.js'; /** @internal */ export type CalendarValueType = Type extends 'range' ? RequireAtLeastOne | RequireAtLeastOne<{ from: string; to: string; }> | null : string | null | Date; /** @internal */ export type CalendarStrictValueType = Type extends 'range' ? Timeframe | null : string | null; /** @internal */ export type CalendarProps = FormControlProps, (date: CalendarStrictValueType) => void, HTMLDivElement> & StylingProps & MaskingProps & DataTestId & BehaviorTrackingProps & { /** The earliest selectable date. It will always consider the start of the day as time. */ min?: string; /** The latest selectable date. It will always consider the end of the day as time. */ max?: string; /** Determines the calendar type. Single allows the selection of one date and range allows a range selection with a from and to value. * @defaultValue 'single' */ type?: Type; /** * The precision of the time shown in the display value. * @defaultValue 'minutes' */ precision?: 'minutes' | 'seconds' | 'milliseconds'; /** * Internal: associates this control with a `_Form` rendered outside its * React subtree via the native `form` attribute. Unstable. * @internal */ _form?: string; /** * Internal: routes this control's native/Strato validation messages to the * field outlet (default), the enclosing form's outlet, or both. Unstable. * @internal */ _messageTarget?: MessageTarget | MessageTarget[]; }; /** @internal */ export interface SelectMonthViewItems { months: TZDate[]; } //# sourceMappingURL=Calendar.types.d.ts.map