import { Interpolation } from 'emotion'; import React, { MouseEvent } from 'react'; import { Theme } from '../../styles'; import { MonthViewProps } from './MonthView'; export interface CalendarProps extends MonthViewProps { /** * Map of modifier predicates to apply custom or pre-defined styles to dates. */ modifiers?: Partial; /** * Map of modifier styles to be applied to a date if the respective modifier predicate applies. */ modifierStyles?: Partial; /** * Called when the current visible date changes. * You might want to change the current `visibleDate` prop when this occurs. * @param visibleDate The new visible date. */ onVisibleDateChange(visibleDate: Date): void; /** * */ onMouseLeave?(e: MouseEvent): void; /** * */ isDaySelected?(day: Date): boolean; } export declare function Calendar(props: CalendarProps): JSX.Element; export declare const createStyles: () => { root: React.CSSProperties; controls: React.CSSProperties; }; export type ModifierFn = (element: any, props?: MonthViewProps) => boolean; export interface ModifierPredicateMap { disabled: ModifierFn; selected: ModifierFn; today: ModifierFn; adjacentMonth: ModifierFn; [key: string]: ModifierFn; } export type ModifierStyleMap = { [key in keyof ModifierPredicateMap]: (theme: Theme) => Interpolation; }; export declare const defaultDayModifiers: ModifierPredicateMap; export declare const defaultWeekModifiers: ModifierPredicateMap; export declare const defaultModifierStyles: ModifierStyleMap; export declare const createStylesFn: (modifiers: ModifierPredicateMap, styles: ModifierStyleMap, theme: Theme) => (element: any, props: MonthViewProps) => Interpolation;