/// <reference types="react" />
/**
 * All credit goes to [React Spectrum](https://github.com/adobe/react-spectrum)
 * We improved the Calendar from Aria [useCalendarBase](https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/calendar/src/useCalendarBase.ts)
 * to work with Reakit System
 */
import { RoleHTMLProps, RoleOptions } from "reakit";
import { CalendarStateReturn } from "./CalendarState";
export declare const useCalendar: {
    (options?: CalendarOptions | undefined, htmlProps?: RoleHTMLProps | undefined, unstable_ignoreUseOptions?: boolean | undefined): RoleHTMLProps;
    unstable_propsAreEqual: (prev: RoleOptions & Pick<CalendarStateReturn, "calendarId"> & import("react").HTMLAttributes<any> & import("react").RefAttributes<any> & {
        wrapElement?: ((element: import("react").ReactNode) => import("react").ReactNode) | undefined;
    }, next: RoleOptions & Pick<CalendarStateReturn, "calendarId"> & import("react").HTMLAttributes<any> & import("react").RefAttributes<any> & {
        wrapElement?: ((element: import("react").ReactNode) => import("react").ReactNode) | undefined;
    }) => boolean;
    __keys: readonly any[];
    __useOptions: (options: CalendarOptions, htmlProps: RoleHTMLProps) => CalendarOptions;
};
export declare const Calendar: import("../system").Component<"div", RoleOptions & Pick<CalendarStateReturn, "calendarId"> & import("react").HTMLAttributes<any> & import("react").RefAttributes<any> & {
    wrapElement?: ((element: import("react").ReactNode) => import("react").ReactNode) | undefined;
}>;
export declare type CalendarOptions = RoleOptions & Pick<CalendarStateReturn, "calendarId">;
export declare type CalendarHTMLProps = RoleHTMLProps;
export declare type CalendarProps = CalendarOptions & CalendarHTMLProps;
