import { Dispatch, SetStateAction } from 'react'; import { DefaultAttributes } from '../types'; export declare type StartingDay = 'sunday' | 'monday' | 'none'; export declare type Selection = 'single-date' | 'range'; export declare type DatePickerVariant = 'chip' | 'select'; export declare type Locale = 'en_CA' | 'fr_CA'; export declare type MonthFormat = 'narrow' | 'short' | 'numeric' | '2-digit' | 'long' | undefined; declare type Months = 1 | 2; declare type DefaultSelectorValues = 'TODAY' | 'YESTERDAY' | 'CUSTOM' | 'LASTTWENTYEIGHT' | 'LASTSEVEN' | 'LASTMONTH'; export declare type Month = { month: number; year: number; }; export declare type DateRange = { start: Date; end: Date; }; export declare type DateEvent = { label: string; date: Date; }; /** * @deprecated */ export declare type DefaultSelector = { value: DefaultSelectorValues; label: string; dateRange?: Date | DateRange; disabled?: boolean; }; /** * @deprecated */ export declare type CustomSelector = { dateRange: Date | DateRange; value: string; label: string; disabled?: boolean; }; declare type BaseDateSelector = { value: string; label: string; disabled?: boolean; }; export declare type DateSelector = BaseDateSelector & { dateRange: Date | DateRange; }; export declare type Selector = DateSelector | (Omit & { value: 'CUSTOM'; }); declare type DefaultSelectorPropType = Omit; /** * @deprecated */ export declare type DefaultSelectors = { today?: DefaultSelectorPropType | null; yesterday?: DefaultSelectorPropType | null; lastSeven?: DefaultSelectorPropType | null; lastTwentyEight?: DefaultSelectorPropType | null; lastMonth?: DefaultSelectorPropType | null; custom?: DefaultSelectorPropType | null; }; export declare type SelectedRange = DateRange | Date | null; export declare type DatePickerProps = { label?: string; hasError?: boolean; errorText?: string; assistText?: string; onBlur?: () => void; touched?: boolean; variant: DatePickerVariant; selectedRange: SelectedRange; onChange: (dateRange: DateRange) => void; onSelect?: (dateRange: DateRange) => void; disabled?: boolean; selection?: Selection; selectors?: Selector[]; /** * @deprecated Prefer using "selectors". This will be removed in the next major version. */ showSelectors?: boolean; /** * @deprecated Prefer using "selectors". This will be removed in the next major version. */ customSelectors?: CustomSelector[]; /** * @deprecated Prefer using "selectors" and passing exported "commonDateSelectors". This will be removed in the next major version. */ defaultSelectorValues?: Omit; dismissText?: string; confirmText?: string; months?: Months; startingDay?: StartingDay; eventDates?: DateEvent[]; placeholder?: string; narrow?: boolean; locale?: Locale; minDate?: Date; maxDate?: Date; leadingIcon?: JSX.Element; monthAndYearSelection?: boolean; } & Pick & DefaultAttributes; export declare type ActionButtonsProps = { onConfirm: () => void; onDismiss: () => void; confirmText?: string; dismissText?: string; narrow?: boolean; } & DefaultAttributes; export declare type CalenderValue = 'primary' | 'secondary'; export declare type CalendarProps = { selection: Selection; selectedRange: DateRange | null; month: number; year: number; startingDay: StartingDay; locale: Locale; minDate: Date | undefined; maxDate: Date | undefined; showSelectors: boolean; visible: boolean; handleChange: (date: Date) => void; eventDates?: DateEvent[]; narrow?: boolean; hasFocus?: boolean; value?: CalenderValue; focusElementIndex?: number | null; setCalenderWithFocus?: (calendar: CalenderValue, prevCalender: CalenderValue) => void; setFocusElementIndex?: Dispatch>; setLength?: Dispatch>; handleNextMonth?: () => void; handlePrevMonth?: () => void; }; export declare type DayNameRowProps = { locale: Locale; scrollBarWidth?: number; startingDay?: StartingDay; narrow?: boolean; }; export declare type HeaderProps = { selection: Selection; currentMonth: number; nextMonth: number; currentYear: number; months: Months; locale: Locale; handleNextMonth: () => void; handlePrevMonth: () => void; } & DefaultAttributes; export declare type MonthAndYearSelectionHeaderProps = { currentMonth: number; currentYear: number; locale: Locale; handleNextYear: () => void; handlePrevYear: () => void; handleNextMonth: () => void; handlePrevMonth: () => void; viewType: string; minDate?: Date; maxDate?: Date; updateViewType: (viewType: ViewType) => void; } & DefaultAttributes; export declare type YearProps = { width: number; height: number; currentYear: number; updateCurrentYear: (year: number) => void; minimumYear?: number; maximumYear?: number; } & DefaultAttributes; export declare type MonthProps = { width: number; height: number; locale: Locale; currentMonth: number; updateCurrentMonth: (month: number) => void; } & DefaultAttributes; export declare type InputProps = { variant: DatePickerVariant; value: DateRange | null; placeholder: string; visible: boolean; disabled: boolean; hasError?: boolean; locale: Locale; handleClick: () => void; leadingIcon?: JSX.Element; getInputLabel?(dateRange: DateRange, locale: Locale, variant: DatePickerVariant): string; } & DefaultAttributes; export declare type DatePickerNarrowProps = { disabled: boolean; selection: Selection; selectedRange: DateRange | null; variant: DatePickerVariant; month: number; year: number; startingDay: StartingDay; locale: Locale; confirmText: string; dismissText: string; eventDates: DateEvent[] | undefined; minDate: Date | undefined; maxDate: Date | undefined; selectors?: Selector[]; /** * @deprecated Prefer using "selectors". This will be removed in the next major version. */ showSelectors: boolean; /** * @deprecated Prefer using "selectors". This will be removed in the next major version. */ customSelectors?: CustomSelector[]; /** * @deprecated Prefer using "selectors" and passing exported "commonDateSelectors". This will be removed in the next major version. */ defaultSelectorValues?: Omit; selectedSelector: Selector | undefined; handleChange: (date: Date) => void; onDismiss: () => void; onConfirm: () => void; onSelectorClick: (selector: Selector) => void; placeholder?: string; label?: string; } & Pick & DefaultAttributes; export declare type GridPosition = { col: number; row: number; }; export declare type DayProps = { day: Date; isInRange: boolean; isStartDay: boolean; isEndDay: boolean; currentMonth: number; selection: Selection; hasEvent: boolean; disabled: boolean; width: number; selectedRange: SelectedRange; hasFocus: boolean; onChange: (date: Date, month?: number) => void; }; export declare type DatePickerSelectProps = { placeholder: string; handleClick: () => void; visible: boolean; disabled: boolean; label?: string; hasError?: boolean; leadingIcon?: JSX.Element; }; export declare type ViewType = 'calendar' | 'month' | 'year'; export {};