import React, { MouseEvent } from 'react'; import { DateRange, Matcher } from 'react-day-picker'; interface ButtonProps { /** * Is this the principal call to action on the page? */ type?: 'primary' | 'secondary'; /** * What background color to use */ textColor?: string; /** * How large should the button be? */ size?: 'small' | 'medium' | 'large'; /** * Button contents */ label: string; /** * Optional click handler */ onClick?: (event: MouseEvent) => void; } /** * Primary UI component for user interaction */ declare const Button: ({ type, textColor, size, onClick, label, }: ButtonProps) => React.JSX.Element; type Palette = { primary: string; secondary: string; error: string; }; type CalendarOffset = { [key: string]: number; }; type DisableCalendarDates = { availableDates?: { checkIn: Date; firstCheckOut: Date; lastCheckOut: Date; }[]; disabledDates?: { to: Date; from: Date; }[]; disabledDatesByPage?: { page: string; offset: number; }[]; }; type RangeContext = { from: Date; to: Date; }; type CalendarTypes = { calendarRange?: DateRange | undefined; setCalendarRange: (range: DateRange | undefined) => void; calendarOffset?: CalendarOffset; selectedPath?: string; language?: string; disableCalendarDates?: DisableCalendarDates; requestDates?: (val: Date) => void; disabledDates?: Matcher[]; setDisabledDates?: (arg: Matcher[]) => void; loadingData?: boolean; showFeedback?: boolean; noActiveSelection?: boolean; palette?: Palette; updateCalendarMonthNavigation?: boolean; setUpdateCalendarMonthNavigation?: (arg: (prev: boolean) => boolean) => void; updateCalendarDefaultMonth?: number; setCalendarHasError?: (arg: boolean) => void; setUpdatedForSubmit?: (arg: boolean) => void; rangeContext?: RangeContext; calendarHasError?: boolean; autoFocus?: boolean; }; type FilterBarTypes = { language?: string; ageCategories?: AgeCategoryType[]; redirectUrl?: string; palette?: Palette; onSubmit?: ((val: Filters) => void) | null; fullWidth?: boolean; disableCalendarDates?: DisableCalendarDates; mode?: string; tabs?: Tab[]; outerLoading?: boolean; locations?: Locations; }; type AgeCategoryType = { id: string; name: string; minVal: number; sortOrder: number; }; type Filters = { [key: string]: string; }; type Tab = { path: string; default?: boolean; order: number; label?: string; }; type Locations = { multiSelect?: boolean; disabled?: boolean; data: Location[]; }; type Location = { id: number; label: string; description?: string | null; imageUrl?: string | null; }; declare const FilterBar: ({ language, ageCategories, redirectUrl, palette, onSubmit, fullWidth, disableCalendarDates, mode, tabs, outerLoading, locations, }: FilterBarTypes) => React.JSX.Element; interface FilterCalendarTypes extends Partial { palette: Palette; onSubmit: (val: DateRange) => void; toggleCalendar: boolean; setToggleCalendar: (val: boolean) => void; } declare function FilterCalendar({ calendarOffset, language, palette, onSubmit, disableCalendarDates: outerDisableCalendarDates, toggleCalendar, loadingData, setToggleCalendar, requestDates, showFeedback, noActiveSelection, rangeContext: outerRangeContext, }: FilterCalendarTypes): React.JSX.Element; export { Button, FilterBar, FilterBarTypes, FilterCalendar, FilterCalendarTypes };