/// import { ComposedGesture, GestureType } from "react-native-gesture-handler"; import { PageInterpolatorParams } from "react-native-infinite-pager"; import Animated, { useAnimatedStyle, WithSpringConfig } from "react-native-reanimated"; import { DEFAULT_THEME } from "./defaults"; export declare type OnDateSelect = undefined | ((date: Date, options: { isSelected: boolean; }) => void); export declare type DayComponentType = (props: { date: Date; isInDisplayedMonth: boolean; isSelected: boolean; isToday: boolean; }) => JSX.Element | null; export declare type WeekComponentType = (props: { days: Date[]; }) => JSX.Element | null; export declare type MonthComponentType = (props: { weeks: Date[][]; firstDayOfMonth: Date; }) => JSX.Element | null; export declare type HeaderComponentType = (props: { startDate: Date; endDate: Date; }) => JSX.Element | null; export declare type DayLabelComponentType = (props: { date: Date; }) => JSX.Element | null; export declare type ImperativeApiOptions = { animated?: boolean; }; export declare type CalendarImperativeApi = { incrementPage: (options?: ImperativeApiOptions) => void; decrementPage: (options?: ImperativeApiOptions) => void; setPage: (date: Date, options?: ImperativeApiOptions) => void; }; export declare type CalendarPageInterpolator = (params: CalendarPageInterpolatorParams) => ReturnType; export declare type CalendarProps = { selectedDate?: Date | null; onDateSelect?: OnDateSelect; onPageChange?: (date: Date) => void; currentDate?: Date; HeaderComponent?: HeaderComponentType; DayLabelComponent?: DayLabelComponentType; DayComponent?: DayComponentType; WeekComponent?: WeekComponentType; MonthComponent?: MonthComponentType; theme?: Partial; pageBuffer?: number; minDate?: Date; maxDate?: Date; pageInterpolator?: CalendarPageInterpolator; simultaneousGestures?: (ComposedGesture | GestureType)[]; monthAnimCallbackNode?: Animated.SharedValue; gesturesDisabled?: boolean; animationConfig?: Partial; weekStartsOn?: WeekDayIndex; pageInterval?: PageInterval; }; export declare type DayProps = { date: Date; isInDisplayedMonth: boolean; isSelected: boolean; isToday: boolean; DayComponent?: DayComponentType; onDateSelect?: OnDateSelect; theme: typeof DEFAULT_THEME; dateFormatted: string; }; export declare type DayWrapperProps = { isInDisplayedMonth: boolean; date: Date; dateFormatted: string; }; export declare type CalendarPageInterpolatorParams = PageInterpolatorParams & { theme: typeof DEFAULT_THEME; }; export declare type WeekDayIndex = 0 | 1 | 2 | 3 | 4 | 5 | 6; export declare type PageInterval = "day" | "week" | "month";