import { ViewStyle, StyleProp } from 'react-native'; import { BaseInputProps } from '../Input/types'; import { SizeValue } from '../../core/theme/types'; import type { CalendarProps as CoreCalendarProps, CalendarType, CalendarValue, CalendarLevel } from '../Calendar/types'; export interface DatePickerProps { /** Selected value; type depends on `type` prop */ value?: CalendarValue; /** Initial value for uncontrolled usage */ defaultValue?: CalendarValue; /** Called when value changes */ onChange?: (value: CalendarValue) => void; /** Selection behavior */ type?: CalendarType; /** Pass-through customization for underlying Calendar */ calendarProps?: Partial; /** Optional container style for the inline calendar */ style?: StyleProp; /** Test identifier */ testID?: string; /** Accessibility label for the inline calendar region */ accessibilityLabel?: string; /** Accessibility hint for the inline calendar region */ accessibilityHint?: string; } /** * DateTimePickerProps – combines calendar date + time selection. */ export interface DateTimePickerProps extends Omit { value?: Date | null; defaultValue?: Date | null; onChange?: (value: Date | null) => void; calendarProps?: Partial; withTime?: boolean; timeFormat?: 12 | 24; withSeconds?: boolean; minuteStep?: number; secondStep?: number; placeholder?: string; displayFormat?: string; clearable?: boolean; dropdownType?: 'modal' | 'popover'; closeOnSelect?: boolean; onOpen?: () => void; onClose?: () => void; size?: SizeValue; } export type { CalendarType, CalendarValue, CalendarLevel };