///
import * as React from 'react';
import { ComponentClass } from 'react';
import { PassTroughFunction } from '../../utils/getPassThrough';
import { PickerDate, DateChecker } from './types';
import { DayType } from './Day';
export interface MonthTitleProps {
viewDate: Date;
}
export interface WeekdayProps {
children: string;
weekDay: number;
}
export interface MonthProps {
highlighted?: PickerDate;
isDayBlocked: DateChecker;
isDayDisabled: DateChecker;
locale: string | object;
onDayClick(day: Date, event: React.MouseEvent): void;
onDayMouseEnter(day: Date, event: React.MouseEvent): void;
onDayMouseLeave(day: Date, event: React.MouseEvent): void;
selected?: PickerDate;
sundayFirstDayOfWeek: boolean;
viewDate: Date;
}
export declare type MonthNodes = 'Day' | 'DaysWeek' | 'DaysWrapper' | 'Weekday' | 'MonthTitle' | 'MonthWrapper' | 'WeekDay' | 'WeekdaysWrapper';
export interface MonthFactoryArgs {
/**
* Used to render each Day of the Month.
*/
Day: DayType;
/**
* Used wrap each bunch of days that compose a week.
*/
DaysWeek: ComponentClass;
/**
* Used to render a wrapper around all weeks..
*/
DaysWrapper: ComponentClass;
/**
* Used to render the month title
*/
MonthTitle: ComponentClass;
/**
* Used as a wrapper of the whole month component.
*/
MonthWrapper: ComponentClass;
/**
* Use it to render each Weekday
*/
Weekday: ComponentClass;
/**
* Used to render a wrapper around all weekdays
*/
WeekdaysWrapper: ComponentClass;
/**
* Use it to customize how props are passed around.
*/
passthrough: PassTroughFunction;
}
export declare type MonthType = ComponentClass;
export default function monthFactory({Day, DaysWeek, DaysWrapper, MonthTitle, MonthWrapper, Weekday, WeekdaysWrapper, passthrough}: MonthFactoryArgs): MonthType;