import { DateAfter, DateBefore, DateInterval, DateRange, DayOfWeek, Matcher } from 'react-day-picker'; import { InputPropsWithLegacy as InputProps } from '../Input/types'; interface DatePickerBaseProps { variant?: "input" | "only-calendar" | "input-and-calendar"; required?: boolean; disabledDates?: boolean | Matcher[] | Date | Date[] | DateRange | DateBefore | DateAfter | DateInterval | DayOfWeek | ((date: Date) => boolean); className?: string; calendarClassName?: string; header?: string | React.ReactNode; footer?: string | React.ReactNode; hideOutsideDays?: boolean; numberOfMonths?: number; startMonth?: Date; endMonth?: Date; showActionButtons?: boolean; applyLabel?: string; cancelLabel?: string; onApply?: (value: Date | DateRange | Date[] | undefined) => void; onCancel?: () => void; hideFooter?: boolean; inputProps?: Partial; label?: string; name?: string; disabled?: boolean; tabIndex?: number; onClearSelection?: () => void; showClearButton?: boolean; } interface DatePickerSingleProps extends DatePickerBaseProps { mode?: "single"; selected: Date | undefined; onSelect: (date: Date | undefined) => void; } interface DatePickerRangeProps extends DatePickerBaseProps { mode: "range"; selected: DateRange | undefined; onSelect: (range: DateRange | undefined) => void; min?: number; max?: number; excludeDisabled?: boolean; } interface DatePickerMultipleProps extends DatePickerBaseProps { mode: "multiple"; selected: Date[] | undefined; onSelect: (dates: Date[] | undefined) => void; min?: number; max?: number; } export type DatePickerProps = DatePickerSingleProps | DatePickerRangeProps | DatePickerMultipleProps; declare const DatePicker: (props: DatePickerProps) => import("react/jsx-runtime").JSX.Element; export default DatePicker; interface CalendarProps { min?: number; max?: number; excludeDisabled?: boolean; endMonth?: Date; startMonth?: Date; /** Mes visible controlado (react-day-picker `month`). */ month?: Date; /** Mes inicial no controlado. Tiene prioridad sobre el derivado de `displayValue`. */ defaultMonth?: Date; /** Se dispara al cambiar el mes visible (flechas o dropdown). */ onMonthChange?: (month: Date) => void; readonly?: boolean; className?: string; required?: boolean; hideFooter?: boolean; applyLabel?: string; cancelLabel?: string; onApply?: () => void; onCancel?: () => void; numberOfMonths?: number; hideOutsideDays?: boolean; style?: React.CSSProperties; showActionButtons?: boolean; header?: string | React.ReactNode; footer?: string | React.ReactNode; mode: "single" | "range" | "multiple"; ref?: React.RefObject; selected: Date | DateRange | Date[] | undefined; displayValue: Date | DateRange | Date[] | undefined; onSelect?: (value: Date | DateRange | Date[] | undefined) => void; calendarPosition?: { top: number; bottom: number; left: number; right: number; }; disabledDates?: boolean | Matcher[] | Date | Date[] | DateRange | DateBefore | DateAfter | DateInterval | DayOfWeek | ((date: Date) => boolean); } export declare const Calendar: import('react').MemoExoticComponent<(props: CalendarProps) => import("react/jsx-runtime").JSX.Element>;