import * as React from 'react';
import DateHelpers from './utils/date-helpers';
import type { HeaderProps } from './types';
import type { Locale } from '../locale';
import type { Theme } from '../styles/types';
import type { SyntheticEvent } from 'react';
declare const DIRECTION: {
    readonly NEXT: "next";
    readonly PREVIOUS: "previous";
};
export default class CalendarHeader<T = Date> extends React.Component<HeaderProps<T>, {
    isMonthDropdownOpen: boolean;
    isYearDropdownOpen: boolean;
    isFocusVisible: boolean;
}> {
    static defaultProps: {
        adapter: import("./utils/types").DateIOAdapter<Date>;
        locale: any;
        maxDate: any;
        minDate: any;
        onYearChange: () => void;
        overrides: {};
    };
    dateHelpers: DateHelpers<T>;
    monthItems: Array<{
        id: string;
        label: string;
        disabled?: boolean;
    }>;
    yearItems: Array<{
        id: string;
        label: string;
        disabled?: boolean;
    }>;
    constructor(props: HeaderProps<T>);
    state: {
        isMonthDropdownOpen: boolean;
        isYearDropdownOpen: boolean;
        isFocusVisible: boolean;
    };
    componentDidMount(): void;
    componentDidUpdate(prevProps: HeaderProps<T>): void;
    getDateProp: () => T;
    getYearItems: () => void;
    getMonthItems: () => void;
    increaseMonth: () => void;
    decreaseMonth: () => void;
    isMultiMonthHorizontal: () => boolean;
    isHiddenPaginationButton: (direction: (typeof DIRECTION)[keyof typeof DIRECTION]) => boolean;
    handleFocus: (event: SyntheticEvent) => void;
    handleBlur: (event: SyntheticEvent) => void;
    renderPreviousMonthButton: ({ locale, theme }: {
        locale: Locale;
        theme: Theme;
    }) => React.JSX.Element;
    renderNextMonthButton: ({ locale, theme }: {
        locale: Locale;
        theme: Theme;
    }) => React.JSX.Element;
    canArrowsOpenDropdown: (event: KeyboardEvent) => boolean;
    renderMonthYearDropdown: () => React.JSX.Element;
    render(): React.JSX.Element;
}
export {};
