import React, { RefObject } from 'react';
import { AgendaViewConfig, AlignSpec, AssignmentModel, AssignmentModelConfig, AssignmentStore, AssignmentStoreConfig, Base, ButtonConfig, Calendar, CalendarDatePickerConfig, CalendarDrag, CalendarDragConfig, CalendarListeners, CalendarToolbarConfig, CalendarView, Column, Container, ContainerConfig, ContainerItemConfig, ContainerLayoutConfig, CrudManagerConfig, DatePickerConfig, DayAgendaViewConfig, DayCell, DayResourceViewConfig, DayViewConfig, DomConfig, DragContext, EventBuffer, EventBufferConfig, EventCopyPaste, EventCopyPasteConfig, EventEdit, EventEditConfig, EventListConfig, EventMenu, EventMenuConfig, EventModel, EventModelConfig, EventStore, EventStoreConfig, EventTooltip, EventTooltipConfig, ExcelExporter, ExcelExporterConfig, ExportConfig, ExternalEventSource, ExternalEventSourceConfig, KeyMapConfig, LoadOnDemand, LoadOnDemandConfig, Mask, MaskConfig, Menu, MenuItem, MenuItemEntry, Model, MonthAgendaViewConfig, MonthGridConfig, MonthViewConfig, PagingToolbarConfig, Panel, PanelCollapserConfig, PanelCollapserOverlayConfig, PanelHeader, Popup, Print, PrintConfig, ProjectConsumer, ProjectModel, ProjectModelConfig, ProjectModelMixin, Rectangle, RecurrenceConfirmationPopup, RecurrenceConfirmationPopupConfig, ResourceFilterConfig, ResourceModel, ResourceModelConfig, ResourceStore, ResourceStoreConfig, ResourceTimeRangeModel, ResourceTimeRangeModelConfig, ResourceTimeRangeStore, ResourceTimeRangeStoreConfig, ResourceViewConfig, ScheduleMenu, ScheduleMenuConfig, ScheduleTooltip, ScheduleTooltipConfig, Scheduler, SchedulerCrudManager, SchedulerEventEdit, Scroller, ScrollerConfig, StateProvider, Store, TabConfig, TextFieldConfig, TimeRangeModel, TimeRangeModelConfig, TimeRangeStore, TimeRangeStoreConfig, TimeRanges, TimeRangesConfig, TimeSpan, Tool, ToolConfig, ToolbarConfig, ToolbarItems, TooltipConfig, ValidateCreateResult, WeekExpander, WeekExpanderConfig, WeekViewConfig, Widget, XLSColumn, YearViewConfig } from '@bryntum/calendar';
import { processWidgetContent } from './WrapperHelper.js';
export declare type BryntumCalendarProps = {
    activeDateCls?: string;
    adopt?: HTMLElement | string;
    align?: AlignSpec | string;
    alignSelf?: string;
    anchor?: boolean;
    appendTo?: HTMLElement | string;
    ariaDescription?: string;
    ariaLabel?: string;
    assignments?: AssignmentModel[] | AssignmentModelConfig[];
    assignmentStore?: AssignmentStore | AssignmentStoreConfig;
    autoCreate?: {
        gesture?: string;
        newName?: Function | string;
        step?: string;
        duration?: string;
        startHour?: number | string;
    } | string | boolean;
    bbar?: (ContainerItemConfig | string)[] | ToolbarConfig | PagingToolbarConfig | null;
    bodyCls?: string | object;
    bubbleEvents?: object;
    callOnFunctions?: boolean;
    catchEventHandlerExceptions?: boolean;
    centered?: boolean;
    cls?: string | object;
    collapsed?: boolean;
    collapsible?: boolean | PanelCollapserConfig | PanelCollapserOverlayConfig;
    color?: string;
    column?: number;
    config?: object;
    constrainTo?: HTMLElement | Widget | Rectangle;
    contentElementCls?: string | object;
    contextMenuTriggerEvent?: 'contextmenu' | 'click' | 'dblclick';
    crudManager?: CrudManagerConfig | SchedulerCrudManager;
    crudManagerClass?: SchedulerCrudManager;
    dataField?: string;
    dataset?: Record<string, string>;
    date?: Date | string;
    dateFormat?: string;
    datePicker?: CalendarDatePickerConfig | boolean | null;
    defaultBindProperty?: string;
    defaultCalendar?: string | ResourceModel;
    defaultFocus?: ((widget: Widget) => boolean) | string;
    defaults?: ContainerItemConfig;
    deselectAllOnScheduleClick?: boolean;
    deselectOnClick?: boolean;
    destroyStores?: boolean;
    detectCSSCompatibilityIssues?: boolean;
    disabled?: boolean | 'inert';
    dock?: 'top' | 'bottom' | 'left' | 'right' | 'start' | 'end' | 'header' | 'pre-header' | object;
    draggable?: boolean | {
        handleSelector?: string;
    };
    drawer?: boolean | {
        side?: 'start' | 'left' | 'end' | 'right' | 'top' | 'bottom';
        size?: string | number;
        inline?: boolean;
        autoClose: {
            mousedown?: boolean | string;
            focusout?: boolean | string;
            mouseout?: string;
        };
        autoCloseDelay?: number;
    };
    elementAttributes?: Record<string, string | null>;
    enableDeleteKey?: boolean;
    enableRecurringEvents?: boolean | {
        defaultAction?: 'single' | 'future';
    };
    enableUndoRedoKeys?: boolean;
    events?: EventModel[] | EventModelConfig[];
    eventSelectionDisabled?: boolean;
    eventStore?: EventStore | EventStoreConfig;
    extraData?: any;
    filterEventResources?: boolean;
    flex?: number | string;
    floating?: boolean;
    footer?: {
        dock?: 'top' | 'right' | 'bottom' | 'left' | 'start' | 'end';
        html?: string;
        cls?: string;
    } | string;
    header?: string | boolean | PanelHeader;
    height?: string | number;
    hidden?: boolean;
    hideAnimation?: boolean | object;
    hideNonWorkingDays?: boolean;
    hideWhenEmpty?: boolean;
    highlightDate?: boolean | ((date: Date) => boolean);
    highlightPredecessors?: boolean;
    highlightSuccessors?: boolean;
    icon?: string | DomConfig;
    id?: string;
    ignoreParentReadOnly?: boolean;
    includeWeekendsButton?: boolean | ButtonConfig;
    inputFieldAlign?: 'start' | 'end';
    insertBefore?: HTMLElement | string;
    insertFirst?: HTMLElement | string;
    isEventSelectable?: (event: EventModel) => boolean;
    itemCls?: string;
    items?: object;
    keyMap?: Record<string, KeyMapConfig>;
    labelPosition?: 'before' | 'above' | 'align-before' | 'auto' | null;
    layout?: string | ContainerLayoutConfig;
    layoutStyle?: object;
    lazyItems?: Record<string, ContainerItemConfig> | ContainerItemConfig[] | Widget[];
    listeners?: CalendarListeners;
    loadMask?: string | MaskConfig | null;
    loadMaskDefaults?: MaskConfig;
    loadMaskError?: MaskConfig | Mask | boolean;
    localeClass?: typeof Base;
    localizable?: boolean;
    localizableProperties?: string[];
    maintainSelectionOnDatasetChange?: boolean;
    margin?: number | string;
    maskDefaults?: MaskConfig;
    masked?: boolean | string | MaskConfig;
    maxDate?: Date | string;
    maxHeight?: string | number;
    maximizeOnMobile?: number | string;
    maxWidth?: string | number;
    minDate?: Date | string;
    minHeight?: string | number;
    minWidth?: string | number;
    mode?: 'agenda' | 'year' | 'month' | 'week' | 'day' | 'list' | 'resource' | 'dayresource' | 'dayagenda' | 'monthagenda' | 'monthgrid' | string;
    modeDefaults?: object;
    modes?: {
        [mode: string]: ContainerItemConfig | boolean | null | undefined;
        agenda?: AgendaViewConfig | boolean | null;
        year?: YearViewConfig | boolean | null;
        month?: MonthViewConfig | boolean | null;
        week?: WeekViewConfig | boolean | null;
        day?: DayViewConfig | boolean | null;
        list?: EventListConfig | boolean | null;
        resource?: ResourceViewConfig | boolean | null;
        dayresourceview?: DayResourceViewConfig | boolean | null;
        dayagenda?: DayAgendaViewConfig | boolean | null;
        monthagenda?: MonthAgendaViewConfig | boolean | null;
        monthgrid?: MonthGridConfig | boolean | null;
    };
    monitorResize?: boolean | {
        immediate?: boolean;
    };
    multiEventSelect?: boolean | {
        ctrlKey?: boolean;
        altKey?: boolean;
        shiftKey?: boolean;
    };
    namedItems?: Record<string, ContainerItemConfig>;
    navigatorPlacement?: 'toolbar' | 'sidebar';
    nonWorkingDays?: Record<number, boolean>;
    overlaySidebar?: boolean;
    owner?: Widget | any;
    positioned?: boolean;
    preventTooltipOnTouch?: boolean;
    project?: ProjectModel | ProjectModelConfig | RefObject<any>;
    propagatedConfigs?: string[];
    readOnly?: boolean;
    recurrenceConfirmationPopup?: RecurrenceConfirmationPopupConfig | RecurrenceConfirmationPopup;
    relayStoreEvents?: boolean;
    rendition?: string | Record<string, string> | null;
    resourceImagePath?: string;
    resources?: ResourceModel[] | ResourceModelConfig[];
    resourceStore?: ResourceStore | ResourceStoreConfig;
    resourceTimeRanges?: ResourceTimeRangeModel[] | ResourceTimeRangeModelConfig[];
    resourceTimeRangeStore?: ResourceTimeRangeStore | ResourceTimeRangeStoreConfig;
    responsive?: object;
    responsiveRoot?: boolean;
    responsiveState?: string;
    responsiveTarget?: string | Widget;
    ripple?: boolean | {
        delegate?: string;
        color?: string;
        radius?: number;
        clip?: string;
    };
    rootElement?: ShadowRoot | HTMLElement;
    rtl?: boolean;
    scrollable?: boolean | ScrollerConfig | Scroller;
    scrollAction?: 'hide' | 'realign' | null;
    selectResourceOnEventNavigate?: boolean;
    selectResourceOnScheduleClick?: boolean;
    showAnimation?: boolean | object;
    showRecurringUI?: boolean;
    showTooltipWhenDisabled?: boolean;
    sidebar?: {
        side?: 'left' | 'right';
        collapsed?: boolean;
        items: {
            [mode: string]: ContainerItemConfig | null | undefined;
            datePicker?: DatePickerConfig;
            eventFilter?: TextFieldConfig;
            resourceFilter?: ResourceFilterConfig;
        };
    } | boolean;
    span?: number;
    stateful?: boolean | object | string[];
    statefulEvents?: object | string[];
    stateId?: string;
    stateProvider?: StateProvider;
    strictRecordMapping?: boolean;
    strips?: Record<string, ContainerItemConfig>;
    syncMask?: string | MaskConfig | null;
    tab?: boolean | TabConfig;
    tabBarItems?: ToolbarItems[] | Widget[];
    tag?: string;
    tbar?: (ContainerItemConfig | string)[] | ToolbarConfig | CalendarToolbarConfig | null;
    textAlign?: 'left' | 'center' | 'right' | 'start' | 'end';
    timeRanges?: TimeRangeModel[] | TimeRangeModelConfig[];
    timeRangeStore?: TimeRangeStore | TimeRangeStoreConfig;
    timeZone?: string | number;
    title?: string;
    tools?: Record<string, ToolConfig> | null;
    tooltip?: string | TooltipConfig | null;
    trapFocus?: boolean;
    triggerSelectionChangeOnRemove?: boolean;
    type?: 'calendar';
    ui?: 'plain' | 'toolbar' | string | object;
    useContextualRecurrenceRules?: boolean;
    viewContainer?: ContainerConfig;
    weekStartDay?: number;
    weight?: number;
    width?: string | number;
    x?: number;
    y?: number;
    onActiveItemChange?: ((event: {
        source: Calendar;
        prevActiveItem: CalendarView;
        activeItem: CalendarView;
        containedFocus: boolean;
    }) => void) | string;
    onAfterEventEdit?: ((event: {
        source: Scheduler;
        action: 'save' | 'delete' | 'cancel';
        eventEdit: SchedulerEventEdit;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        eventElement: HTMLElement;
        editor: Popup;
    }) => void) | string;
    onAfterEventSave?: ((event: {
        source: Scheduler;
        eventRecord: EventModel;
    }) => void) | string;
    onBeforeActiveItemChange?: ((event: {
        source: Calendar;
        prevActiveItem: CalendarView;
        activeItem: CalendarView;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeAssignmentDelete?: ((event: {
        source: Scheduler;
        assignmentRecords: AssignmentModel[];
        context: {
            finalize: {
                removeRecords?: boolean;
            };
        };
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeAssignmentSelectionChange?: ((event: {
        source: Scheduler;
        action: 'select' | 'deselect' | 'update' | 'clear';
        selected: AssignmentModel[];
        deselected: AssignmentModel[];
        selection: AssignmentModel[];
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeAutoCreate?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        startDate: Date;
        endDate: Date;
        resourceRecord: ResourceModel;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeCopy?: ((event: {
        source: Scheduler;
        eventRecords: EventModel[];
        assignmentRecords: AssignmentModel[];
        isCut: boolean;
        entityName: string;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeCreateMode?: ((event: {
        source: Calendar;
        config: AgendaViewConfig | DayResourceViewConfig | DayViewConfig | EventListConfig | MonthViewConfig | ResourceViewConfig | WeekViewConfig | YearViewConfig | DayAgendaViewConfig | MonthAgendaViewConfig | ContainerItemConfig;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeCSVExport?: ((event: {
        config: ExportConfig;
        columns: Column[];
        rows: Model[];
        lineDelimiter: string;
        columnDelimiter: string;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeDestroy?: ((event: {
        source: Base;
    }) => void) | string;
    onBeforeDragCreate?: ((event: {
        source: Calendar;
        drag: DragContext;
        domEvent: Event;
        date: Date;
        resourceRecord?: ResourceModel;
        feature: CalendarDrag;
        view: CalendarView;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeDragCreateEnd?: ((event: {
        source: Calendar;
        drag: DragContext;
        event: Event;
        eventRecord: EventModel;
        newStartDate: Date;
        newEndDate: Date;
        resourceRecord?: ResourceModel;
        feature: CalendarDrag;
        validation: boolean | ValidateCreateResult;
        view: CalendarView;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeDragMove?: ((event: {
        source: Calendar;
        drag: DragContext;
        domEvent: Event;
        eventRecord: EventModel;
        date: Date;
        resourceRecord?: ResourceModel;
        feature: CalendarDrag;
        view: CalendarView;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeDragMoveEnd?: ((event: {
        source: Calendar;
        drag: DragContext;
        event: Event;
        eventRecord: EventModel;
        proxyEventRecord: EventModel;
        newStartDate: Date;
        newEndDate: Date;
        resourceRecord?: ResourceModel;
        feature: CalendarDrag;
        validation: boolean | ValidateCreateResult;
        view: CalendarView;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeDragResize?: ((event: {
        source: Calendar;
        drag: DragContext;
        domEvent: Event;
        eventRecord: EventModel;
        date: Date;
        resourceRecord?: ResourceModel;
        feature: CalendarDrag;
        view: CalendarView;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeDragResizeEnd?: ((event: {
        source: Calendar;
        drag: DragContext;
        event: Event;
        eventRecord: EventModel;
        proxyEventRecord: EventModel;
        newStartDate: Date;
        newEndDate: Date;
        feature: CalendarDrag;
        validation: boolean | ValidateCreateResult;
        view: CalendarView;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeDropExternal?: ((event: {
        eventRecord: EventModel;
        dropOnCalendar: boolean;
        itemElement: HTMLElement;
        targetElement: HTMLElement;
        domEvent: Event;
        overIndex: number;
        overRecord: Model;
        isAbove: boolean;
        altKey: boolean;
        ctrlKey: boolean;
        metaKey: boolean;
        shiftKey: boolean;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeEventDelete?: ((event: {
        source: Calendar;
        eventRecords: EventModel[];
        context: {
            finalize: {
                removeRecords?: boolean;
            };
        };
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeEventEdit?: ((event: {
        source: Scheduler;
        eventEdit: SchedulerEventEdit;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        eventElement: HTMLElement;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeEventEditShow?: ((event: {
        source: Scheduler;
        eventEdit: SchedulerEventEdit;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        eventElement: HTMLElement;
        editor: Popup;
    }) => void) | string;
    onBeforeEventSave?: ((event: {
        source: Scheduler;
        eventRecord: EventModel;
        resourceRecords: ResourceModel[];
        values: object;
        context: {
            async?: boolean;
            finalize: Function;
        };
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeEventSelectionChange?: ((event: {
        source: Scheduler;
        action: 'select' | 'deselect' | 'update' | 'clear';
        selected: EventModel[];
        deselected: EventModel[];
        selection: EventModel[];
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeExcelExport?: ((event: {
        config: ExportConfig;
        columns: XLSColumn[];
        rows: any[];
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeHide?: ((event: {
        source: Widget;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforePaste?: ((event: {
        source: Scheduler;
        eventRecords: EventModel[];
        assignmentRecords: AssignmentModel[];
        originalEventRecords: EventModel[];
        originalAssignmentRecords: AssignmentModel[];
        date: Date;
        resourceRecord: ResourceModel;
        isCut: boolean;
        entityName: string;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforePrint?: ((event: {
        config: object;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeResponsiveStateChange?: ((event: {
        source: Widget;
        state: string;
        oldState: string;
    }) => void) | string;
    onBeforeSetRecord?: ((event: {
        source: Container;
        record: Model;
    }) => void) | string;
    onBeforeShow?: ((event: {
        source: Widget | any;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeStateApply?: ((event: {
        state: any;
    }) => Promise<boolean> | boolean | void) | string;
    onBeforeStateSave?: ((event: {
        state: any;
    }) => Promise<boolean> | boolean | void) | string;
    onCatchAll?: ((event: {
        [key: string]: any;
        type: string;
    }) => void) | string;
    onCellOverflowClick?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
    }) => void) | string;
    onCollapse?: ((event: {
        source: Panel;
    }) => void) | string;
    onContextMenuItem?: ((event: {
        source: Widget;
        menu: Menu;
        item: MenuItem;
    }) => void) | string;
    onContextMenuToggleItem?: ((event: {
        source: Widget;
        menu: Menu;
        item: MenuItem;
        checked: boolean;
    }) => void) | string;
    onCopy?: ((event: {
        source: Scheduler;
        eventRecords: EventModel[];
        assignmentRecords: AssignmentModel[];
        originalEventRecords: EventModel[];
        originalAssignmentRecord: AssignmentModel[];
        isCut: boolean;
        entityName: string;
    }) => void) | string;
    onCurrentTimelineUpdate?: ((event: {
        source: Scheduler;
        date: Date;
    }) => void) | string;
    onDataChange?: ((event: {
        source: typeof ProjectConsumer | any;
        project: typeof ProjectModelMixin | any;
        store: Store;
        action: 'remove' | 'removeAll' | 'add' | 'clearchanges' | 'filter' | 'update' | 'dataset' | 'replace';
        record: Model;
        records: Model[];
        changes: object;
    }) => void) | string;
    onDateChange?: ((event: {
        source: Calendar;
        oldDate: Date;
        date: Date;
    }) => void) | string;
    onDateRangeChange?: ((event: {
        source: Calendar;
        old: {
            startDate: Date;
            endDate: Date;
        };
        new: {
            startDate: Date;
            endDate: Date;
        };
    }) => void) | string;
    onDateRangeLoad?: ((event: {
        response: object;
        options: object;
        startDate: Date;
        endDate: Date;
    }) => void) | string;
    onDateRangeRequested?: ((event: {
        source: Calendar;
        old: {
            startDate: Date;
            endDate: Date;
        };
        new: {
            startDate: Date;
            endDate: Date;
        };
        changed: boolean;
    }) => void) | string;
    onDayCellPopulated?: ((event: {
        source: CalendarView;
        events: EventModel[];
        The: Date;
    }) => void) | string;
    onDayNumberClick?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        cellData: DayCell;
        fromOverflowPopup: boolean;
    }) => Promise<boolean> | boolean | void) | string;
    onDestroy?: ((event: {
        source: Base;
    }) => void) | string;
    onDirtyStateChange?: ((event: {
        source: Container;
        dirty: boolean;
    }) => void) | string;
    onDragCreateEnd?: ((event: {
        source: Calendar;
        drag: DragContext;
        event: Event;
        eventRecord: EventModel;
        resourceRecord?: ResourceModel;
        feature: CalendarDrag;
        validation: boolean | ValidateCreateResult;
        view: CalendarView;
    }) => void) | string;
    onDragMoveEnd?: ((event: {
        source: Calendar;
        drag: DragContext;
        event: Event;
        eventRecord: EventModel;
        resourceRecord?: ResourceModel;
        feature: CalendarDrag;
        validation: boolean | ValidateCreateResult;
        view: CalendarView;
    }) => void) | string;
    onDragMoveExternal?: ((event: {
        eventRecord: EventModel;
        itemElement: HTMLElement;
        targetElement: HTMLElement;
        domEvent: Event;
        overIndex: number;
        overRecord: Model;
        isAbove: boolean;
        altKey: boolean;
        ctrlKey: boolean;
        metaKey: boolean;
        shiftKey: boolean;
    }) => void) | string;
    onDragResizeEnd?: ((event: {
        source: Calendar;
        drag: DragContext;
        event: Event;
        eventRecord: EventModel;
        feature: CalendarDrag;
        validation: boolean | ValidateCreateResult;
        view: CalendarView;
    }) => void) | string;
    onDropExternal?: ((event: {
        eventRecord: EventModel;
        dropOnCalendar: boolean;
        itemElement: HTMLElement;
        targetElement: HTMLElement;
        domEvent: Event;
        overIndex: number;
        overRecord: Model;
        isAbove: boolean;
        altKey: boolean;
        ctrlKey: boolean;
        metaKey: boolean;
        shiftKey: boolean;
    }) => void) | string;
    onElementCreated?: ((event: {
        element: HTMLElement;
    }) => void) | string;
    onEmptyCellClick?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
    }) => void) | string;
    onEventAutoCreated?: ((event: {
        source: CalendarView;
        eventRecord: EventModel;
    }) => void) | string;
    onEventClick?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        eventElement: HTMLElement;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        fromOverflowPopup: boolean;
    }) => void) | string;
    onEventContextMenu?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        eventElement: HTMLElement;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        fromOverflowPopup: boolean;
    }) => void) | string;
    onEventDblClick?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        eventElement: HTMLElement;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        fromOverflowPopup: boolean;
    }) => void) | string;
    onEventEditBeforeSetRecord?: ((event: {
        source: Container;
        record: EventModel;
    }) => void) | string;
    onEventKeyDown?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        eventElement: HTMLElement;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        fromOverflowPopup: boolean;
    }) => void) | string;
    onEventMenuBeforeShow?: ((event: {
        source: Scheduler;
        items: Record<string, MenuItemEntry>;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        assignmentRecord: AssignmentModel;
        eventElement: HTMLElement;
        event?: MouseEvent;
    }) => Promise<boolean> | boolean | void) | string;
    onEventMenuItem?: ((event: {
        source: Scheduler;
        item: MenuItem;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        assignmentRecord: AssignmentModel;
        eventElement: HTMLElement;
    }) => void) | string;
    onEventMenuShow?: ((event: {
        source: Scheduler;
        menu: Menu;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        assignmentRecord: AssignmentModel;
        eventElement: HTMLElement;
    }) => void) | string;
    onEventMouseDown?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        eventElement: HTMLElement;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        fromOverflowPopup: boolean;
    }) => void) | string;
    onEventMouseEnter?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        eventElement: HTMLElement;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        fromOverflowPopup: boolean;
    }) => void) | string;
    onEventMouseLeave?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        eventElement: HTMLElement;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        fromOverflowPopup: boolean;
    }) => void) | string;
    onEventMouseOut?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        eventElement: HTMLElement;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        fromOverflowPopup: boolean;
    }) => void) | string;
    onEventMouseOver?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        eventElement: HTMLElement;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        fromOverflowPopup: boolean;
    }) => void) | string;
    onEventMouseUp?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        eventElement: HTMLElement;
        eventRecord: EventModel;
        resourceRecord: ResourceModel;
        fromOverflowPopup: boolean;
    }) => void) | string;
    onEventPropagate?: ((event: {
        source: CalendarView;
        eventEndDate: Date;
        propagateEndDate: Date;
        isAllDay: boolean;
        isOverflow: boolean;
        overflows: boolean;
        eventRecord: EventModel;
        date: Date;
    }) => void) | string;
    onExpand?: ((event: {
        source: Panel;
    }) => void) | string;
    onFocusIn?: ((event: {
        source: Widget;
        fromElement: HTMLElement;
        toElement: HTMLElement;
        fromWidget: Widget;
        toWidget: Widget;
        backwards: boolean;
    }) => void) | string;
    onFocusOut?: ((event: {
        source: Widget;
        fromElement: HTMLElement;
        toElement: HTMLElement;
        fromWidget: Widget;
        toWidget: Widget;
        backwards: boolean;
    }) => void) | string;
    onHide?: ((event: {
        source: Widget;
    }) => void) | string;
    onLoadOnDemandFail?: ((event: {
        rawResponse: any;
        request: object;
        response: object;
    }) => void) | string;
    onMonthNameClick?: ((event: {
        source: CalendarView;
        domEvent: Event;
        month: number;
        date: Date;
    }) => Promise<boolean> | boolean | void) | string;
    onNavigate?: ((event: {
        event: Event;
        item: HTMLElement | null;
        oldItem: HTMLElement | null;
    }) => void) | string;
    onPaint?: ((event: {
        source: Widget;
        firstPaint: boolean;
    }) => void) | string;
    onPaste?: ((event: {
        source: Scheduler;
        eventRecords: EventModel[];
        assignmentRecords: AssignmentModel[];
        pastedEventRecords: EventModel[];
        originalEventRecords: EventModel[];
        originalAssignmentRecords: AssignmentModel[];
        date: Date;
        resourceRecord: ResourceModel;
        isCut: boolean;
        entityName: string;
    }) => void) | string;
    onPasteNotAllowed?: ((event: {
        source: Scheduler;
        eventRecords: EventModel[];
        assignmentRecords: AssignmentModel[];
        originalEventRecords: EventModel[];
        originalAssignmentRecords: AssignmentModel[];
        date: Date;
        resourceRecord: ResourceModel;
        isCut: boolean;
        entityName: string;
        reason: 'overlappingEvents' | 'resourceReadOnly';
    }) => void) | string;
    onReadOnly?: ((event: {
        readOnly: boolean;
    }) => void) | string;
    onRecompose?: (() => void) | string;
    onRefresh?: ((event: {
        source: CalendarView;
    }) => void) | string;
    onResize?: ((event: {
        source: Widget;
        width: number;
        height: number;
        oldWidth: number;
        oldHeight: number;
    }) => void) | string;
    onResourceClick?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        eventElement: HTMLElement;
        eventRecord: EventModel;
        resourceElement: HTMLElement;
        resourceRecord: ResourceModel;
        fromOverflowPopup: boolean;
    }) => void) | string;
    onResponsiveStateChange?: ((event: {
        source: Widget;
        state: string;
        oldState: string;
    }) => void) | string;
    onScheduleClick?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        resourceRecord: ResourceModel;
    }) => void) | string;
    onScheduleContextMenu?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        resourceRecord: ResourceModel;
    }) => void) | string;
    onScheduleDblClick?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        resourceRecord: ResourceModel;
    }) => void) | string;
    onScheduleMenuBeforeShow?: ((event: {
        source: Scheduler;
        items: Record<string, MenuItemEntry>;
        resourceRecord: ResourceModel;
        date: Date;
        assignmentRecord: AssignmentModel;
        eventElement: HTMLElement;
    }) => Promise<boolean> | boolean | void) | string;
    onScheduleMenuItem?: ((event: {
        source: Scheduler;
        item: MenuItem;
        resourceRecord: ResourceModel;
        date: Date;
        element: HTMLElement;
    }) => void) | string;
    onScheduleMenuShow?: ((event: {
        source: Scheduler;
        items: Record<string, MenuItemEntry>;
        menu: Menu;
        resourceRecord: ResourceModel;
        date: Date;
        targetElement: HTMLElement;
    }) => void) | string;
    onScheduleMouseDown?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        resourceRecord: ResourceModel;
    }) => void) | string;
    onScheduleMouseOut?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        resourceRecord: ResourceModel;
    }) => void) | string;
    onScheduleMouseOver?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        resourceRecord: ResourceModel;
    }) => void) | string;
    onScheduleMouseUp?: ((event: {
        source: CalendarView;
        domEvent: Event;
        date: Date;
        resourceRecord: ResourceModel;
    }) => void) | string;
    onSelectionChange?: ((event: {
        source: Calendar;
        action: 'select' | 'deselect' | 'update' | 'clear';
        selected: EventModel[];
        deselected: EventModel[];
        selection: EventModel[];
    }) => void) | string;
    onShow?: ((event: {
        source: Widget;
    }) => void) | string;
    onSidebarCollapse?: ((event: {
        source: Calendar;
    }) => void) | string;
    onSidebarExpand?: ((event: {
        source: Calendar;
    }) => void) | string;
    onTimeAxisClick?: ((event: {
        source: CalendarView;
        domEvent: Event;
        preciseTime: Date;
        time: Date;
    }) => void) | string;
    onTimeRangeHeaderClick?: ((event: {
        source: Scheduler;
        timeRangeRecord: TimeSpan;
        domEvent: MouseEvent;
    }) => void) | string;
    onTimeRangeHeaderContextMenu?: ((event: {
        source: Scheduler;
        timeRangeRecord: TimeSpan;
        domEvent: MouseEvent;
    }) => void) | string;
    onTimeRangeHeaderDblClick?: ((event: {
        source: Scheduler;
        timeRangeRecord: TimeSpan;
        domEvent: MouseEvent;
    }) => void) | string;
    onToolClick?: ((event: {
        source: Tool;
        tool: Tool;
    }) => void) | string;
    onViewPaint?: ((event: {
        source: CalendarView;
        firstPaint: boolean;
    }) => void) | string;
    onWeekNumberClick?: ((event: {
        source: CalendarView;
        domEvent: Event;
        week: number[];
        date: Date;
    }) => Promise<boolean> | boolean | void) | string;
    dragFeature?: object | boolean | string | CalendarDrag | CalendarDragConfig;
    eventBufferFeature?: object | boolean | string | EventBuffer | EventBufferConfig;
    eventCopyPasteFeature?: object | boolean | string | EventCopyPaste | EventCopyPasteConfig;
    eventEditFeature?: object | boolean | string | EventEdit | EventEditConfig;
    eventMenuFeature?: object | boolean | string | EventMenu | EventMenuConfig;
    eventTooltipFeature?: object | boolean | string | EventTooltip | EventTooltipConfig;
    excelExporterFeature?: object | boolean | string | ExcelExporter | ExcelExporterConfig;
    externalEventSourceFeature?: object | boolean | string | ExternalEventSource | ExternalEventSourceConfig;
    loadOnDemandFeature?: object | boolean | string | LoadOnDemand | LoadOnDemandConfig;
    printFeature?: object | boolean | string | Print | PrintConfig;
    scheduleMenuFeature?: object | boolean | string | ScheduleMenu | ScheduleMenuConfig;
    scheduleTooltipFeature?: object | boolean | string | ScheduleTooltip | ScheduleTooltipConfig;
    timeRangesFeature?: object | boolean | string | TimeRanges | TimeRangesConfig;
    weekExpanderFeature?: object | boolean | string | WeekExpander | WeekExpanderConfig;
};
export declare class BryntumCalendar extends React.Component<BryntumCalendarProps> {
    static instanceClass: typeof Calendar;
    static instanceName: string;
    processWidgetContent: typeof processWidgetContent;
    static isView: boolean;
    portalsCache?: HTMLElement;
    portalContainerClass: string;
    state: {
        portals: Map<any, any>;
        generation: number;
    };
    static featureNames: string[];
    projectStores: boolean;
    dataStores: {
        assignmentStore: string;
        dependencyStore: string;
        eventStore: string;
        resourceStore: string;
        resourceTimeRangeStore: string;
        timeRangeStore: string;
    };
    static configNames: string[];
    static propertyConfigNames: string[];
    static propertyNames: string[];
    instance: Calendar;
    element: HTMLElement;
    componentDidMount(): void;
    componentWillUnmount(): void;
    shouldComponentUpdate(nextProps: Readonly<BryntumCalendarProps>, nextState: Readonly<{}>): boolean;
    render(): React.ReactNode;
}
