///
import * as React from 'react';
import { ComponentClass } from 'react';
import { PassTroughFunction } from '../../utils/getPassThrough';
import { DateChecker, DateRange, FocusedInput, PickerDate, PickerMode } from './types';
import { RangePickerType } from './RangePicker';
import { MonthType } from './Month';
export interface DatePickerProps {
focusedInput: FocusedInput;
highlighted?: PickerDate;
isDayBlocked: DateChecker;
isDayDisabled: DateChecker;
locale: string | object;
mode: PickerMode;
numberOfMonths: number;
onChange(date: DateRange): void;
onDayClick(day: Date, event: React.MouseEvent): void;
onDayMouseEnter(day: Date, event: React.MouseEvent): void;
onDayMouseLeave(day: Date, event: React.MouseEvent): void;
onFocusedInputChange(focus?: FocusedInput): void;
onHighlightedChange(date: DateRange): void;
resetToWhenFromChanges: boolean;
selected: PickerDate;
sundayFirstDayOfWeek: boolean;
viewDate: Date;
}
export interface DatePickerState {
viewDate: Date;
}
export interface ArrowNodeProps {
children: string;
onClick(event: React.MouseEvent): void;
}
export declare type DatePickerNodes = 'NextNode' | 'Month' | 'PickerWrapper' | 'PrevNode' | 'SinglePicker' | 'RangePicker';
export interface DatePickerArgs {
Month: MonthType;
NextNode: ComponentClass;
PickerWrapper: ComponentClass;
PrevNode: ComponentClass;
RangePicker: RangePickerType;
SinglePicker: ComponentClass;
passthrough: PassTroughFunction;
}
export default function datePickerFactory({Month, NextNode, PickerWrapper, PrevNode, RangePicker, SinglePicker, passthrough}: DatePickerArgs): ComponentClass;