import * as React from 'react'; import moment from 'moment'; interface IDate { dayOfWeek: number; month: number; year: number; dayOfMonth: number; isToday: boolean; isSelected: boolean; isThisMonth: boolean; } export interface IValidationTest { name: string; message: string; test: (startDate: moment.Moment, endDate: moment.Moment, now: moment.Moment, text: string, props: DatePickerProps) => boolean; } export interface DatePickerProps { onChange?: (eventStart: any, eventEnd: any, eventDateInput: any) => void; onBlur?: (valid: boolean) => void; onPickerClose?: (valid: boolean) => void; required?: boolean; showInvalid?: boolean; eventDateInput?: string; label?: string; pickerType?: 'Date' | 'DateTime' | 'Time'; displayType?: 'Full' | 'Icon'; hint?: string; timeRestrictionStart?: string; timeRestrictionEnd?: string; restrictionMsg?: string; } export interface DatePickerState { eventDateInput: string; eventStart: Date; eventEnd: Date; restrictionMsg: string; validationMessages: string[]; dynamicValidationTests: IValidationTest[]; valid: boolean; calendar: IDate[][]; datePickerMonth: number; datePickerYear: number; datePickerDay: number; pickingEndTime: boolean; amTimes: string[][]; pmTimes: string[][]; highlightInbetweenTimes: boolean; showPicker: boolean; position: { x: number; y: number; }; displayType: 'Full' | 'Icon'; } export default class DatePicker extends React.Component { private inputRef; private iconRef; private datepickerContainerElement; constructor(props: DatePickerProps); componentDidMount(): void; componentWillReceiveProps(newProps: DatePickerProps): void; onChange(value: string): void; onClose(value: any): void; onBlur(value: any): void; onClickInput: () => void; generateCalendar(datePickerDate: Date, selectedDate?: Date): IDate[][]; nextMonth(): void; previousMonth(): void; chooseDate(chosenDate: IDate): void; onClickTime(hours: number, mins: number): void; setDatePickerContainerRef: (element: any) => void; togglePicker: () => void; closePicker: () => void; renderFull(): React.JSX.Element; renderIcon(): React.JSX.Element; render(): React.JSX.Element; } export {};