import { default as React } from 'react';
import { CalendarEvent, CalendarVariant, CalendarView, FullCalendarProps, PrintSettings } from './types';
export interface PopoverState {
    isOpen: boolean;
    mode: "create" | "edit";
    anchorRect?: DOMRect;
}
interface FullCalendarContextType extends FullCalendarProps {
    currentDate: Date;
    view: CalendarView;
    variant: CalendarVariant;
    navigateNext: () => void;
    navigatePrev: () => void;
    navigateToday: () => void;
    setView: (view: CalendarView) => void;
    setCurrentDate: (date: Date) => void;
    popover: PopoverState;
    draftEvent: CalendarEvent | null;
    setDraftEvent: React.Dispatch<React.SetStateAction<CalendarEvent | null>>;
    openPopover: (mode: "create" | "edit", anchorRect?: DOMRect, initialDate?: Date, event?: CalendarEvent) => void;
    closePopover: () => void;
    isPrintPreviewOpen: boolean;
    setPrintPreviewOpen: (v: boolean) => void;
    printSettings: PrintSettings;
    setPrintSettings: React.Dispatch<React.SetStateAction<PrintSettings>>;
}
export declare const useFullCalendar: () => FullCalendarContextType;
export declare const PrintModeContext: React.Context<boolean>;
export declare const PrintOverrideProvider: ({ children, overrideDate, overrideView, }: {
    children: React.ReactNode;
    overrideDate: Date;
    overrideView: CalendarView;
}) => import("react/jsx-runtime").JSX.Element;
export declare const FullCalendarProvider: ({ children, initialDate, initialView, variant, events, onEventCreate, onEventUpdate, onEventDelete, onViewChange, onDateRangeChange, hidePopoverTitle, hidePopoverTime, hidePopoverRecurrence, renderPopoverHeader, renderPopoverFooter, renderPopoverCustomFields, renderEventContent, className, disableCreateOnGridClick, disableEventClick, disableDragAndDrop, ...props }: FullCalendarProps & {
    children: React.ReactNode;
}) => import("react/jsx-runtime").JSX.Element;
export {};
