import { Interpolation } from 'emotion'; import React from 'react'; import { Theme } from '../../styles'; import { ModifierFn } from '../Calendar/Calendar'; export interface MonthPickerProps extends Omit, 'onChange'> { visibleMonth: ReferenceMonth; /** * 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; onVisibleMonthChange(visibleMonth: ReferenceMonth): void; onMouseLeave?(): void; onMonthHover?(month: ReferenceMonth): void; formatter?: (date: Date, month: Intl.DateTimeFormat) => string; onMonthClick?(refMonth: ReferenceMonth): void; isDisabled?(month: ReferenceMonth): boolean; } /** * Interface representing the selected month. * @ * Months are zero indexed, so January is month 0. */ export interface ReferenceMonth { month: number; year: number; } export declare const MonthPicker: React.ForwardRefExoticComponent>; export interface MonthModifierPredicateMap { selected: ModifierFn; current: ModifierFn; [key: string]: ModifierFn; } export type MonthModifierStyleMap = { [key in keyof MonthModifierPredicateMap]: (theme: Theme) => Interpolation; }; export declare const defaultModifiers: MonthModifierPredicateMap; export declare const defaultModifierStyles: MonthModifierStyleMap; export declare const createMonthStylesFn: (modifiers: MonthModifierPredicateMap, styles: MonthModifierStyleMap, theme: Theme) => (month: ReferenceMonth) => Interpolation; export declare const createStyles: (theme: Theme) => { container: React.CSSProperties; header: React.CSSProperties; months: React.CSSProperties; item: React.CSSProperties; button: React.CSSProperties; active: React.CSSProperties; };