import React from 'react'; import { MarginProps } from 'styled-system'; import { CactusEventTarget } from '../helpers/events'; import { CalendarGridLabels, CalendarValue, FocusProps } from './Grid'; import { SliderProps } from './Slider'; interface CalendarNavLabels { calendarKeyboardDirections?: React.ReactChild; prevMonth?: React.ReactChild; nextMonth?: React.ReactChild; showMonth?: React.ReactChild; showYear?: React.ReactChild; months?: string[]; } export interface CalendarLabels extends CalendarGridLabels, CalendarNavLabels { } declare type BaseProps = Omit, 'defaultChecked' | 'defaultValue' | 'onChange'>; export interface MonthChange { month: number; year: number; isFocusOverflow: boolean; } interface InnerCalendarProps extends BaseProps, FocusProps { value?: CalendarValue; defaultValue?: CalendarValue; form?: string; name?: string; multiple?: boolean; disabled?: boolean; readOnly?: boolean; onChange?: React.ChangeEventHandler>; onMonthChange?: (change: MonthChange, originalEvent: React.SyntheticEvent) => void; isValidDate?: (date: Date) => boolean; labels?: Partial; locale?: string; } export declare type CalendarProps = InnerCalendarProps & MarginProps; interface CalendarState extends SliderProps { value: CalendarValue; month: number; year: number; } declare class CalendarBase extends React.Component { static Grid: import("styled-components").StyledComponent<({ initialFocus, month: monthProp, year: yearProp, locale, labels, isValidDate, selected, onFocusOverflow, onClick, onKeyDown, onFocus, onBlur, ...rest }: import("./Grid").BaseProps) => JSX.Element, import("styled-components").DefaultTheme, MarginProps>> & { as: ({ initialFocus, month: monthProp, year: yearProp, locale, labels, isValidDate, selected, onFocusOverflow, onClick, onKeyDown, onFocus, onBlur, ...rest }: import("./Grid").BaseProps) => JSX.Element; }, "as">; state: CalendarState; private eventTarget; private _lastFocus; private setLastFocus; private rootRef; get rootElement(): HTMLDivElement; static getDerivedStateFromProps(props: Readonly, state: CalendarState): Partial | null; private onReset; componentDidMount(): void; componentWillUnmount(): void; private setMonthYear; private setSelectedDate; private handleArrowClick; private selectMonth; private selectYear; render(): JSX.Element; private getMonthOptions; renderMonthDD(locale?: string, labels?: string[]): JSX.Element; private getYearOptions; renderYearDD(): JSX.Element; private _labelIDs; private getLabelId; renderLabels(labels: CalendarNavLabels): JSX.Element; } export declare const Calendar: import("styled-components").StyledComponent>> & { as: typeof CalendarBase; }, "as">; export default Calendar;