Completed
Push — master ( f1fd47...f63bfb )
by Dimas
204:01 queued 185:39
created

Calendar   F

Complexity

Total Complexity 67

Size/Duplication

Total Lines 114
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 112
dl 0
loc 114
rs 3.04
c 0
b 0
f 0
wmc 67

67 Functions

Rating   Name   Duplication   Size   Complexity  
A formatDate 0 1 1
A addEvent 0 1 1
A triggerDateUnselect 0 1 1
A getEventById 0 1 1
A releaseAfterSizingTriggers 0 1 1
A _buildSelectionConfig 0 1 1
A getAvailableLocaleCodes 0 1 1
A triggerDateClick 0 1 1
A rerenderEvents 0 1 1
A destroy 0 1 1
A buildDatePointApi 0 1 1
A viewOpt 0 1 1
A setOption 0 1 1
A mutateOptions 0 1 1
A batchRendering 0 1 1
A zoomTo 0 1 1
A renderComponent 0 1 1
A hydrate 0 1 1
A removeAllEventSources 0 1 1
A today 0 1 1
A publiclyTriggerAfterSizing 0 1 1
A registerInteractiveComponent 0 1 1
A getDefaultEventEnd 0 1 1
A publiclyTrigger 0 1 1
A unregisterInteractiveComponent 0 1 1
A updateSize 0 1 1
A reduce 0 1 1
A incrementDate 0 1 1
A prevYear 0 1 1
A getEvents 0 1 1
A getEventSources 0 1 1
A viewOpts 0 1 1
A windowResize 0 1 1
A unselect 0 1 1
A scrollToTime 0 1 1
A select 0 1 1
A hasPublicHandlers 0 1 1
A bindHandlers 0 1 1
A executeRender 0 1 1
A triggerDateSelect 0 1 1
A getOption 0 1 1
A handleOptions 0 1 1
A opt 0 1 1
A addEventSource 0 1 1
A addPluginInputs 0 1 1
A getEventSourceById 0 1 1
A refetchEvents 0 1 1
A prev 0 1 1
A next 0 1 1
A buildInitialState 0 1 1
A buildDateSpanApi 0 1 1
A gotoDate 0 1 1
A formatIso 0 1 1
A isValidViewType 0 1 1
A tryRerender 0 1 1
A render 0 1 1
A changeView 0 1 1
A _buildEventUiSingleBase 0 1 1
A removeAllEvents 0 1 1
A getDate 0 1 1
A formatRange 0 1 1
A getNow 0 1 1
A unbindHandlers 0 1 1
A requestRerender 0 1 1
A nextYear 0 1 1
A getUnitViewSpec 0 1 1
A getInitialDate 0 1 1

How to fix   Complexity   

Complexity

Complex classes like Calendar often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

1
// Generated by dts-bundle v0.7.3-fork.1
2
// Dependencies for this module:
3
//   ../../../../../@fullcalendar/core
4
5
declare module '@fullcalendar/core' {
6
    export const version = "<%= version %>";
7
    export { OptionsInput } from '@fullcalendar/core/types/input-types';
8
    export { EventInput, EventDef, EventDefHash, EventInstance, EventInstanceHash, parseEventDef, createEventInstance, EventTuple } from '@fullcalendar/core/structs/event';
9
    export { BusinessHoursInput, parseBusinessHours } from '@fullcalendar/core/structs/business-hours';
10
    export { applyAll, debounce, padStart, isInt, capitaliseFirstLetter, parseFieldSpecs, compareByFieldSpecs, compareByFieldSpec, flexibleCompare, computeVisibleDayRange, refineProps, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, isMultiDayRange, distributeHeight, undistributeHeight, preventSelection, allowSelection, preventContextMenu, allowContextMenu, compareNumbers, enableCursor, disableCursor, diffDates } from '@fullcalendar/core/util/misc';
11
    export { htmlEscape, cssToStr } from '@fullcalendar/core/util/html';
12
    export { removeExact, isArraysEqual } from '@fullcalendar/core/util/array';
13
    export { memoize, memoizeOutput } from '@fullcalendar/core/util/memoize';
14
    export { memoizeRendering, MemoizedRendering } from '@fullcalendar/core/component/memoized-rendering';
15
    export { intersectRects, Rect, pointInsideRect, constrainPoint, getRectCenter, diffPoints, Point, translateRect } from '@fullcalendar/core/util/geom';
16
    export { mapHash, filterHash, isPropsEqual } from '@fullcalendar/core/util/object';
17
    export { findElements, findChildren, htmlToElement, createElement, insertAfterElement, prependToElement, removeElement, appendToElement, applyStyle, applyStyleProp, elementMatches, elementClosest, forceClassName } from '@fullcalendar/core/util/dom-manip';
18
    export { EventStore, filterEventStoreDefs, createEmptyEventStore, mergeEventStores, getRelevantEvents, eventTupleToStore } from '@fullcalendar/core/structs/event-store';
19
    export { EventUiHash, EventUi, processScopedUiProps, combineEventUis } from '@fullcalendar/core/component/event-ui';
20
    export { default as Splitter, SplittableProps } from '@fullcalendar/core/component/event-splitting';
21
    export { buildGotoAnchorHtml, getAllDayHtml, getDayClasses } from '@fullcalendar/core/component/date-rendering';
22
    export { preventDefault, listenBySelector, whenTransitionDone } from '@fullcalendar/core/util/dom-event';
23
    export { computeInnerRect, computeEdges, computeHeightAndMargins, getClippingParents, computeClippingRect, computeRect } from '@fullcalendar/core/util/dom-geom';
24
    export { unpromisify } from '@fullcalendar/core/util/promise';
25
    export { default as EmitterMixin, EmitterInterface } from '@fullcalendar/core/common/EmitterMixin';
26
    export { DateRange, rangeContainsMarker, intersectRanges, rangesEqual, rangesIntersect, rangeContainsRange } from '@fullcalendar/core/datelib/date-range';
27
    export { default as Mixin } from '@fullcalendar/core/common/Mixin';
28
    export { default as PositionCache } from '@fullcalendar/core/common/PositionCache';
29
    export { default as ScrollComponent, ScrollbarWidths } from '@fullcalendar/core/common/ScrollComponent';
30
    export { ScrollController, ElementScrollController, WindowScrollController } from '@fullcalendar/core/common/scroll-controller';
31
    export { default as Theme } from '@fullcalendar/core/theme/Theme';
32
    export { default as Component, ComponentContext } from '@fullcalendar/core/component/Component';
33
    export { default as DateComponent, Seg, EventSegUiInteractionState } from '@fullcalendar/core/component/DateComponent';
34
    export { default as Calendar, DatePointTransform, DateSpanTransform, DateSelectionApi } from '@fullcalendar/core/Calendar';
35
    export { default as View, ViewProps } from '@fullcalendar/core/View';
36
    export { default as FgEventRenderer, buildSegCompareObj } from '@fullcalendar/core/component/renderers/FgEventRenderer';
37
    export { default as FillRenderer } from '@fullcalendar/core/component/renderers/FillRenderer';
38
    export { default as DateProfileGenerator, DateProfile } from '@fullcalendar/core/DateProfileGenerator';
39
    export { ViewDef } from '@fullcalendar/core/structs/view-def';
40
    export { ViewSpec } from '@fullcalendar/core/structs/view-spec';
41
    export { DateSpan, DateSpanApi, DatePointApi, isDateSpansEqual } from '@fullcalendar/core/structs/date-span';
42
    export { DateMarker, addDays, startOfDay, addMs, addWeeks, diffWeeks, diffWholeWeeks, diffWholeDays, diffDayAndTime, diffDays, isValidDate } from '@fullcalendar/core/datelib/marker';
43
    export { Duration, createDuration, isSingleDay, multiplyDuration, addDurations, asRoughMinutes, asRoughSeconds, asRoughMs, wholeDivideDurations, greatestDurationDenominator } from '@fullcalendar/core/datelib/duration';
44
    export { DateEnv, DateMarkerMeta } from '@fullcalendar/core/datelib/env';
45
    export { DateFormatter, createFormatter, VerboseFormattingArg, formatIsoTimeString } from '@fullcalendar/core/datelib/formatting';
46
    export { NamedTimeZoneImpl } from '@fullcalendar/core/datelib/timezone';
47
    export { parse as parseMarker } from '@fullcalendar/core/datelib/parsing';
48
    export { EventSourceDef, EventSource, EventSourceHash } from '@fullcalendar/core/structs/event-source';
49
    export { Interaction, InteractionSettings, interactionSettingsToStore, interactionSettingsStore, InteractionSettingsStore } from '@fullcalendar/core/interactions/interaction';
50
    export { PointerDragEvent } from '@fullcalendar/core/interactions/pointer';
51
    export { Hit } from '@fullcalendar/core/interactions/hit';
52
    export { dateSelectionJoinTransformer } from '@fullcalendar/core/interactions/date-selecting';
53
    export { eventDragMutationMassager, EventDropTransformers } from '@fullcalendar/core/interactions/event-dragging';
54
    export { EventResizeJoinTransforms } from '@fullcalendar/core/interactions/event-resizing';
55
    export { default as ElementDragging } from '@fullcalendar/core/interactions/ElementDragging';
56
    export { formatDate, formatRange } from '@fullcalendar/core/formatting-api';
57
    export { globalDefaults, config } from '@fullcalendar/core/options';
58
    export { RecurringType, ParsedRecurring } from '@fullcalendar/core/structs/recurring-event';
59
    export { DragMetaInput, DragMeta, parseDragMeta } from '@fullcalendar/core/structs/drag-meta';
60
    export { createPlugin, PluginDef, PluginDefInput, ViewPropsTransformer, ViewContainerModifier } from '@fullcalendar/core/plugin-system';
61
    export { reducerFunc, Action, CalendarState } from '@fullcalendar/core/reducers/types';
62
    export { CalendarComponentProps } from '@fullcalendar/core/CalendarComponent';
63
    export { default as DayHeader } from '@fullcalendar/core/common/DayHeader';
64
    export { computeFallbackHeaderFormat, renderDateCell } from '@fullcalendar/core/common/table-utils';
65
    export { default as DaySeries } from '@fullcalendar/core/common/DaySeries';
66
    export { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state';
67
    export { EventRenderRange, sliceEventStore, hasBgRendering, getElSeg, computeEventDraggable, computeEventStartResizable, computeEventEndResizable } from '@fullcalendar/core/component/event-rendering';
68
    export { default as DayTable, DayTableSeg, DayTableCell } from '@fullcalendar/core/common/DayTable';
69
    export { default as Slicer, SlicedProps } from '@fullcalendar/core/common/slicing-utils';
70
    export { EventMutation, applyMutationToEventStore } from '@fullcalendar/core/structs/event-mutation';
71
    export { Constraint, ConstraintInput, AllowFunc, isPropsValid, isInteractionValid } from '@fullcalendar/core/validation';
72
    export { default as EventApi } from '@fullcalendar/core/api/EventApi';
73
    export { default as requestJson } from '@fullcalendar/core/util/requestJson';
74
}
75
76
declare module '@fullcalendar/core/types/input-types' {
77
    import View from '@fullcalendar/core/View';
78
    import { EventSourceInput, EventInputTransformer } from '@fullcalendar/core/structs/event-source';
79
    import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration';
80
    import { DateInput } from '@fullcalendar/core/datelib/env';
81
    import { FormatterInput } from '@fullcalendar/core/datelib/formatting';
82
    import { DateRangeInput } from '@fullcalendar/core/datelib/date-range';
83
    import { BusinessHoursInput } from '@fullcalendar/core/structs/business-hours';
84
    import EventApi from '@fullcalendar/core/api/EventApi';
85
    import { AllowFunc, ConstraintInput, OverlapFunc } from '@fullcalendar/core/validation';
86
    import { PluginDef } from '@fullcalendar/core/plugin-system';
87
    import { LocaleSingularArg, RawLocale } from '@fullcalendar/core/datelib/locale';
88
    export interface ToolbarInput {
89
        left?: string;
90
        center?: string;
91
        right?: string;
92
    }
93
    export interface CustomButtonInput {
94
        text: string;
95
        icon?: string;
96
        themeIcon?: string;
97
        bootstrapFontAwesome?: string;
98
        click(element: HTMLElement): void;
99
    }
100
    export interface ButtonIconsInput {
101
        prev?: string;
102
        next?: string;
103
        prevYear?: string;
104
        nextYear?: string;
105
    }
106
    export interface ButtonTextCompoundInput {
107
        prev?: string;
108
        next?: string;
109
        prevYear?: string;
110
        nextYear?: string;
111
        today?: string;
112
        month?: string;
113
        week?: string;
114
        day?: string;
115
        [viewId: string]: string | undefined;
116
    }
117
    export interface EventSegment {
118
        event: EventApi;
119
        start: Date;
120
        end: Date;
121
        isStart: boolean;
122
        isEnd: boolean;
123
    }
124
    export interface CellInfo {
125
        date: Date;
126
        dayEl: HTMLElement;
127
        moreEl: HTMLElement;
128
        segs: EventSegment[];
129
        hiddenSegs: EventSegment[];
130
    }
131
    export interface DropInfo {
132
        start: Date;
133
        end: Date;
134
    }
135
    export type EventHandlerName = '_init' | 'selectAllow' | 'eventAllow' | 'eventDataTransform' | 'datesRender' | 'datesDestroy' | 'dayRender' | 'windowResize' | 'dateClick' | 'eventClick' | 'eventMouseEnter' | 'eventMouseLeave' | 'select' | 'unselect' | 'loading' | 'eventRender' | 'eventPositioned' | '_eventsPositioned' | 'eventDestroy' | 'eventDragStart' | 'eventDragStop' | 'eventDrop' | '_destroyed' | 'drop' | 'eventResizeStart' | 'eventResizeStop' | 'eventResize' | 'eventReceive' | 'eventLeave' | 'viewSkeletonRender' | 'viewSkeletonDestroy' | '_noEventDrop' | '_noEventResize' | 'eventLimitClick' | 'resourceRender';
136
    export type EventHandlerArgs<T extends EventHandlerName> = Parameters<Extract<OptionsInput[T], (...args: any[]) => any>>;
137
    export type EventHandlerArg<T extends EventHandlerName> = EventHandlerArgs<T>[0];
138
    export interface OptionsInputBase {
139
        header?: boolean | ToolbarInput;
140
        footer?: boolean | ToolbarInput;
141
        customButtons?: {
142
            [name: string]: CustomButtonInput;
143
        };
144
        buttonIcons?: boolean | ButtonIconsInput;
145
        themeSystem?: 'standard' | string;
146
        bootstrapFontAwesome?: boolean | ButtonIconsInput;
147
        firstDay?: number;
148
        dir?: 'ltr' | 'rtl' | 'auto';
149
        weekends?: boolean;
150
        hiddenDays?: number[];
151
        fixedWeekCount?: boolean;
152
        weekNumbers?: boolean;
153
        weekNumbersWithinDays?: boolean;
154
        weekNumberCalculation?: 'local' | 'ISO' | ((m: Date) => number);
155
        businessHours?: BusinessHoursInput;
156
        showNonCurrentDates?: boolean;
157
        height?: number | 'auto' | 'parent' | (() => number);
158
        contentHeight?: number | 'auto' | (() => number);
159
        aspectRatio?: number;
160
        handleWindowResize?: boolean;
161
        windowResizeDelay?: number;
162
        eventLimit?: boolean | number;
163
        eventLimitClick?: 'popover' | 'week' | 'day' | 'timeGridWeek' | 'timeGridDay' | string | ((arg: {
164
            date: Date;
165
            allDay: boolean;
166
            dayEl: HTMLElement;
167
            moreEl: HTMLElement;
168
            segs: any[];
169
            hiddenSegs: any[];
170
            jsEvent: MouseEvent;
171
            view: View;
172
        }) => void);
173
        timeZone?: string | boolean;
174
        now?: DateInput | (() => DateInput);
175
        defaultView?: string;
176
        allDaySlot?: boolean;
177
        allDayText?: string;
178
        slotDuration?: DurationInput;
179
        slotLabelFormat?: FormatterInput;
180
        slotLabelInterval?: DurationInput;
181
        snapDuration?: DurationInput;
182
        scrollTime?: DurationInput;
183
        minTime?: DurationInput;
184
        maxTime?: DurationInput;
185
        slotEventOverlap?: boolean;
186
        listDayFormat?: FormatterInput | boolean;
187
        listDayAltFormat?: FormatterInput | boolean;
188
        noEventsMessage?: string;
189
        defaultDate?: DateInput;
190
        nowIndicator?: boolean;
191
        visibleRange?: ((currentDate: Date) => DateRangeInput) | DateRangeInput;
192
        validRange?: DateRangeInput;
193
        dateIncrement?: DurationInput;
194
        dateAlignment?: string;
195
        duration?: DurationInput;
196
        dayCount?: number;
197
        locales?: RawLocale[];
198
        locale?: LocaleSingularArg;
199
        eventTimeFormat?: FormatterInput;
200
        columnHeader?: boolean;
201
        columnHeaderFormat?: FormatterInput;
202
        columnHeaderText?: string | ((date: DateInput) => string);
203
        columnHeaderHtml?: string | ((date: DateInput) => string);
204
        titleFormat?: FormatterInput;
205
        weekLabel?: string;
206
        displayEventTime?: boolean;
207
        displayEventEnd?: boolean;
208
        eventLimitText?: string | ((eventCnt: number) => string);
209
        dayPopoverFormat?: FormatterInput;
210
        navLinks?: boolean;
211
        navLinkDayClick?: string | ((date: Date, jsEvent: Event) => void);
212
        navLinkWeekClick?: string | ((weekStart: any, jsEvent: Event) => void);
213
        selectable?: boolean;
214
        selectMirror?: boolean;
215
        unselectAuto?: boolean;
216
        unselectCancel?: string;
217
        defaultAllDayEventDuration?: DurationInput;
218
        defaultTimedEventDuration?: DurationInput;
219
        cmdFormatter?: string;
220
        defaultRangeSeparator?: string;
221
        selectConstraint?: ConstraintInput;
222
        selectOverlap?: boolean | OverlapFunc;
223
        selectAllow?: AllowFunc;
224
        editable?: boolean;
225
        eventStartEditable?: boolean;
226
        eventDurationEditable?: boolean;
227
        eventConstraint?: ConstraintInput;
228
        eventOverlap?: boolean | OverlapFunc;
229
        eventAllow?: AllowFunc;
230
        eventClassName?: string[] | string;
231
        eventClassNames?: string[] | string;
232
        eventBackgroundColor?: string;
233
        eventBorderColor?: string;
234
        eventTextColor?: string;
235
        eventColor?: string;
236
        events?: EventSourceInput;
237
        eventSources?: EventSourceInput[];
238
        allDayDefault?: boolean;
239
        startParam?: string;
240
        endParam?: string;
241
        lazyFetching?: boolean;
242
        nextDayThreshold?: DurationInput;
243
        eventOrder?: string | Array<((a: EventApi, b: EventApi) => number) | (string | ((a: EventApi, b: EventApi) => number))>;
244
        rerenderDelay?: number | null;
245
        dragRevertDuration?: number;
246
        dragScroll?: boolean;
247
        longPressDelay?: number;
248
        eventLongPressDelay?: number;
249
        droppable?: boolean;
250
        dropAccept?: string | ((draggable: any) => boolean);
251
        eventDataTransform?: EventInputTransformer;
252
        allDayMaintainDuration?: boolean;
253
        eventResizableFromStart?: boolean;
254
        timeGridEventMinHeight?: number;
255
        allDayHtml?: string;
256
        eventDragMinDistance?: number;
257
        eventSourceFailure?: any;
258
        eventSourceSuccess?: any;
259
        forceEventDuration?: boolean;
260
        progressiveEventRendering?: boolean;
261
        selectLongPressDelay?: number;
262
        selectMinDistance?: number;
263
        timeZoneParam?: string;
264
        titleRangeSeparator?: string;
265
        datesRender?(arg: {
266
            view: View;
267
            el: HTMLElement;
268
        }): void;
269
        datesDestroy?(arg: {
270
            view: View;
271
            el: HTMLElement;
272
        }): void;
273
        dayRender?(arg: {
274
            view: View;
275
            date: Date;
276
            allDay?: boolean;
277
            el: HTMLElement;
278
        }): void;
279
        windowResize?(view: View): void;
280
        dateClick?(arg: {
281
            date: Date;
282
            dateStr: string;
283
            allDay: boolean;
284
            resource?: any;
285
            dayEl: HTMLElement;
286
            jsEvent: MouseEvent;
287
            view: View;
288
        }): void;
289
        eventClick?(arg: {
290
            el: HTMLElement;
291
            event: EventApi;
292
            jsEvent: MouseEvent;
293
            view: View;
294
        }): boolean | void;
295
        eventMouseEnter?(arg: {
296
            el: HTMLElement;
297
            event: EventApi;
298
            jsEvent: MouseEvent;
299
            view: View;
300
        }): void;
301
        eventMouseLeave?(arg: {
302
            el: HTMLElement;
303
            event: EventApi;
304
            jsEvent: MouseEvent;
305
            view: View;
306
        }): void;
307
        select?(arg: {
308
            start: Date;
309
            end: Date;
310
            startStr: string;
311
            endStr: string;
312
            allDay: boolean;
313
            resource?: any;
314
            jsEvent: MouseEvent;
315
            view: View;
316
        }): void;
317
        unselect?(arg: {
318
            view: View;
319
            jsEvent: Event;
320
        }): void;
321
        loading?(isLoading: boolean): void;
322
        eventRender?(arg: {
323
            isMirror: boolean;
324
            isStart: boolean;
325
            isEnd: boolean;
326
            event: EventApi;
327
            el: HTMLElement;
328
            view: View;
329
        }): void;
330
        eventPositioned?(arg: {
331
            isMirror: boolean;
332
            isStart: boolean;
333
            isEnd: boolean;
334
            event: EventApi;
335
            el: HTMLElement;
336
            view: View;
337
        }): void;
338
        _eventsPositioned?(arg: {
339
            view: View;
340
        }): void;
341
        eventDestroy?(arg: {
342
            isMirror: boolean;
343
            event: EventApi;
344
            el: HTMLElement;
345
            view: View;
346
        }): void;
347
        eventDragStart?(arg: {
348
            event: EventApi;
349
            el: HTMLElement;
350
            jsEvent: MouseEvent;
351
            view: View;
352
        }): void;
353
        eventDragStop?(arg: {
354
            event: EventApi;
355
            el: HTMLElement;
356
            jsEvent: MouseEvent;
357
            view: View;
358
        }): void;
359
        eventDrop?(arg: {
360
            el: HTMLElement;
361
            event: EventApi;
362
            oldEvent: EventApi;
363
            delta: Duration;
364
            revert: () => void;
365
            jsEvent: Event;
366
            view: View;
367
        }): void;
368
        eventResizeStart?(arg: {
369
            el: HTMLElement;
370
            event: EventApi;
371
            jsEvent: MouseEvent;
372
            view: View;
373
        }): void;
374
        eventResizeStop?(arg: {
375
            el: HTMLElement;
376
            event: EventApi;
377
            jsEvent: MouseEvent;
378
            view: View;
379
        }): void;
380
        eventResize?(arg: {
381
            el: HTMLElement;
382
            startDelta: Duration;
383
            endDelta: Duration;
384
            prevEvent: EventApi;
385
            event: EventApi;
386
            revert: () => void;
387
            jsEvent: Event;
388
            view: View;
389
        }): void;
390
        drop?(arg: {
391
            date: Date;
392
            dateStr: string;
393
            allDay: boolean;
394
            draggedEl: HTMLElement;
395
            jsEvent: MouseEvent;
396
            view: View;
397
        }): void;
398
        eventReceive?(arg: {
399
            event: EventApi;
400
            draggedEl: HTMLElement;
401
            view: View;
402
        }): void;
403
        eventLeave?(arg: {
404
            draggedEl: HTMLElement;
405
            event: EventApi;
406
            view: View;
407
        }): void;
408
        viewSkeletonRender?(arg: {
409
            el: HTMLElement;
410
            view: View;
411
        }): void;
412
        viewSkeletonDestroy?(arg: {
413
            el: HTMLElement;
414
            view: View;
415
        }): void;
416
        _destroyed?(): void;
417
        _init?(): void;
418
        _noEventDrop?(): void;
419
        _noEventResize?(): void;
420
        resourceRender?(arg: {
421
            resource: any;
422
            el: HTMLElement;
423
            view: View;
424
        }): void;
425
    }
426
    export interface ViewOptionsInput extends OptionsInputBase {
427
        type?: string;
428
        buttonText?: string;
429
    }
430
    export interface OptionsInput extends OptionsInputBase {
431
        buttonText?: ButtonTextCompoundInput;
432
        views?: {
433
            [viewId: string]: ViewOptionsInput;
434
        };
435
        plugins?: (PluginDef | string)[];
436
    }
437
}
438
439
declare module '@fullcalendar/core/structs/event' {
440
    import { DateInput } from '@fullcalendar/core/datelib/env';
441
    import Calendar from '@fullcalendar/core/Calendar';
442
    import { DateRange } from '@fullcalendar/core/datelib/date-range';
443
    import { Duration } from '@fullcalendar/core/datelib/duration';
444
    import { UnscopedEventUiInput, EventUi } from '@fullcalendar/core/component/event-ui';
445
    export type EventRenderingChoice = '' | 'background' | 'inverse-background' | 'none';
446
    export interface EventNonDateInput extends UnscopedEventUiInput {
447
        id?: string | number;
448
        groupId?: string | number;
449
        title?: string;
450
        url?: string;
451
        rendering?: EventRenderingChoice;
452
        extendedProps?: object;
453
        [extendedProp: string]: any;
454
    }
455
    export interface EventDateInput {
456
        start?: DateInput;
457
        end?: DateInput;
458
        date?: DateInput;
459
        allDay?: boolean;
460
    }
461
    export type EventInput = EventNonDateInput & EventDateInput;
462
    export interface EventDef {
463
        defId: string;
464
        sourceId: string;
465
        publicId: string;
466
        groupId: string;
467
        allDay: boolean;
468
        hasEnd: boolean;
469
        recurringDef: {
470
            typeId: number;
471
            typeData: any;
472
            duration: Duration | null;
473
        } | null;
474
        title: string;
475
        url: string;
476
        rendering: EventRenderingChoice;
477
        ui: EventUi;
478
        extendedProps: any;
479
    }
480
    export interface EventInstance {
481
        instanceId: string;
482
        defId: string;
483
        range: DateRange;
484
        forcedStartTzo: number | null;
485
        forcedEndTzo: number | null;
486
    }
487
    export interface EventTuple {
488
        def: EventDef;
489
        instance: EventInstance | null;
490
    }
491
    export type EventInstanceHash = {
492
        [instanceId: string]: EventInstance;
493
    };
494
    export type EventDefHash = {
495
        [defId: string]: EventDef;
496
    };
497
    export const NON_DATE_PROPS: {
498
        id: StringConstructor;
499
        groupId: StringConstructor;
500
        title: StringConstructor;
501
        url: StringConstructor;
502
        rendering: StringConstructor;
503
        extendedProps: any;
504
    };
505
    export const DATE_PROPS: {
506
        start: any;
507
        date: any;
508
        end: any;
509
        allDay: any;
510
    };
511
    export function parseEvent(raw: EventInput, sourceId: string, calendar: Calendar, allowOpenRange?: boolean): EventTuple | null;
512
    export function parseEventDef(raw: EventNonDateInput, sourceId: string, allDay: boolean, hasEnd: boolean, calendar: Calendar): EventDef;
513
    export type eventDefParserFunc = (def: EventDef, props: any, leftovers: any) => void;
514
    export function createEventInstance(defId: string, range: DateRange, forcedStartTzo?: number, forcedEndTzo?: number): EventInstance;
515
}
516
517
declare module '@fullcalendar/core/structs/business-hours' {
518
    import Calendar from '@fullcalendar/core/Calendar';
519
    import { EventInput } from '@fullcalendar/core/structs/event';
520
    import { EventStore } from '@fullcalendar/core/structs/event-store';
521
    export type BusinessHoursInput = boolean | EventInput | EventInput[];
522
    export function parseBusinessHours(input: BusinessHoursInput, calendar: Calendar): EventStore;
523
}
524
525
declare module '@fullcalendar/core/util/misc' {
526
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
527
    import { Duration } from '@fullcalendar/core/datelib/duration';
528
    import { DateEnv } from '@fullcalendar/core/datelib/env';
529
    import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range';
530
    export function compensateScroll(rowEl: HTMLElement, scrollbarWidths: any): void;
531
    export function uncompensateScroll(rowEl: HTMLElement): void;
532
    export function disableCursor(): void;
533
    export function enableCursor(): void;
534
    export function distributeHeight(els: HTMLElement[], availableHeight: any, shouldRedistribute: any): void;
535
    export function undistributeHeight(els: HTMLElement[]): void;
536
    export function matchCellWidths(els: HTMLElement[]): number;
537
    export function subtractInnerElHeight(outerEl: HTMLElement, innerEl: HTMLElement): number;
538
    export function preventSelection(el: HTMLElement): void;
539
    export function allowSelection(el: HTMLElement): void;
540
    export function preventContextMenu(el: HTMLElement): void;
541
    export function allowContextMenu(el: HTMLElement): void;
542
    export function parseFieldSpecs(input: any): any[];
543
    export function compareByFieldSpecs(obj0: any, obj1: any, fieldSpecs: any): any;
544
    export function compareByFieldSpec(obj0: any, obj1: any, fieldSpec: any): any;
545
    export function flexibleCompare(a: any, b: any): number;
546
    export function capitaliseFirstLetter(str: any): any;
547
    export function padStart(val: any, len: any): string;
548
    export function compareNumbers(a: any, b: any): number;
549
    export function isInt(n: any): boolean;
550
    export function applyAll(functions: any, thisObj: any, args: any): any;
551
    export function firstDefined(...args: any[]): any;
552
    export function debounce(func: any, wait: any): () => any;
553
    export type GenericHash = {
554
        [key: string]: any;
555
    };
556
    export function refineProps(rawProps: GenericHash, processors: GenericHash, defaults?: GenericHash, leftoverProps?: GenericHash): GenericHash;
557
    export function computeAlignedDayRange(timedRange: DateRange): DateRange;
558
    export function computeVisibleDayRange(timedRange: OpenDateRange, nextDayThreshold?: Duration): OpenDateRange;
559
    export function isMultiDayRange(range: DateRange): boolean;
560
    export function diffDates(date0: DateMarker, date1: DateMarker, dateEnv: DateEnv, largeUnit?: string): Duration;
561
}
562
563
declare module '@fullcalendar/core/util/html' {
564
    export function htmlEscape(s: any): string;
565
    export function cssToStr(cssProps: any): string;
566
    export function attrsToStr(attrs: any): string;
567
    export type ClassNameInput = string | string[];
568
    export function parseClassName(raw: ClassNameInput): string[];
569
}
570
571
declare module '@fullcalendar/core/util/array' {
572
    export function removeMatching(array: any, testFunc: any): number;
573
    export function removeExact(array: any, exactVal: any): number;
574
    export function isArraysEqual(a0: any, a1: any): boolean;
575
}
576
577
declare module '@fullcalendar/core/util/memoize' {
578
    export function memoize<T>(workerFunc: T): T;
579
    export function memoizeOutput<T>(workerFunc: T, equalityFunc: (output0: any, output1: any) => boolean): T;
580
}
581
582
declare module '@fullcalendar/core/component/memoized-rendering' {
583
    export interface MemoizedRendering<ArgsType extends any[]> {
584
        (...args: ArgsType): void;
585
        unrender: () => void;
586
        dependents: MemoizedRendering<any>[];
587
    }
588
    export function memoizeRendering<ArgsType extends any[]>(renderFunc: (...args: ArgsType) => void, unrenderFunc?: (...args: ArgsType) => void, dependencies?: MemoizedRendering<any>[]): MemoizedRendering<ArgsType>;
589
}
590
591
declare module '@fullcalendar/core/util/geom' {
592
    export interface Point {
593
        left: number;
594
        top: number;
595
    }
596
    export interface Rect {
597
        left: number;
598
        right: number;
599
        top: number;
600
        bottom: number;
601
    }
602
    export function pointInsideRect(point: Point, rect: Rect): boolean;
603
    export function intersectRects(rect1: Rect, rect2: Rect): Rect | false;
604
    export function translateRect(rect: Rect, deltaX: number, deltaY: number): Rect;
605
    export function constrainPoint(point: Point, rect: Rect): Point;
606
    export function getRectCenter(rect: Rect): Point;
607
    export function diffPoints(point1: Point, point2: Point): Point;
608
}
609
610
declare module '@fullcalendar/core/util/object' {
611
    export function mergeProps(propObjs: any, complexProps?: any): any;
612
    export function filterHash(hash: any, func: any): {};
613
    export function mapHash<InputItem, OutputItem>(hash: {
614
        [key: string]: InputItem;
615
    }, func: (input: InputItem, key: string) => OutputItem): {
616
        [key: string]: OutputItem;
617
    };
618
    export function arrayToHash(a: any): {
619
        [key: string]: true;
620
    };
621
    export function hashValuesToArray(obj: any): any[];
622
    export function isPropsEqual(obj0: any, obj1: any): boolean;
623
}
624
625
declare module '@fullcalendar/core/util/dom-manip' {
626
    export function createElement(tagName: string, attrs: object | null, content?: ElementContent): HTMLElement;
627
    export function htmlToElement(html: string): HTMLElement;
628
    export function htmlToElements(html: string): HTMLElement[];
629
    export type ElementContent = string | Node | Node[] | NodeList;
630
    export function appendToElement(el: HTMLElement, content: ElementContent): void;
631
    export function prependToElement(parent: HTMLElement, content: ElementContent): void;
632
    export function insertAfterElement(refEl: HTMLElement, content: ElementContent): void;
633
    export function removeElement(el: HTMLElement): void;
634
    export function elementClosest(el: HTMLElement, selector: string): HTMLElement;
635
    export function elementMatches(el: HTMLElement, selector: string): HTMLElement;
636
    export function findElements(container: HTMLElement[] | HTMLElement | NodeListOf<HTMLElement>, selector: string): HTMLElement[];
637
    export function findChildren(parent: HTMLElement[] | HTMLElement, selector?: string): HTMLElement[];
638
    export function forceClassName(el: HTMLElement, className: string, bool: any): void;
639
    export function applyStyle(el: HTMLElement, props: object): void;
640
    export function applyStyleProp(el: HTMLElement, name: string, val: any): void;
641
}
642
643
declare module '@fullcalendar/core/structs/event-store' {
644
    import { EventInput, EventDef, EventDefHash, EventInstanceHash, EventTuple } from '@fullcalendar/core/structs/event';
645
    import { EventSource } from '@fullcalendar/core/structs/event-source';
646
    import Calendar from '@fullcalendar/core/Calendar';
647
    import { DateRange } from '@fullcalendar/core/datelib/date-range';
648
    export interface EventStore {
649
        defs: EventDefHash;
650
        instances: EventInstanceHash;
651
    }
652
    export function parseEvents(rawEvents: EventInput[], sourceId: string, calendar: Calendar, allowOpenRange?: boolean): EventStore;
653
    export function eventTupleToStore(tuple: EventTuple, eventStore?: EventStore): EventStore;
654
    export function expandRecurring(eventStore: EventStore, framingRange: DateRange, calendar: Calendar): EventStore;
655
    export function getRelevantEvents(eventStore: EventStore, instanceId: string): EventStore;
656
    export function transformRawEvents(rawEvents: any, eventSource: EventSource, calendar: Calendar): any;
657
    export function createEmptyEventStore(): EventStore;
658
    export function mergeEventStores(store0: EventStore, store1: EventStore): EventStore;
659
    export function filterEventStoreDefs(eventStore: EventStore, filterFunc: (eventDef: EventDef) => boolean): EventStore;
660
}
661
662
declare module '@fullcalendar/core/component/event-ui' {
663
    import { Constraint, AllowFunc, ConstraintInput } from '@fullcalendar/core/validation';
664
    import { parseClassName } from '@fullcalendar/core/util/html';
665
    import Calendar from '@fullcalendar/core/Calendar';
666
    export interface UnscopedEventUiInput {
667
        editable?: boolean;
668
        startEditable?: boolean;
669
        durationEditable?: boolean;
670
        constraint?: ConstraintInput;
671
        overlap?: boolean;
672
        allow?: AllowFunc;
673
        className?: string[] | string;
674
        classNames?: string[] | string;
675
        backgroundColor?: string;
676
        borderColor?: string;
677
        textColor?: string;
678
        color?: string;
679
    }
680
    export interface EventUi {
681
        startEditable: boolean | null;
682
        durationEditable: boolean | null;
683
        constraints: Constraint[];
684
        overlap: boolean | null;
685
        allows: AllowFunc[];
686
        backgroundColor: string;
687
        borderColor: string;
688
        textColor: string;
689
        classNames: string[];
690
    }
691
    export type EventUiHash = {
692
        [defId: string]: EventUi;
693
    };
694
    export const UNSCOPED_EVENT_UI_PROPS: {
695
        editable: BooleanConstructor;
696
        startEditable: BooleanConstructor;
697
        durationEditable: BooleanConstructor;
698
        constraint: any;
699
        overlap: any;
700
        allow: any;
701
        className: typeof parseClassName;
702
        classNames: typeof parseClassName;
703
        color: StringConstructor;
704
        backgroundColor: StringConstructor;
705
        borderColor: StringConstructor;
706
        textColor: StringConstructor;
707
    };
708
    export function processUnscopedUiProps(rawProps: UnscopedEventUiInput, calendar: Calendar, leftovers?: any): EventUi;
709
    export function processScopedUiProps(prefix: string, rawScoped: any, calendar: Calendar, leftovers?: any): EventUi;
710
    export function combineEventUis(uis: EventUi[]): EventUi;
711
}
712
713
declare module '@fullcalendar/core/component/event-splitting' {
714
    import { EventStore } from '@fullcalendar/core/structs/event-store';
715
    import { EventDef } from '@fullcalendar/core/structs/event';
716
    import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state';
717
    import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui';
718
    import { DateSpan } from '@fullcalendar/core/structs/date-span';
719
    export interface SplittableProps {
720
        businessHours: EventStore | null;
721
        dateSelection: DateSpan | null;
722
        eventStore: EventStore;
723
        eventUiBases: EventUiHash;
724
        eventSelection: string;
725
        eventDrag: EventInteractionState | null;
726
        eventResize: EventInteractionState | null;
727
    }
728
    export { Splitter as default, Splitter };
729
    abstract class Splitter<PropsType extends SplittableProps = SplittableProps> {
730
        abstract getKeyInfo(props: PropsType): {
731
            [key: string]: {
732
                ui?: EventUi;
733
                businessHours?: EventStore;
734
            };
735
        };
736
        abstract getKeysForDateSpan(dateSpan: DateSpan): string[];
737
        abstract getKeysForEventDef(eventDef: EventDef): string[];
738
        splitProps(props: PropsType): {
739
            [key: string]: SplittableProps;
740
        };
741
    }
742
}
743
744
declare module '@fullcalendar/core/component/date-rendering' {
745
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
746
    import { ComponentContext } from '@fullcalendar/core/component/Component';
747
    import { DateProfile } from '@fullcalendar/core/DateProfileGenerator';
748
    import { DateEnv } from '@fullcalendar/core/datelib/env';
749
    export function buildGotoAnchorHtml(allOptions: any, dateEnv: DateEnv, gotoOptions: any, attrs: any, innerHtml?: any): string;
750
    export function getAllDayHtml(allOptions: any): any;
751
    export function getDayClasses(date: DateMarker, dateProfile: DateProfile, context: ComponentContext, noThemeHighlight?: any): any[];
752
}
753
754
declare module '@fullcalendar/core/util/dom-event' {
755
    export function preventDefault(ev: any): void;
756
    export function listenBySelector(container: HTMLElement, eventType: string, selector: string, handler: (ev: Event, matchedTarget: HTMLElement) => void): () => void;
757
    export function listenToHoverBySelector(container: HTMLElement, selector: string, onMouseEnter: (ev: Event, matchedTarget: HTMLElement) => void, onMouseLeave: (ev: Event, matchedTarget: HTMLElement) => void): () => void;
758
    export function whenTransitionDone(el: HTMLElement, callback: (ev: Event) => void): void;
759
}
760
761
declare module '@fullcalendar/core/util/dom-geom' {
762
    import { Rect } from '@fullcalendar/core/util/geom';
763
    export interface EdgeInfo {
764
        borderLeft: number;
765
        borderRight: number;
766
        borderTop: number;
767
        borderBottom: number;
768
        scrollbarLeft: number;
769
        scrollbarRight: number;
770
        scrollbarBottom: number;
771
        paddingLeft?: number;
772
        paddingRight?: number;
773
        paddingTop?: number;
774
        paddingBottom?: number;
775
    }
776
    export function computeEdges(el: any, getPadding?: boolean): EdgeInfo;
777
    export function computeInnerRect(el: any, goWithinPadding?: boolean): {
778
        left: number;
779
        right: number;
780
        top: number;
781
        bottom: number;
782
    };
783
    export function computeRect(el: any): Rect;
784
    export function computeHeightAndMargins(el: HTMLElement): number;
785
    export function computeVMargins(el: HTMLElement): number;
786
    export function getClippingParents(el: HTMLElement): HTMLElement[];
787
    export function computeClippingRect(el: HTMLElement): Rect;
788
}
789
790
declare module '@fullcalendar/core/util/promise' {
791
    export function unpromisify(func: any, success: any, failure?: any): void;
792
}
793
794
declare module '@fullcalendar/core/common/EmitterMixin' {
795
    import Mixin from '@fullcalendar/core/common/Mixin';
796
    export interface EmitterInterface {
797
        on(types: any, handler: any): any;
798
        one(types: any, handler: any): any;
799
        off(types: any, handler: any): any;
800
        trigger(type: any, ...args: any[]): any;
801
        triggerWith(type: any, context: any, args: any): any;
802
        hasHandlers(type: any): any;
803
    }
804
    export { EmitterMixin as default, EmitterMixin };
805
    class EmitterMixin extends Mixin implements EmitterInterface {
806
        _handlers: any;
807
        _oneHandlers: any;
808
        on(type: any, handler: any): this;
809
        one(type: any, handler: any): this;
810
        off(type: any, handler?: any): this;
811
        trigger(type: any, ...args: any[]): this;
812
        triggerWith(type: any, context: any, args: any): this;
813
        hasHandlers(type: any): any;
814
    }
815
}
816
817
declare module '@fullcalendar/core/datelib/date-range' {
818
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
819
    import { DateEnv, DateInput } from '@fullcalendar/core/datelib/env';
820
    export interface DateRangeInput {
821
        start?: DateInput;
822
        end?: DateInput;
823
    }
824
    export interface OpenDateRange {
825
        start: DateMarker | null;
826
        end: DateMarker | null;
827
    }
828
    export interface DateRange {
829
        start: DateMarker;
830
        end: DateMarker;
831
    }
832
    export function parseRange(input: DateRangeInput, dateEnv: DateEnv): OpenDateRange;
833
    export function invertRanges(ranges: DateRange[], constraintRange: DateRange): DateRange[];
834
    export function intersectRanges(range0: OpenDateRange, range1: OpenDateRange): OpenDateRange;
835
    export function rangesEqual(range0: OpenDateRange, range1: OpenDateRange): boolean;
836
    export function rangesIntersect(range0: OpenDateRange, range1: OpenDateRange): boolean;
837
    export function rangeContainsRange(outerRange: OpenDateRange, innerRange: OpenDateRange): boolean;
838
    export function rangeContainsMarker(range: OpenDateRange, date: DateMarker | number): boolean;
839
    export function constrainMarkerToRange(date: DateMarker, range: DateRange): DateMarker;
840
}
841
842
declare module '@fullcalendar/core/common/Mixin' {
843
    export { Mixin as default, Mixin };
844
    class Mixin {
845
        static mixInto(destClass: any): void;
846
        static mixIntoObj(destObj: any): void;
847
        static mixOver(destClass: any): void;
848
    }
849
}
850
851
declare module '@fullcalendar/core/common/PositionCache' {
852
    export { PositionCache as default, PositionCache };
853
    class PositionCache {
854
        originClientRect: ClientRect;
855
        els: HTMLElement[];
856
        originEl: HTMLElement;
857
        isHorizontal: boolean;
858
        isVertical: boolean;
859
        lefts: any;
860
        rights: any;
861
        tops: any;
862
        bottoms: any;
863
        constructor(originEl: HTMLElement, els: HTMLElement[], isHorizontal: boolean, isVertical: boolean);
864
        build(): void;
865
        buildElHorizontals(originClientLeft: number): void;
866
        buildElVerticals(originClientTop: number): void;
867
        leftToIndex(leftPosition: number): any;
868
        topToIndex(topPosition: number): any;
869
        getWidth(leftIndex: number): number;
870
        getHeight(topIndex: number): number;
871
    }
872
}
873
874
declare module '@fullcalendar/core/common/ScrollComponent' {
875
    import { ElementScrollController } from '@fullcalendar/core/common/scroll-controller';
876
    export interface ScrollbarWidths {
877
        left: number;
878
        right: number;
879
        bottom: number;
880
    }
881
    export { ScrollComponent as default, ScrollComponent };
882
    class ScrollComponent extends ElementScrollController {
883
        overflowX: string;
884
        overflowY: string;
885
        constructor(overflowX: string, overflowY: string);
886
        clear(): void;
887
        destroy(): void;
888
        applyOverflow(): void;
889
        lockOverflow(scrollbarWidths: ScrollbarWidths): void;
890
        setHeight(height: number | string): void;
891
        getScrollbarWidths(): ScrollbarWidths;
892
    }
893
}
894
895
declare module '@fullcalendar/core/common/scroll-controller' {
896
    export abstract class ScrollController {
897
        abstract getScrollTop(): number;
898
        abstract getScrollLeft(): number;
899
        abstract setScrollTop(top: number): void;
900
        abstract setScrollLeft(left: number): void;
901
        abstract getClientWidth(): number;
902
        abstract getClientHeight(): number;
903
        abstract getScrollWidth(): number;
904
        abstract getScrollHeight(): number;
905
        getMaxScrollTop(): number;
906
        getMaxScrollLeft(): number;
907
        canScrollVertically(): boolean;
908
        canScrollHorizontally(): boolean;
909
        canScrollUp(): boolean;
910
        canScrollDown(): boolean;
911
        canScrollLeft(): boolean;
912
        canScrollRight(): boolean;
913
    }
914
    export class ElementScrollController extends ScrollController {
915
        el: HTMLElement;
916
        constructor(el: HTMLElement);
917
        getScrollTop(): number;
918
        getScrollLeft(): number;
919
        setScrollTop(top: number): void;
920
        setScrollLeft(left: number): void;
921
        getScrollWidth(): number;
922
        getScrollHeight(): number;
923
        getClientHeight(): number;
924
        getClientWidth(): number;
925
    }
926
    export class WindowScrollController extends ScrollController {
927
        getScrollTop(): number;
928
        getScrollLeft(): number;
929
        setScrollTop(n: number): void;
930
        setScrollLeft(n: number): void;
931
        getScrollWidth(): number;
932
        getScrollHeight(): number;
933
        getClientHeight(): number;
934
        getClientWidth(): number;
935
    }
936
}
937
938
declare module '@fullcalendar/core/theme/Theme' {
939
    export { Theme as default, Theme };
940
    class Theme {
941
        calendarOptions: any;
942
        classes: any;
943
        iconClasses: any;
944
        baseIconClass: string;
945
        iconOverrideOption: any;
946
        iconOverrideCustomButtonOption: any;
947
        iconOverridePrefix: string;
948
        constructor(calendarOptions: any);
949
        processIconOverride(): void;
950
        setIconOverride(iconOverrideHash: any): void;
951
        applyIconOverridePrefix(className: any): any;
952
        getClass(key: any): any;
953
        getIconClass(buttonName: any): string;
954
        getCustomButtonIconClass(customButtonProps: any): string;
955
    }
956
    export type ThemeClass = {
957
        new (calendarOptions: any): Theme;
958
    };
959
}
960
961
declare module '@fullcalendar/core/component/Component' {
962
    import Calendar from '@fullcalendar/core/Calendar';
963
    import View from '@fullcalendar/core/View';
964
    import Theme from '@fullcalendar/core/theme/Theme';
965
    import { DateEnv } from '@fullcalendar/core/datelib/env';
966
    import { Duration } from '@fullcalendar/core/datelib/duration';
967
    export class ComponentContext {
968
        calendar: Calendar;
969
        theme: Theme;
970
        dateEnv: DateEnv;
971
        options: any;
972
        view?: View;
973
        isRtl: boolean;
974
        eventOrderSpecs: any;
975
        nextDayThreshold: Duration;
976
        constructor(calendar: Calendar, theme: Theme, dateEnv: DateEnv, options: any, view?: View);
977
        extend(options?: any, view?: View): ComponentContext;
978
    }
979
    export type EqualityFuncHash = {
980
        [propName: string]: (obj0: any, obj1: any) => boolean;
981
    };
982
    export { Component as default, Component };
983
    class Component<PropsType> {
984
        equalityFuncs: EqualityFuncHash;
985
        uid: string;
986
        props: PropsType | null;
987
        context: ComponentContext;
988
        constructor();
989
        static addEqualityFuncs(newFuncs: EqualityFuncHash): void;
990
        receiveProps(props: PropsType, context: ComponentContext): void;
991
        protected render(props: PropsType, context: ComponentContext): void;
992
        firstContext(context: ComponentContext): void;
993
        beforeUpdate(): void;
994
        afterUpdate(): void;
995
        destroy(): void;
996
    }
997
}
998
999
declare module '@fullcalendar/core/component/DateComponent' {
1000
    import Component from '@fullcalendar/core/component/Component';
1001
    import { EventRenderRange } from '@fullcalendar/core/component/event-rendering';
1002
    import { DateSpan } from '@fullcalendar/core/structs/date-span';
1003
    import { EventInstanceHash } from '@fullcalendar/core/structs/event';
1004
    import { Hit } from '@fullcalendar/core/interactions/hit';
1005
    import FgEventRenderer from '@fullcalendar/core/component/renderers/FgEventRenderer';
1006
    import FillRenderer from '@fullcalendar/core/component/renderers/FillRenderer';
1007
    import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state';
1008
    export type DateComponentHash = {
1009
        [uid: string]: DateComponent<any>;
1010
    };
1011
    export interface Seg {
1012
        component?: DateComponent<any>;
1013
        isStart: boolean;
1014
        isEnd: boolean;
1015
        eventRange?: EventRenderRange;
1016
        el?: HTMLElement;
1017
        [otherProp: string]: any;
1018
    }
1019
    export interface EventSegUiInteractionState {
1020
        affectedInstances: EventInstanceHash;
1021
        segs: Seg[];
1022
        isEvent: boolean;
1023
        sourceSeg: any;
1024
    }
1025
    export { DateComponent as default, DateComponent };
1026
    class DateComponent<PropsType> extends Component<PropsType> {
1027
        fgSegSelector: string;
1028
        bgSegSelector: string;
1029
        largeUnit: any;
1030
        eventRenderer: FgEventRenderer;
1031
        mirrorRenderer: FgEventRenderer;
1032
        fillRenderer: FillRenderer;
1033
        el: HTMLElement;
1034
        constructor(el: HTMLElement);
1035
        destroy(): void;
1036
        buildPositionCaches(): void;
1037
        queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit | null;
1038
        isInteractionValid(interaction: EventInteractionState): boolean;
1039
        isDateSelectionValid(selection: DateSpan): boolean;
1040
        isValidSegDownEl(el: HTMLElement): boolean;
1041
        isValidDateDownEl(el: HTMLElement): boolean;
1042
        isPopover(): boolean;
1043
        isInPopover(el: HTMLElement): boolean;
1044
    }
1045
}
1046
1047
declare module '@fullcalendar/core/Calendar' {
1048
    import { EmitterInterface } from '@fullcalendar/core/common/EmitterMixin';
1049
    import OptionsManager from '@fullcalendar/core/OptionsManager';
1050
    import View from '@fullcalendar/core/View';
1051
    import Theme from '@fullcalendar/core/theme/Theme';
1052
    import { OptionsInput, EventHandlerName, EventHandlerArgs } from '@fullcalendar/core/types/input-types';
1053
    import { RawLocaleMap } from '@fullcalendar/core/datelib/locale';
1054
    import { DateEnv, DateInput } from '@fullcalendar/core/datelib/env';
1055
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
1056
    import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration';
1057
    import { DateSpan, DateSpanApi, DatePointApi } from '@fullcalendar/core/structs/date-span';
1058
    import { DateRangeInput } from '@fullcalendar/core/datelib/date-range';
1059
    import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator';
1060
    import { EventSourceInput } from '@fullcalendar/core/structs/event-source';
1061
    import { EventInput } from '@fullcalendar/core/structs/event';
1062
    import { CalendarState, Action } from '@fullcalendar/core/reducers/types';
1063
    import EventSourceApi from '@fullcalendar/core/api/EventSourceApi';
1064
    import EventApi from '@fullcalendar/core/api/EventApi';
1065
    import { EventStore } from '@fullcalendar/core/structs/event-store';
1066
    import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui';
1067
    import { ViewSpecHash, ViewSpec } from '@fullcalendar/core/structs/view-spec';
1068
    import { PluginSystem } from '@fullcalendar/core/plugin-system';
1069
    import CalendarComponent from '@fullcalendar/core/CalendarComponent';
1070
    import DateComponent from '@fullcalendar/core/component/DateComponent';
1071
    import { PointerDragEvent } from '@fullcalendar/core/interactions/pointer';
1072
    import { InteractionSettingsInput, Interaction } from '@fullcalendar/core/interactions/interaction';
1073
    export interface DateClickApi extends DatePointApi {
1074
        dayEl: HTMLElement;
1075
        jsEvent: UIEvent;
1076
        view: View;
1077
    }
1078
    export interface DateSelectionApi extends DateSpanApi {
1079
        jsEvent: UIEvent;
1080
        view: View;
1081
    }
1082
    export type DatePointTransform = (dateSpan: DateSpan, calendar: Calendar) => any;
1083
    export type DateSpanTransform = (dateSpan: DateSpan, calendar: Calendar) => any;
1084
    export type CalendarInteraction = {
1085
        destroy(): any;
1086
    };
1087
    export type CalendarInteractionClass = {
1088
        new (calendar: Calendar): CalendarInteraction;
1089
    };
1090
    export type OptionChangeHandler = (propValue: any, calendar: Calendar, deepEqual: any) => void;
1091
    export type OptionChangeHandlerMap = {
1092
        [propName: string]: OptionChangeHandler;
1093
    };
1094
    export { Calendar as default, Calendar };
1095
    class Calendar {
1096
        static on: EmitterInterface['on'];
1097
        static off: EmitterInterface['off'];
1098
        static trigger: EmitterInterface['trigger'];
1099
        on: EmitterInterface['on'];
1100
        one: EmitterInterface['one'];
1101
        off: EmitterInterface['off'];
1102
        trigger: EmitterInterface['trigger'];
1103
        triggerWith: EmitterInterface['triggerWith'];
1104
        hasHandlers: EmitterInterface['hasHandlers'];
1105
        eventUiBases: EventUiHash;
1106
        selectionConfig: EventUi;
1107
        optionsManager: OptionsManager;
1108
        viewSpecs: ViewSpecHash;
1109
        dateProfileGenerators: {
1110
            [viewName: string]: DateProfileGenerator;
1111
        };
1112
        theme: Theme;
1113
        dateEnv: DateEnv;
1114
        availableRawLocales: RawLocaleMap;
1115
        pluginSystem: PluginSystem;
1116
        defaultAllDayEventDuration: Duration;
1117
        defaultTimedEventDuration: Duration;
1118
        calendarInteractions: CalendarInteraction[];
1119
        interactionsStore: {
1120
            [componentUid: string]: Interaction[];
1121
        };
1122
        removeNavLinkListener: any;
1123
        windowResizeProxy: any;
1124
        isHandlingWindowResize: boolean;
1125
        state: CalendarState;
1126
        actionQueue: any[];
1127
        isReducing: boolean;
1128
        needsRerender: boolean;
1129
        isRendering: boolean;
1130
        renderingPauseDepth: number;
1131
        renderableEventStore: EventStore;
1132
        buildDelayedRerender: typeof buildDelayedRerender;
1133
        delayedRerender: any;
1134
        afterSizingTriggers: any;
1135
        isViewUpdated: boolean;
1136
        isDatesUpdated: boolean;
1137
        isEventsUpdated: boolean;
1138
        el: HTMLElement;
1139
        component: CalendarComponent;
1140
        constructor(el: HTMLElement, overrides?: OptionsInput);
1141
        addPluginInputs(pluginInputs: any): void;
1142
        readonly view: View;
1143
        render(): void;
1144
        destroy(): void;
1145
        bindHandlers(): void;
1146
        unbindHandlers(): void;
1147
        hydrate(): void;
1148
        buildInitialState(): CalendarState;
1149
        reduce(state: CalendarState, action: Action, calendar: Calendar): CalendarState;
1150
        requestRerender(): void;
1151
        tryRerender(): void;
1152
        batchRendering(func: any): void;
1153
        executeRender(): void;
1154
        renderComponent(): void;
1155
        setOption(name: string, val: any): void;
1156
        getOption(name: string): any;
1157
        opt(name: string): any;
1158
        viewOpt(name: string): any;
1159
        viewOpts(): any;
1160
        mutateOptions(updates: any, removals: string[], isDynamic?: boolean, deepEqual?: any): void;
1161
        handleOptions(options: any): void;
1162
        getAvailableLocaleCodes(): string[];
1163
        _buildSelectionConfig(rawOpts: any): EventUi;
1164
        _buildEventUiSingleBase(rawOpts: any): EventUi;
1165
        hasPublicHandlers<T extends EventHandlerName>(name: T): boolean;
1166
        publiclyTrigger<T extends EventHandlerName>(name: T, args?: EventHandlerArgs<T>): any;
1167
        publiclyTriggerAfterSizing<T extends EventHandlerName>(name: T, args: EventHandlerArgs<T>): void;
1168
        releaseAfterSizingTriggers(): void;
1169
        isValidViewType(viewType: string): boolean;
1170
        changeView(viewType: string, dateOrRange?: DateRangeInput | DateInput): void;
1171
        zoomTo(dateMarker: DateMarker, viewType?: string): void;
1172
        getUnitViewSpec(unit: string): ViewSpec | null;
1173
        getInitialDate(): Date;
1174
        prev(): void;
1175
        next(): void;
1176
        prevYear(): void;
1177
        nextYear(): void;
1178
        today(): void;
1179
        gotoDate(zonedDateInput: any): void;
1180
        incrementDate(deltaInput: any): void;
1181
        getDate(): Date;
1182
        formatDate(d: DateInput, formatter: any): string;
1183
        formatRange(d0: DateInput, d1: DateInput, settings: any): any;
1184
        formatIso(d: DateInput, omitTime?: boolean): string;
1185
        windowResize(ev: Event): void;
1186
        updateSize(): void;
1187
        registerInteractiveComponent(component: DateComponent<any>, settingsInput: InteractionSettingsInput): void;
1188
        unregisterInteractiveComponent(component: DateComponent<any>): void;
1189
        select(dateOrObj: DateInput | any, endDate?: DateInput): void;
1190
        unselect(pev?: PointerDragEvent): void;
1191
        triggerDateSelect(selection: DateSpan, pev?: PointerDragEvent): void;
1192
        triggerDateUnselect(pev?: PointerDragEvent): void;
1193
        triggerDateClick(dateSpan: DateSpan, dayEl: HTMLElement, view: View, ev: UIEvent): void;
1194
        buildDatePointApi(dateSpan: DateSpan): import("@fullcalendar/core/structs/date-span").DatePointApi;
1195
        buildDateSpanApi(dateSpan: DateSpan): import("@fullcalendar/core/structs/date-span").DateSpanApi;
1196
        getNow(): DateMarker;
1197
        getDefaultEventEnd(allDay: boolean, marker: DateMarker): DateMarker;
1198
        addEvent(eventInput: EventInput, sourceInput?: EventSourceApi | string | number): EventApi | null;
1199
        getEventById(id: string): EventApi | null;
1200
        getEvents(): EventApi[];
1201
        removeAllEvents(): void;
1202
        rerenderEvents(): void;
1203
        getEventSources(): EventSourceApi[];
1204
        getEventSourceById(id: string | number): EventSourceApi | null;
1205
        addEventSource(sourceInput: EventSourceInput): EventSourceApi;
1206
        removeAllEventSources(): void;
1207
        refetchEvents(): void;
1208
        scrollToTime(timeInput: DurationInput): void;
1209
    }
1210
    function buildDelayedRerender(this: Calendar, wait: any): any;
1211
    export {};
1212
}
1213
1214
declare module '@fullcalendar/core/View' {
1215
    import DateProfileGenerator, { DateProfile } from '@fullcalendar/core/DateProfileGenerator';
1216
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
1217
    import { Duration } from '@fullcalendar/core/datelib/duration';
1218
    import { EmitterInterface } from '@fullcalendar/core/common/EmitterMixin';
1219
    import { ViewSpec } from '@fullcalendar/core/structs/view-spec';
1220
    import DateComponent from '@fullcalendar/core/component/DateComponent';
1221
    import { EventStore } from '@fullcalendar/core/structs/event-store';
1222
    import { EventUiHash } from '@fullcalendar/core/component/event-ui';
1223
    import { EventRenderRange } from '@fullcalendar/core/component/event-rendering';
1224
    import { DateSpan } from '@fullcalendar/core/structs/date-span';
1225
    import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state';
1226
    import { ComponentContext } from '@fullcalendar/core/component/Component';
1227
    export interface ViewProps {
1228
        dateProfileGenerator: DateProfileGenerator;
1229
        dateProfile: DateProfile;
1230
        businessHours: EventStore;
1231
        eventStore: EventStore;
1232
        eventUiBases: EventUiHash;
1233
        dateSelection: DateSpan | null;
1234
        eventSelection: string;
1235
        eventDrag: EventInteractionState | null;
1236
        eventResize: EventInteractionState | null;
1237
    }
1238
    export { View as default, View };
1239
    abstract class View extends DateComponent<ViewProps> {
1240
        usesMinMaxTime: boolean;
1241
        dateProfileGeneratorClass: any;
1242
        on: EmitterInterface['on'];
1243
        one: EmitterInterface['one'];
1244
        off: EmitterInterface['off'];
1245
        trigger: EmitterInterface['trigger'];
1246
        triggerWith: EmitterInterface['triggerWith'];
1247
        hasHandlers: EmitterInterface['hasHandlers'];
1248
        viewSpec: ViewSpec;
1249
        type: string;
1250
        title: string;
1251
        queuedScroll: any;
1252
        isNowIndicatorRendered: boolean;
1253
        initialNowDate: DateMarker;
1254
        initialNowQueriedMs: number;
1255
        nowIndicatorTimeoutID: any;
1256
        nowIndicatorIntervalID: any;
1257
        constructor(viewSpec: ViewSpec, parentEl: HTMLElement);
1258
        initialize(): void;
1259
        readonly activeStart: Date;
1260
        readonly activeEnd: Date;
1261
        readonly currentStart: Date;
1262
        readonly currentEnd: Date;
1263
        render(props: ViewProps, context: ComponentContext): void;
1264
        beforeUpdate(): void;
1265
        destroy(): void;
1266
        updateSize(isResize: boolean, viewHeight: number, isAuto: boolean): void;
1267
        updateBaseSize(isResize: boolean, viewHeight: number, isAuto: boolean): void;
1268
        renderDatesWrap(dateProfile: DateProfile): void;
1269
        unrenderDatesWrap(): void;
1270
        renderDates(dateProfile: DateProfile): void;
1271
        unrenderDates(): void;
1272
        renderBusinessHours(businessHours: EventStore): void;
1273
        unrenderBusinessHours(): void;
1274
        renderDateSelectionWrap(selection: DateSpan): void;
1275
        unrenderDateSelectionWrap(selection: DateSpan): void;
1276
        renderDateSelection(selection: DateSpan): void;
1277
        unrenderDateSelection(selection: DateSpan): void;
1278
        renderEvents(eventStore: EventStore): void;
1279
        unrenderEvents(): void;
1280
        sliceEvents(eventStore: EventStore, allDay: boolean): EventRenderRange[];
1281
        renderEventSelectionWrap(instanceId: string): void;
1282
        unrenderEventSelectionWrap(instanceId: string): void;
1283
        renderEventSelection(instanceId: string): void;
1284
        unrenderEventSelection(instanceId: string): void;
1285
        renderEventDragWrap(state: EventInteractionState): void;
1286
        unrenderEventDragWrap(state: EventInteractionState): void;
1287
        renderEventDrag(state: EventInteractionState): void;
1288
        unrenderEventDrag(state: EventInteractionState): void;
1289
        renderEventResizeWrap(state: EventInteractionState): void;
1290
        unrenderEventResizeWrap(state: EventInteractionState): void;
1291
        renderEventResize(state: EventInteractionState): void;
1292
        unrenderEventResize(state: EventInteractionState): void;
1293
        startNowIndicator(dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator): void;
1294
        updateNowIndicator(): void;
1295
        stopNowIndicator(): void;
1296
        getNowIndicatorUnit(dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator): void;
1297
        renderNowIndicator(date: any): void;
1298
        unrenderNowIndicator(): void;
1299
        addScroll(scroll: any, isForced?: boolean): void;
1300
        popScroll(isResize: boolean): void;
1301
        applyQueuedScroll(isResize: boolean): void;
1302
        queryScroll(): any;
1303
        applyScroll(scroll: any, isResize: boolean): void;
1304
        computeDateScroll(duration: Duration): {};
1305
        queryDateScroll(): {};
1306
        applyDateScroll(scroll: any): void;
1307
        scrollToDuration(duration: Duration): void;
1308
    }
1309
}
1310
1311
declare module '@fullcalendar/core/component/renderers/FgEventRenderer' {
1312
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
1313
    import { DateFormatter } from '@fullcalendar/core/datelib/formatting';
1314
    import { EventUi } from '@fullcalendar/core/component/event-ui';
1315
    import { EventRenderRange } from '@fullcalendar/core/component/event-rendering';
1316
    import { Seg } from '@fullcalendar/core/component/DateComponent';
1317
    import { ComponentContext } from '@fullcalendar/core/component/Component';
1318
    export { FgEventRenderer as default, FgEventRenderer };
1319
    abstract class FgEventRenderer {
1320
        context: ComponentContext;
1321
        eventTimeFormat: DateFormatter;
1322
        displayEventTime: boolean;
1323
        displayEventEnd: boolean;
1324
        segs: Seg[];
1325
        isSizeDirty: boolean;
1326
        renderSegs(context: ComponentContext, segs: Seg[], mirrorInfo?: any): void;
1327
        unrender(context: ComponentContext, _segs: Seg[], mirrorInfo?: any): void;
1328
        abstract renderSegHtml(seg: Seg, mirrorInfo: any): string;
1329
        abstract attachSegs(segs: Seg[], mirrorInfo: any): any;
1330
        abstract detachSegs(segs: Seg[]): any;
1331
        rangeUpdated(): void;
1332
        renderSegEls(segs: Seg[], mirrorInfo: any): Seg[];
1333
        getSegClasses(seg: Seg, isDraggable: any, isResizable: any, mirrorInfo: any): string[];
1334
        getTimeText(eventRange: EventRenderRange, formatter?: any, displayEnd?: any): any;
1335
        _getTimeText(start: DateMarker, end: DateMarker, allDay: any, formatter?: any, displayEnd?: any, forcedStartTzo?: number, forcedEndTzo?: number): any;
1336
        computeEventTimeFormat(): any;
1337
        computeDisplayEventTime(): boolean;
1338
        computeDisplayEventEnd(): boolean;
1339
        getSkinCss(ui: EventUi): {
1340
            'background-color': string;
1341
            'border-color': string;
1342
            color: string;
1343
        };
1344
        sortEventSegs(segs: any): Seg[];
1345
        computeSizes(force: boolean): void;
1346
        assignSizes(force: boolean): void;
1347
        computeSegSizes(segs: Seg[]): void;
1348
        assignSegSizes(segs: Seg[]): void;
1349
        hideByHash(hash: any): void;
1350
        showByHash(hash: any): void;
1351
        selectByInstanceId(instanceId: string): void;
1352
        unselectByInstanceId(instanceId: string): void;
1353
    }
1354
    export function buildSegCompareObj(seg: Seg): any;
1355
}
1356
1357
declare module '@fullcalendar/core/component/renderers/FillRenderer' {
1358
    import { Seg } from '@fullcalendar/core/component/DateComponent';
1359
    import { ComponentContext } from '@fullcalendar/core/component/Component';
1360
    export { FillRenderer as default, FillRenderer };
1361
    abstract class FillRenderer {
1362
        context: ComponentContext;
1363
        fillSegTag: string;
1364
        containerElsByType: any;
1365
        segsByType: any;
1366
        dirtySizeFlags: any;
1367
        constructor();
1368
        getSegsByType(type: string): any;
1369
        renderSegs(type: string, context: ComponentContext, segs: Seg[]): void;
1370
        unrender(type: string, context: ComponentContext): void;
1371
        renderSegEls(type: any, segs: Seg[]): Seg[];
1372
        renderSegHtml(type: any, seg: Seg): string;
1373
        abstract attachSegs(type: any, segs: Seg[]): HTMLElement[] | void;
1374
        detachSegs(type: any, segs: Seg[]): void;
1375
        computeSizes(force: boolean): void;
1376
        assignSizes(force: boolean): void;
1377
        computeSegSizes(segs: Seg[]): void;
1378
        assignSegSizes(segs: Seg[]): void;
1379
    }
1380
}
1381
1382
declare module '@fullcalendar/core/DateProfileGenerator' {
1383
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
1384
    import { Duration } from '@fullcalendar/core/datelib/duration';
1385
    import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range';
1386
    import { ViewSpec } from '@fullcalendar/core/structs/view-spec';
1387
    import { DateEnv } from '@fullcalendar/core/datelib/env';
1388
    import Calendar from '@fullcalendar/core/Calendar';
1389
    export interface DateProfile {
1390
        currentRange: DateRange;
1391
        currentRangeUnit: string;
1392
        isRangeAllDay: boolean;
1393
        validRange: OpenDateRange;
1394
        activeRange: DateRange;
1395
        renderRange: DateRange;
1396
        minTime: Duration;
1397
        maxTime: Duration;
1398
        isValid: boolean;
1399
        dateIncrement: Duration;
1400
    }
1401
    export { DateProfileGenerator as default, DateProfileGenerator };
1402
    class DateProfileGenerator {
1403
        viewSpec: ViewSpec;
1404
        options: any;
1405
        dateEnv: DateEnv;
1406
        calendar: Calendar;
1407
        isHiddenDayHash: boolean[];
1408
        constructor(viewSpec: ViewSpec, calendar: Calendar);
1409
        buildPrev(currentDateProfile: DateProfile, currentDate: DateMarker): DateProfile;
1410
        buildNext(currentDateProfile: DateProfile, currentDate: DateMarker): DateProfile;
1411
        build(currentDate: DateMarker, direction?: any, forceToValid?: boolean): DateProfile;
1412
        buildValidRange(): OpenDateRange;
1413
        buildCurrentRangeInfo(date: DateMarker, direction: any): {
1414
            duration: any;
1415
            unit: any;
1416
            range: any;
1417
        };
1418
        getFallbackDuration(): Duration;
1419
        adjustActiveRange(range: DateRange, minTime: Duration, maxTime: Duration): {
1420
            start: Date;
1421
            end: Date;
1422
        };
1423
        buildRangeFromDuration(date: DateMarker, direction: any, duration: Duration, unit: any): any;
1424
        buildRangeFromDayCount(date: DateMarker, direction: any, dayCount: any): {
1425
            start: Date;
1426
            end: Date;
1427
        };
1428
        buildCustomVisibleRange(date: DateMarker): OpenDateRange;
1429
        buildRenderRange(currentRange: DateRange, currentRangeUnit: any, isRangeAllDay: any): DateRange;
1430
        buildDateIncrement(fallback: any): Duration;
1431
        getRangeOption(name: any, ...otherArgs: any[]): OpenDateRange;
1432
        initHiddenDays(): void;
1433
        trimHiddenDays(range: DateRange): DateRange | null;
1434
        isHiddenDay(day: any): boolean;
1435
        skipHiddenDays(date: DateMarker, inc?: number, isExclusive?: boolean): Date;
1436
    }
1437
    export function isDateProfilesEqual(p0: DateProfile, p1: DateProfile): boolean;
1438
}
1439
1440
declare module '@fullcalendar/core/structs/view-def' {
1441
    import { ViewClass, ViewConfigHash } from '@fullcalendar/core/structs/view-config';
1442
    export interface ViewDef {
1443
        type: string;
1444
        class: ViewClass;
1445
        overrides: any;
1446
        defaults: any;
1447
    }
1448
    export type ViewDefHash = {
1449
        [viewType: string]: ViewDef;
1450
    };
1451
    export function compileViewDefs(defaultConfigs: ViewConfigHash, overrideConfigs: ViewConfigHash): ViewDefHash;
1452
}
1453
1454
declare module '@fullcalendar/core/structs/view-spec' {
1455
    import { Duration } from '@fullcalendar/core/datelib/duration';
1456
    import OptionsManager from '@fullcalendar/core/OptionsManager';
1457
    import { ViewConfigInputHash, ViewClass } from '@fullcalendar/core/structs/view-config';
1458
    export interface ViewSpec {
1459
        type: string;
1460
        class: ViewClass;
1461
        duration: Duration;
1462
        durationUnit: string;
1463
        singleUnit: string;
1464
        options: any;
1465
        buttonTextOverride: string;
1466
        buttonTextDefault: string;
1467
    }
1468
    export type ViewSpecHash = {
1469
        [viewType: string]: ViewSpec;
1470
    };
1471
    export function buildViewSpecs(defaultInputs: ViewConfigInputHash, optionsManager: OptionsManager): ViewSpecHash;
1472
}
1473
1474
declare module '@fullcalendar/core/structs/date-span' {
1475
    import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range';
1476
    import { DateInput, DateEnv } from '@fullcalendar/core/datelib/env';
1477
    import { Duration } from '@fullcalendar/core/datelib/duration';
1478
    import { EventRenderRange } from '@fullcalendar/core/component/event-rendering';
1479
    import { EventUiHash } from '@fullcalendar/core/component/event-ui';
1480
    import Calendar from '@fullcalendar/core/Calendar';
1481
    export interface OpenDateSpanInput {
1482
        start?: DateInput;
1483
        end?: DateInput;
1484
        allDay?: boolean;
1485
        [otherProp: string]: any;
1486
    }
1487
    export interface DateSpanInput extends OpenDateSpanInput {
1488
        start: DateInput;
1489
        end: DateInput;
1490
    }
1491
    export interface OpenDateSpan {
1492
        range: OpenDateRange;
1493
        allDay: boolean;
1494
        [otherProp: string]: any;
1495
    }
1496
    export interface DateSpan extends OpenDateSpan {
1497
        range: DateRange;
1498
    }
1499
    export interface DateSpanApi {
1500
        start: Date;
1501
        end: Date;
1502
        startStr: string;
1503
        endStr: string;
1504
        allDay: boolean;
1505
    }
1506
    export interface DatePointApi {
1507
        date: Date;
1508
        dateStr: string;
1509
        allDay: boolean;
1510
    }
1511
    export function parseDateSpan(raw: DateSpanInput, dateEnv: DateEnv, defaultDuration?: Duration): DateSpan | null;
1512
    export function parseOpenDateSpan(raw: OpenDateSpanInput, dateEnv: DateEnv): OpenDateSpan | null;
1513
    export function isDateSpansEqual(span0: DateSpan, span1: DateSpan): boolean;
1514
    export function buildDateSpanApi(span: DateSpan, dateEnv: DateEnv): DateSpanApi;
1515
    export function buildDatePointApi(span: DateSpan, dateEnv: DateEnv): DatePointApi;
1516
    export function fabricateEventRange(dateSpan: DateSpan, eventUiBases: EventUiHash, calendar: Calendar): EventRenderRange;
1517
}
1518
1519
declare module '@fullcalendar/core/datelib/marker' {
1520
    import { Duration } from '@fullcalendar/core/datelib/duration';
1521
    export type DateMarker = Date;
1522
    export const DAY_IDS: string[];
1523
    export function addWeeks(m: DateMarker, n: number): Date;
1524
    export function addDays(m: DateMarker, n: number): Date;
1525
    export function addMs(m: DateMarker, n: number): Date;
1526
    export function diffWeeks(m0: any, m1: any): number;
1527
    export function diffDays(m0: any, m1: any): number;
1528
    export function diffHours(m0: any, m1: any): number;
1529
    export function diffMinutes(m0: any, m1: any): number;
1530
    export function diffSeconds(m0: any, m1: any): number;
1531
    export function diffDayAndTime(m0: DateMarker, m1: DateMarker): Duration;
1532
    export function diffWholeWeeks(m0: DateMarker, m1: DateMarker): number;
1533
    export function diffWholeDays(m0: DateMarker, m1: DateMarker): number;
1534
    export function startOfDay(m: DateMarker): DateMarker;
1535
    export function startOfHour(m: DateMarker): Date;
1536
    export function startOfMinute(m: DateMarker): Date;
1537
    export function startOfSecond(m: DateMarker): Date;
1538
    export function weekOfYear(marker: any, dow: any, doy: any): number;
1539
    export function dateToLocalArray(date: any): any[];
1540
    export function arrayToLocalDate(a: any): Date;
1541
    export function dateToUtcArray(date: any): any[];
1542
    export function arrayToUtcDate(a: any): Date;
1543
    export function isValidDate(m: DateMarker): boolean;
1544
    export function timeAsMs(m: DateMarker): number;
1545
}
1546
1547
declare module '@fullcalendar/core/datelib/duration' {
1548
    export type DurationInput = DurationObjectInput | string | number;
1549
    export interface DurationObjectInput {
1550
        years?: number;
1551
        year?: number;
1552
        months?: number;
1553
        month?: number;
1554
        weeks?: number;
1555
        week?: number;
1556
        days?: number;
1557
        day?: number;
1558
        hours?: number;
1559
        hour?: number;
1560
        minutes?: number;
1561
        minute?: number;
1562
        seconds?: number;
1563
        second?: number;
1564
        milliseconds?: number;
1565
        millisecond?: number;
1566
        ms?: number;
1567
    }
1568
    export interface Duration {
1569
        years: number;
1570
        months: number;
1571
        days: number;
1572
        milliseconds: number;
1573
    }
1574
    export function createDuration(input: DurationInput, unit?: string): Duration | null;
1575
    export function getWeeksFromInput(obj: DurationObjectInput): number;
1576
    export function durationsEqual(d0: Duration, d1: Duration): boolean;
1577
    export function isSingleDay(dur: Duration): boolean;
1578
    export function addDurations(d0: Duration, d1: Duration): {
1579
        years: number;
1580
        months: number;
1581
        days: number;
1582
        milliseconds: number;
1583
    };
1584
    export function subtractDurations(d1: Duration, d0: Duration): Duration;
1585
    export function multiplyDuration(d: Duration, n: number): {
1586
        years: number;
1587
        months: number;
1588
        days: number;
1589
        milliseconds: number;
1590
    };
1591
    export function asRoughYears(dur: Duration): number;
1592
    export function asRoughMonths(dur: Duration): number;
1593
    export function asRoughDays(dur: Duration): number;
1594
    export function asRoughHours(dur: Duration): number;
1595
    export function asRoughMinutes(dur: Duration): number;
1596
    export function asRoughSeconds(dur: Duration): number;
1597
    export function asRoughMs(dur: Duration): number;
1598
    export function wholeDivideDurations(numerator: Duration, denominator: Duration): number;
1599
    export function greatestDurationDenominator(dur: Duration, dontReturnWeeks?: boolean): {
1600
        unit: string;
1601
        value: number;
1602
    };
1603
}
1604
1605
declare module '@fullcalendar/core/datelib/env' {
1606
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
1607
    import { CalendarSystem } from '@fullcalendar/core/datelib/calendar-system';
1608
    import { Locale } from '@fullcalendar/core/datelib/locale';
1609
    import { NamedTimeZoneImpl, NamedTimeZoneImplClass } from '@fullcalendar/core/datelib/timezone';
1610
    import { Duration } from '@fullcalendar/core/datelib/duration';
1611
    import { DateFormatter } from '@fullcalendar/core/datelib/formatting';
1612
    import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd';
1613
    export interface DateEnvSettings {
1614
        timeZone: string;
1615
        namedTimeZoneImpl?: NamedTimeZoneImplClass;
1616
        calendarSystem: string;
1617
        locale: Locale;
1618
        weekNumberCalculation?: any;
1619
        firstDay?: any;
1620
        weekLabel?: string;
1621
        cmdFormatter?: CmdFormatterFunc;
1622
    }
1623
    export type DateInput = Date | string | number | number[];
1624
    export interface DateMarkerMeta {
1625
        marker: DateMarker;
1626
        isTimeUnspecified: boolean;
1627
        forcedTzo: number | null;
1628
    }
1629
    export class DateEnv {
1630
        timeZone: string;
1631
        namedTimeZoneImpl: NamedTimeZoneImpl;
1632
        canComputeOffset: boolean;
1633
        calendarSystem: CalendarSystem;
1634
        locale: Locale;
1635
        weekDow: number;
1636
        weekDoy: number;
1637
        weekNumberFunc: any;
1638
        weekLabel: string;
1639
        cmdFormatter?: CmdFormatterFunc;
1640
        constructor(settings: DateEnvSettings);
1641
        createMarker(input: DateInput): DateMarker;
1642
        createNowMarker(): DateMarker;
1643
        createMarkerMeta(input: DateInput): DateMarkerMeta;
1644
        parse(s: string): {
1645
            marker: Date;
1646
            isTimeUnspecified: boolean;
1647
            forcedTzo: any;
1648
        };
1649
        getYear(marker: DateMarker): number;
1650
        getMonth(marker: DateMarker): number;
1651
        add(marker: DateMarker, dur: Duration): DateMarker;
1652
        subtract(marker: DateMarker, dur: Duration): DateMarker;
1653
        addYears(marker: DateMarker, n: number): Date;
1654
        addMonths(marker: DateMarker, n: number): Date;
1655
        diffWholeYears(m0: DateMarker, m1: DateMarker): number;
1656
        diffWholeMonths(m0: DateMarker, m1: DateMarker): number;
1657
        greatestWholeUnit(m0: DateMarker, m1: DateMarker): {
1658
            unit: string;
1659
            value: number;
1660
        };
1661
        countDurationsBetween(m0: DateMarker, m1: DateMarker, d: Duration): number;
1662
        startOf(m: DateMarker, unit: string): Date;
1663
        startOfYear(m: DateMarker): DateMarker;
1664
        startOfMonth(m: DateMarker): DateMarker;
1665
        startOfWeek(m: DateMarker): DateMarker;
1666
        computeWeekNumber(marker: DateMarker): number;
1667
        format(marker: DateMarker, formatter: DateFormatter, dateOptions?: {
1668
            forcedTzo?: number;
1669
        }): any;
1670
        formatRange(start: DateMarker, end: DateMarker, formatter: DateFormatter, dateOptions?: {
1671
            forcedStartTzo?: number;
1672
            forcedEndTzo?: number;
1673
            isEndExclusive?: boolean;
1674
        }): any;
1675
        formatIso(marker: DateMarker, extraOptions?: any): string;
1676
        timestampToMarker(ms: number): Date;
1677
        offsetForMarker(m: DateMarker): number;
1678
        toDate(m: DateMarker, forcedTzo?: number): Date;
1679
    }
1680
}
1681
1682
declare module '@fullcalendar/core/datelib/formatting' {
1683
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
1684
    import { CalendarSystem } from '@fullcalendar/core/datelib/calendar-system';
1685
    import { Locale } from '@fullcalendar/core/datelib/locale';
1686
    import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd';
1687
    import { FuncFormatterFunc } from '@fullcalendar/core/datelib/formatting-func';
1688
    export interface ZonedMarker {
1689
        marker: DateMarker;
1690
        timeZoneOffset: number;
1691
    }
1692
    export interface ExpandedZonedMarker extends ZonedMarker {
1693
        array: number[];
1694
        year: number;
1695
        month: number;
1696
        day: number;
1697
        hour: number;
1698
        minute: number;
1699
        second: number;
1700
        millisecond: number;
1701
    }
1702
    export interface VerboseFormattingArg {
1703
        date: ExpandedZonedMarker;
1704
        start: ExpandedZonedMarker;
1705
        end?: ExpandedZonedMarker;
1706
        timeZone: string;
1707
        localeCodes: string[];
1708
        separator: string;
1709
    }
1710
    export interface DateFormattingContext {
1711
        timeZone: string;
1712
        locale: Locale;
1713
        calendarSystem: CalendarSystem;
1714
        computeWeekNumber: (d: DateMarker) => number;
1715
        weekLabel: string;
1716
        cmdFormatter?: CmdFormatterFunc;
1717
    }
1718
    export interface DateFormatter {
1719
        format(date: ZonedMarker, context: DateFormattingContext): any;
1720
        formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): any;
1721
    }
1722
    export type FormatterInput = object | string | FuncFormatterFunc;
1723
    export function createFormatter(input: FormatterInput, defaultSeparator?: string): DateFormatter;
1724
    export function buildIsoString(marker: DateMarker, timeZoneOffset?: number, stripZeroTime?: boolean): string;
1725
    export function formatIsoTimeString(marker: DateMarker): string;
1726
    export function formatTimeZoneOffset(minutes: number, doIso?: boolean): string;
1727
    export function createVerboseFormattingArg(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext, separator?: string): VerboseFormattingArg;
1728
}
1729
1730
declare module '@fullcalendar/core/datelib/timezone' {
1731
    export abstract class NamedTimeZoneImpl {
1732
        timeZoneName: string;
1733
        constructor(timeZoneName: string);
1734
        abstract offsetForArray(a: number[]): number;
1735
        abstract timestampToArray(ms: number): number[];
1736
    }
1737
    export type NamedTimeZoneImplClass = {
1738
        new (timeZoneName: string): NamedTimeZoneImpl;
1739
    };
1740
}
1741
1742
declare module '@fullcalendar/core/datelib/parsing' {
1743
    export function parse(str: any): {
1744
        marker: Date;
1745
        isTimeUnspecified: boolean;
1746
        timeZoneOffset: any;
1747
    };
1748
}
1749
1750
declare module '@fullcalendar/core/structs/event-source' {
1751
    import { EventInput } from '@fullcalendar/core/structs/event';
1752
    import Calendar from '@fullcalendar/core/Calendar';
1753
    import { DateRange } from '@fullcalendar/core/datelib/date-range';
1754
    import { EventSourceFunc } from '@fullcalendar/core/event-sources/func-event-source';
1755
    import { EventUi } from '@fullcalendar/core/component/event-ui';
1756
    import { ConstraintInput, AllowFunc } from '@fullcalendar/core/validation';
1757
    export type EventSourceError = {
1758
        message: string;
1759
        response?: any;
1760
        [otherProp: string]: any;
1761
    };
1762
    export type EventInputTransformer = (eventInput: EventInput) => EventInput | null;
1763
    export type EventSourceSuccessResponseHandler = (rawData: any, response: any) => EventInput[] | void;
1764
    export type EventSourceErrorResponseHandler = (error: EventSourceError) => void;
1765
    export interface ExtendedEventSourceInput {
1766
        id?: string | number;
1767
        allDayDefault?: boolean;
1768
        eventDataTransform?: EventInputTransformer;
1769
        events?: EventInput[] | EventSourceFunc;
1770
        url?: string;
1771
        method?: string;
1772
        extraParams?: object | (() => object);
1773
        startParam?: string;
1774
        endParam?: string;
1775
        timeZoneParam?: string;
1776
        success?: EventSourceSuccessResponseHandler;
1777
        failure?: EventSourceErrorResponseHandler;
1778
        editable?: boolean;
1779
        startEditable?: boolean;
1780
        durationEditable?: boolean;
1781
        constraint?: ConstraintInput;
1782
        overlap?: boolean;
1783
        allow?: AllowFunc;
1784
        className?: string[] | string;
1785
        classNames?: string[] | string;
1786
        backgroundColor?: string;
1787
        borderColor?: string;
1788
        textColor?: string;
1789
        color?: string;
1790
        [otherProp: string]: any;
1791
    }
1792
    export type EventSourceInput = ExtendedEventSourceInput | // object in extended form
1793
    EventSourceFunc | // just a function
1794
    string;
1795
    export interface EventSource {
1796
        _raw: any;
1797
        sourceId: string;
1798
        sourceDefId: number;
1799
        meta: any;
1800
        publicId: string;
1801
        isFetching: boolean;
1802
        latestFetchId: string;
1803
        fetchRange: DateRange | null;
1804
        allDayDefault: boolean | null;
1805
        eventDataTransform: EventInputTransformer;
1806
        ui: EventUi;
1807
        success: EventSourceSuccessResponseHandler | null;
1808
        failure: EventSourceErrorResponseHandler | null;
1809
        extendedProps: any;
1810
    }
1811
    export type EventSourceHash = {
1812
        [sourceId: string]: EventSource;
1813
    };
1814
    export type EventSourceFetcher = (arg: {
1815
        eventSource: EventSource;
1816
        calendar: Calendar;
1817
        range: DateRange;
1818
    }, success: (res: {
1819
        rawEvents: EventInput[];
1820
        xhr?: XMLHttpRequest;
1821
    }) => void, failure: (error: EventSourceError) => void) => (void | PromiseLike<EventInput[]>);
1822
    export interface EventSourceDef {
1823
        ignoreRange?: boolean;
1824
        parseMeta: (raw: EventSourceInput) => object | null;
1825
        fetch: EventSourceFetcher;
1826
    }
1827
    export function doesSourceNeedRange(eventSource: EventSource, calendar: Calendar): boolean;
1828
    export function parseEventSource(raw: EventSourceInput, calendar: Calendar): EventSource | null;
1829
}
1830
1831
declare module '@fullcalendar/core/interactions/interaction' {
1832
    import DateComponent from '@fullcalendar/core/component/DateComponent';
1833
    export abstract class Interaction {
1834
        component: DateComponent<any>;
1835
        constructor(settings: InteractionSettings);
1836
        destroy(): void;
1837
    }
1838
    export type InteractionClass = {
1839
        new (settings: InteractionSettings): Interaction;
1840
    };
1841
    export interface InteractionSettingsInput {
1842
        el: HTMLElement;
1843
        useEventCenter?: boolean;
1844
    }
1845
    export interface InteractionSettings {
1846
        component: DateComponent<any>;
1847
        el: HTMLElement;
1848
        useEventCenter: boolean;
1849
    }
1850
    export type InteractionSettingsStore = {
1851
        [componenUid: string]: InteractionSettings;
1852
    };
1853
    export function parseInteractionSettings(component: DateComponent<any>, input: InteractionSettingsInput): InteractionSettings;
1854
    export function interactionSettingsToStore(settings: InteractionSettings): {
1855
        [x: string]: InteractionSettings;
1856
    };
1857
    export let interactionSettingsStore: InteractionSettingsStore;
1858
}
1859
1860
declare module '@fullcalendar/core/interactions/pointer' {
1861
    export interface PointerDragEvent {
1862
        origEvent: UIEvent;
1863
        isTouch: boolean;
1864
        subjectEl: EventTarget;
1865
        pageX: number;
1866
        pageY: number;
1867
        deltaX: number;
1868
        deltaY: number;
1869
    }
1870
}
1871
1872
declare module '@fullcalendar/core/interactions/hit' {
1873
    import DateComponent from '@fullcalendar/core/component/DateComponent';
1874
    import { DateSpan } from '@fullcalendar/core/structs/date-span';
1875
    import { Rect } from '@fullcalendar/core/util/geom';
1876
    export interface Hit {
1877
        component: DateComponent<any>;
1878
        dateSpan: DateSpan;
1879
        dayEl: HTMLElement;
1880
        rect: Rect;
1881
        layer: number;
1882
    }
1883
}
1884
1885
declare module '@fullcalendar/core/interactions/date-selecting' {
1886
    import { Hit } from '@fullcalendar/core/interactions/hit';
1887
    export type dateSelectionJoinTransformer = (hit0: Hit, hit1: Hit) => any;
1888
}
1889
1890
declare module '@fullcalendar/core/interactions/event-dragging' {
1891
    import Calendar from '@fullcalendar/core/Calendar';
1892
    import { EventMutation } from '@fullcalendar/core/structs/event-mutation';
1893
    import { Hit } from '@fullcalendar/core/interactions/hit';
1894
    import { EventDef } from '@fullcalendar/core/structs/event';
1895
    import { EventUi } from '@fullcalendar/core/component/event-ui';
1896
    import { View } from '@fullcalendar/core';
1897
    export type eventDragMutationMassager = (mutation: EventMutation, hit0: Hit, hit1: Hit) => void;
1898
    export type EventDropTransformers = (mutation: EventMutation, calendar: Calendar) => any;
1899
    export type eventIsDraggableTransformer = (val: boolean, eventDef: EventDef, eventUi: EventUi, view: View) => boolean;
1900
}
1901
1902
declare module '@fullcalendar/core/interactions/event-resizing' {
1903
    import { Hit } from '@fullcalendar/core/interactions/hit';
1904
    export type EventResizeJoinTransforms = (hit0: Hit, hit1: Hit) => false | object;
1905
}
1906
1907
declare module '@fullcalendar/core/interactions/ElementDragging' {
1908
    import EmitterMixin from '@fullcalendar/core/common/EmitterMixin';
1909
    export { ElementDragging as default, ElementDragging };
1910
    abstract class ElementDragging {
1911
        emitter: EmitterMixin;
1912
        constructor(el: HTMLElement);
1913
        destroy(): void;
1914
        abstract setIgnoreMove(bool: boolean): void;
1915
        setMirrorIsVisible(bool: boolean): void;
1916
        setMirrorNeedsRevert(bool: boolean): void;
1917
        setAutoScrollEnabled(bool: boolean): void;
1918
    }
1919
    export type ElementDraggingClass = {
1920
        new (el: HTMLElement): ElementDragging;
1921
    };
1922
}
1923
1924
declare module '@fullcalendar/core/formatting-api' {
1925
    import { DateInput } from '@fullcalendar/core/datelib/env';
1926
    export function formatDate(dateInput: DateInput, settings?: {}): any;
1927
    export function formatRange(startInput: DateInput, endInput: DateInput, settings: any): any;
1928
}
1929
1930
declare module '@fullcalendar/core/options' {
1931
    import { PluginDef } from '@fullcalendar/core/plugin-system';
1932
    export const config: any;
1933
    export const globalDefaults: {
1934
        defaultRangeSeparator: string;
1935
        titleRangeSeparator: string;
1936
        defaultTimedEventDuration: string;
1937
        defaultAllDayEventDuration: {
1938
            day: number;
1939
        };
1940
        forceEventDuration: boolean;
1941
        nextDayThreshold: string;
1942
        columnHeader: boolean;
1943
        defaultView: string;
1944
        aspectRatio: number;
1945
        header: {
1946
            left: string;
1947
            center: string;
1948
            right: string;
1949
        };
1950
        weekends: boolean;
1951
        weekNumbers: boolean;
1952
        weekNumberCalculation: string;
1953
        editable: boolean;
1954
        scrollTime: string;
1955
        minTime: string;
1956
        maxTime: string;
1957
        showNonCurrentDates: boolean;
1958
        lazyFetching: boolean;
1959
        startParam: string;
1960
        endParam: string;
1961
        timeZoneParam: string;
1962
        timeZone: string;
1963
        locales: any[];
1964
        locale: string;
1965
        timeGridEventMinHeight: number;
1966
        themeSystem: string;
1967
        dragRevertDuration: number;
1968
        dragScroll: boolean;
1969
        allDayMaintainDuration: boolean;
1970
        unselectAuto: boolean;
1971
        dropAccept: string;
1972
        eventOrder: string;
1973
        eventLimit: boolean;
1974
        eventLimitClick: string;
1975
        dayPopoverFormat: {
1976
            month: string;
1977
            day: string;
1978
            year: string;
1979
        };
1980
        handleWindowResize: boolean;
1981
        windowResizeDelay: number;
1982
        longPressDelay: number;
1983
        eventDragMinDistance: number;
1984
    };
1985
    export const rtlDefaults: {
1986
        header: {
1987
            left: string;
1988
            center: string;
1989
            right: string;
1990
        };
1991
        buttonIcons: {
1992
            prev: string;
1993
            next: string;
1994
            prevYear: string;
1995
            nextYear: string;
1996
        };
1997
    };
1998
    export function mergeOptions(optionObjs: any): any;
1999
    export function refinePluginDefs(pluginInputs: any[]): PluginDef[];
2000
}
2001
2002
declare module '@fullcalendar/core/structs/recurring-event' {
2003
    import { EventInput, EventDef } from '@fullcalendar/core/structs/event';
2004
    import { DateRange } from '@fullcalendar/core/datelib/date-range';
2005
    import { DateEnv } from '@fullcalendar/core/datelib/env';
2006
    import { Duration } from '@fullcalendar/core/datelib/duration';
2007
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
2008
    export interface ParsedRecurring {
2009
        typeData: any;
2010
        allDayGuess: boolean | null;
2011
        duration: Duration | null;
2012
    }
2013
    export interface RecurringType {
2014
        parse: (rawEvent: EventInput, leftoverProps: any, dateEnv: DateEnv) => ParsedRecurring | null;
2015
        expand: (typeData: any, framingRange: DateRange, dateEnv: DateEnv) => DateMarker[];
2016
    }
2017
    export function parseRecurring(eventInput: EventInput, allDayDefault: boolean | null, dateEnv: DateEnv, recurringTypes: RecurringType[], leftovers: any): {
2018
        allDay: any;
2019
        duration: Duration;
2020
        typeData: any;
2021
        typeId: number;
2022
    };
2023
    export function expandRecurringRanges(eventDef: EventDef, duration: Duration, framingRange: DateRange, dateEnv: DateEnv, recurringTypes: RecurringType[]): DateMarker[];
2024
}
2025
2026
declare module '@fullcalendar/core/structs/drag-meta' {
2027
    import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration';
2028
    import { EventNonDateInput } from '@fullcalendar/core/structs/event';
2029
    export interface DragMetaInput extends EventNonDateInput {
2030
        startTime?: DurationInput;
2031
        duration?: DurationInput;
2032
        create?: boolean;
2033
        sourceId?: string;
2034
    }
2035
    export interface DragMeta {
2036
        startTime: Duration | null;
2037
        duration: Duration | null;
2038
        create: boolean;
2039
        sourceId: string;
2040
        leftoverProps: object;
2041
    }
2042
    export function parseDragMeta(raw: DragMetaInput): DragMeta;
2043
}
2044
2045
declare module '@fullcalendar/core/plugin-system' {
2046
    import { reducerFunc } from '@fullcalendar/core/reducers/types';
2047
    import { eventDefParserFunc } from '@fullcalendar/core/structs/event';
2048
    import { eventDefMutationApplier } from '@fullcalendar/core/structs/event-mutation';
2049
    import Calendar, { DatePointTransform, DateSpanTransform, CalendarInteractionClass, OptionChangeHandlerMap } from '@fullcalendar/core/Calendar';
2050
    import { ViewConfigInputHash } from '@fullcalendar/core/structs/view-config';
2051
    import { ViewSpec } from '@fullcalendar/core/structs/view-spec';
2052
    import { ViewProps } from '@fullcalendar/core/View';
2053
    import { CalendarComponentProps } from '@fullcalendar/core/CalendarComponent';
2054
    import { isPropsValidTester } from '@fullcalendar/core/validation';
2055
    import { eventDragMutationMassager, eventIsDraggableTransformer, EventDropTransformers } from '@fullcalendar/core/interactions/event-dragging';
2056
    import { dateSelectionJoinTransformer } from '@fullcalendar/core/interactions/date-selecting';
2057
    import { EventResizeJoinTransforms } from '@fullcalendar/core/interactions/event-resizing';
2058
    import { ExternalDefTransform } from '@fullcalendar/core/interactions/external-element-dragging';
2059
    import { InteractionClass } from '@fullcalendar/core/interactions/interaction';
2060
    import { ThemeClass } from '@fullcalendar/core/theme/Theme';
2061
    import { EventSourceDef } from '@fullcalendar/core/structs/event-source';
2062
    import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd';
2063
    import { RecurringType } from '@fullcalendar/core/structs/recurring-event';
2064
    import { NamedTimeZoneImplClass } from '@fullcalendar/core/datelib/timezone';
2065
    import { ElementDraggingClass } from '@fullcalendar/core/interactions/ElementDragging';
2066
    export interface PluginDefInput {
2067
        deps?: PluginDef[];
2068
        reducers?: reducerFunc[];
2069
        eventDefParsers?: eventDefParserFunc[];
2070
        isDraggableTransformers?: eventIsDraggableTransformer[];
2071
        eventDragMutationMassagers?: eventDragMutationMassager[];
2072
        eventDefMutationAppliers?: eventDefMutationApplier[];
2073
        dateSelectionTransformers?: dateSelectionJoinTransformer[];
2074
        datePointTransforms?: DatePointTransform[];
2075
        dateSpanTransforms?: DateSpanTransform[];
2076
        views?: ViewConfigInputHash;
2077
        viewPropsTransformers?: ViewPropsTransformerClass[];
2078
        isPropsValid?: isPropsValidTester;
2079
        externalDefTransforms?: ExternalDefTransform[];
2080
        eventResizeJoinTransforms?: EventResizeJoinTransforms[];
2081
        viewContainerModifiers?: ViewContainerModifier[];
2082
        eventDropTransformers?: EventDropTransformers[];
2083
        componentInteractions?: InteractionClass[];
2084
        calendarInteractions?: CalendarInteractionClass[];
2085
        themeClasses?: {
2086
            [themeSystemName: string]: ThemeClass;
2087
        };
2088
        eventSourceDefs?: EventSourceDef[];
2089
        cmdFormatter?: CmdFormatterFunc;
2090
        recurringTypes?: RecurringType[];
2091
        namedTimeZonedImpl?: NamedTimeZoneImplClass;
2092
        defaultView?: string;
2093
        elementDraggingImpl?: ElementDraggingClass;
2094
        optionChangeHandlers?: OptionChangeHandlerMap;
2095
    }
2096
    export interface PluginHooks {
2097
        reducers: reducerFunc[];
2098
        eventDefParsers: eventDefParserFunc[];
2099
        isDraggableTransformers: eventIsDraggableTransformer[];
2100
        eventDragMutationMassagers: eventDragMutationMassager[];
2101
        eventDefMutationAppliers: eventDefMutationApplier[];
2102
        dateSelectionTransformers: dateSelectionJoinTransformer[];
2103
        datePointTransforms: DatePointTransform[];
2104
        dateSpanTransforms: DateSpanTransform[];
2105
        views: ViewConfigInputHash;
2106
        viewPropsTransformers: ViewPropsTransformerClass[];
2107
        isPropsValid: isPropsValidTester | null;
2108
        externalDefTransforms: ExternalDefTransform[];
2109
        eventResizeJoinTransforms: EventResizeJoinTransforms[];
2110
        viewContainerModifiers: ViewContainerModifier[];
2111
        eventDropTransformers: EventDropTransformers[];
2112
        componentInteractions: InteractionClass[];
2113
        calendarInteractions: CalendarInteractionClass[];
2114
        themeClasses: {
2115
            [themeSystemName: string]: ThemeClass;
2116
        };
2117
        eventSourceDefs: EventSourceDef[];
2118
        cmdFormatter?: CmdFormatterFunc;
2119
        recurringTypes: RecurringType[];
2120
        namedTimeZonedImpl?: NamedTimeZoneImplClass;
2121
        defaultView: string;
2122
        elementDraggingImpl?: ElementDraggingClass;
2123
        optionChangeHandlers: OptionChangeHandlerMap;
2124
    }
2125
    export interface PluginDef extends PluginHooks {
2126
        id: string;
2127
        deps: PluginDef[];
2128
    }
2129
    export type ViewPropsTransformerClass = new () => ViewPropsTransformer;
2130
    export interface ViewPropsTransformer {
2131
        transform(viewProps: ViewProps, viewSpec: ViewSpec, calendarProps: CalendarComponentProps, allOptions: any): any;
2132
    }
2133
    export type ViewContainerModifier = (contentEl: HTMLElement, calendar: Calendar) => void;
2134
    export function createPlugin(input: PluginDefInput): PluginDef;
2135
    export class PluginSystem {
2136
        hooks: PluginHooks;
2137
        addedHash: {
2138
            [pluginId: string]: true;
2139
        };
2140
        constructor();
2141
        add(plugin: PluginDef): void;
2142
    }
2143
}
2144
2145
declare module '@fullcalendar/core/reducers/types' {
2146
    import { EventInput, EventInstanceHash } from '@fullcalendar/core/structs/event';
2147
    import { DateRange } from '@fullcalendar/core/datelib/date-range';
2148
    import { EventStore } from '@fullcalendar/core/structs/event-store';
2149
    import { EventMutation } from '@fullcalendar/core/structs/event-mutation';
2150
    import { EventSource, EventSourceHash, EventSourceError } from '@fullcalendar/core/structs/event-source';
2151
    import { DateProfile } from '@fullcalendar/core/DateProfileGenerator';
2152
    import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state';
2153
    import { DateSpan } from '@fullcalendar/core/structs/date-span';
2154
    import { DateEnv } from '@fullcalendar/core/datelib/env';
2155
    import Calendar from '@fullcalendar/core/Calendar';
2156
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
2157
    export interface CalendarState {
2158
        eventSources: EventSourceHash;
2159
        eventSourceLoadingLevel: number;
2160
        loadingLevel: number;
2161
        viewType: string;
2162
        currentDate: DateMarker;
2163
        dateProfile: DateProfile | null;
2164
        eventStore: EventStore;
2165
        dateSelection: DateSpan | null;
2166
        eventSelection: string;
2167
        eventDrag: EventInteractionState | null;
2168
        eventResize: EventInteractionState | null;
2169
    }
2170
    export type reducerFunc = (state: CalendarState, action: Action, calendar: Calendar) => CalendarState;
2171
    export type Action = {
2172
        type: 'INIT';
2173
    } | // wont it create another rerender?
2174
    {
2175
        type: 'PREV';
2176
    } | {
2177
        type: 'NEXT';
2178
    } | {
2179
        type: 'SET_DATE';
2180
        dateMarker: DateMarker;
2181
    } | {
2182
        type: 'SET_VIEW_TYPE';
2183
        viewType: string;
2184
        dateMarker?: DateMarker;
2185
    } | {
2186
        type: 'SELECT_DATES';
2187
        selection: DateSpan;
2188
    } | {
2189
        type: 'UNSELECT_DATES';
2190
    } | {
2191
        type: 'SELECT_EVENT';
2192
        eventInstanceId: string;
2193
    } | {
2194
        type: 'UNSELECT_EVENT';
2195
    } | {
2196
        type: 'SET_EVENT_DRAG';
2197
        state: EventInteractionState;
2198
    } | {
2199
        type: 'UNSET_EVENT_DRAG';
2200
    } | {
2201
        type: 'SET_EVENT_RESIZE';
2202
        state: EventInteractionState;
2203
    } | {
2204
        type: 'UNSET_EVENT_RESIZE';
2205
    } | {
2206
        type: 'ADD_EVENT_SOURCES';
2207
        sources: EventSource[];
2208
    } | {
2209
        type: 'REMOVE_EVENT_SOURCE';
2210
        sourceId: string;
2211
    } | {
2212
        type: 'REMOVE_ALL_EVENT_SOURCES';
2213
    } | {
2214
        type: 'FETCH_EVENT_SOURCES';
2215
        sourceIds?: string[];
2216
    } | // if no sourceIds, fetch all
2217
    {
2218
        type: 'CHANGE_TIMEZONE';
2219
        oldDateEnv: DateEnv;
2220
    } | {
2221
        type: 'RECEIVE_EVENTS';
2222
        sourceId: string;
2223
        fetchId: string;
2224
        fetchRange: DateRange | null;
2225
        rawEvents: EventInput[];
2226
    } | {
2227
        type: 'RECEIVE_EVENT_ERROR';
2228
        sourceId: string;
2229
        fetchId: string;
2230
        fetchRange: DateRange | null;
2231
        error: EventSourceError;
2232
    } | // need all these?
2233
    {
2234
        type: 'ADD_EVENTS';
2235
        eventStore: EventStore;
2236
    } | {
2237
        type: 'MERGE_EVENTS';
2238
        eventStore: EventStore;
2239
    } | {
2240
        type: 'MUTATE_EVENTS';
2241
        instanceId: string;
2242
        mutation: EventMutation;
2243
        fromApi?: boolean;
2244
    } | {
2245
        type: 'REMOVE_EVENT_DEF';
2246
        defId: string;
2247
    } | {
2248
        type: 'REMOVE_EVENT_INSTANCES';
2249
        instances: EventInstanceHash;
2250
    } | {
2251
        type: 'REMOVE_ALL_EVENTS';
2252
    } | {
2253
        type: 'RESET_EVENTS';
2254
    };
2255
}
2256
2257
declare module '@fullcalendar/core/CalendarComponent' {
2258
    import Component, { ComponentContext } from '@fullcalendar/core/component/Component';
2259
    import { ViewSpec } from '@fullcalendar/core/structs/view-spec';
2260
    import View from '@fullcalendar/core/View';
2261
    import Toolbar from '@fullcalendar/core/Toolbar';
2262
    import DateProfileGenerator, { DateProfile } from '@fullcalendar/core/DateProfileGenerator';
2263
    import { EventStore } from '@fullcalendar/core/structs/event-store';
2264
    import { EventUiHash } from '@fullcalendar/core/component/event-ui';
2265
    import { BusinessHoursInput } from '@fullcalendar/core/structs/business-hours';
2266
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
2267
    import { CalendarState } from '@fullcalendar/core/reducers/types';
2268
    export interface CalendarComponentProps extends CalendarState {
2269
        viewSpec: ViewSpec;
2270
        dateProfileGenerator: DateProfileGenerator;
2271
        eventUiBases: EventUiHash;
2272
    }
2273
    export { CalendarComponent as default, CalendarComponent };
2274
    class CalendarComponent extends Component<CalendarComponentProps> {
2275
        view: View;
2276
        header: Toolbar;
2277
        footer: Toolbar;
2278
        computeTitle: (dateProfile: any, viewOptions: any) => string;
2279
        parseBusinessHours: (input: BusinessHoursInput) => EventStore;
2280
        el: HTMLElement;
2281
        contentEl: HTMLElement;
2282
        elClassNames: string[];
2283
        savedScroll: any;
2284
        isHeightAuto: boolean;
2285
        viewHeight: number;
2286
        constructor(el: HTMLElement);
2287
        render(props: CalendarComponentProps, context: ComponentContext): void;
2288
        destroy(): void;
2289
        _renderSkeleton(context: ComponentContext): void;
2290
        _unrenderSkeleton(): void;
2291
        removeElClassNames(): void;
2292
        updateElClassNames(context: ComponentContext): void;
2293
        _renderToolbars(viewSpec: ViewSpec, dateProfile: DateProfile, currentDate: DateMarker, title: string): void;
2294
        _unrenderToolbars(): void;
2295
        renderView(props: CalendarComponentProps, title: string): void;
2296
        updateSize(isResize?: boolean): void;
2297
        computeHeightVars(): void;
2298
        queryToolbarsHeight(): number;
2299
        freezeHeight(): void;
2300
        thawHeight(): void;
2301
    }
2302
}
2303
2304
declare module '@fullcalendar/core/common/DayHeader' {
2305
    import Component, { ComponentContext } from '@fullcalendar/core/component/Component';
2306
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
2307
    import { DateProfile } from '@fullcalendar/core/DateProfileGenerator';
2308
    export interface DayTableHeaderProps {
2309
        dates: DateMarker[];
2310
        dateProfile: DateProfile;
2311
        datesRepDistinctDays: boolean;
2312
        renderIntroHtml?: () => string;
2313
    }
2314
    export { DayHeader as default, DayHeader };
2315
    class DayHeader extends Component<DayTableHeaderProps> {
2316
        parentEl: HTMLElement;
2317
        el: HTMLElement;
2318
        thead: HTMLElement;
2319
        constructor(parentEl: HTMLElement);
2320
        render(props: DayTableHeaderProps, context: ComponentContext): void;
2321
        destroy(): void;
2322
        _renderSkeleton(context: ComponentContext): void;
2323
        _unrenderSkeleton(): void;
2324
    }
2325
}
2326
2327
declare module '@fullcalendar/core/common/table-utils' {
2328
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
2329
    import { DateProfile } from '@fullcalendar/core/DateProfileGenerator';
2330
    import { ComponentContext } from '@fullcalendar/core/component/Component';
2331
    export function computeFallbackHeaderFormat(datesRepDistinctDays: boolean, dayCnt: number): {
2332
        weekday: string;
2333
        month?: undefined;
2334
        day?: undefined;
2335
        omitCommas?: undefined;
2336
    } | {
2337
        weekday: string;
2338
        month: string;
2339
        day: string;
2340
        omitCommas: boolean;
2341
    };
2342
    export function renderDateCell(dateMarker: DateMarker, dateProfile: DateProfile, datesRepDistinctDays: any, colCnt: any, colHeadFormat: any, context: ComponentContext, colspan?: any, otherAttrs?: any): string;
2343
}
2344
2345
declare module '@fullcalendar/core/common/DaySeries' {
2346
    import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator';
2347
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
2348
    import { DateRange } from '@fullcalendar/core/datelib/date-range';
2349
    export interface DaySeriesSeg {
2350
        firstIndex: number;
2351
        lastIndex: number;
2352
        isStart: boolean;
2353
        isEnd: boolean;
2354
    }
2355
    export { DaySeries as default, DaySeries };
2356
    class DaySeries {
2357
        cnt: number;
2358
        dates: DateMarker[];
2359
        indices: number[];
2360
        constructor(range: DateRange, dateProfileGenerator: DateProfileGenerator);
2361
        sliceRange(range: DateRange): DaySeriesSeg | null;
2362
    }
2363
}
2364
2365
declare module '@fullcalendar/core/interactions/event-interaction-state' {
2366
    import { EventStore } from '@fullcalendar/core/structs/event-store';
2367
    import { Seg } from '@fullcalendar/core/component/DateComponent';
2368
    export interface EventInteractionState {
2369
        affectedEvents: EventStore;
2370
        mutatedEvents: EventStore;
2371
        isEvent: boolean;
2372
        origSeg: Seg | null;
2373
    }
2374
}
2375
2376
declare module '@fullcalendar/core/component/event-rendering' {
2377
    import { EventDef, EventTuple, EventDefHash } from '@fullcalendar/core/structs/event';
2378
    import { EventStore } from '@fullcalendar/core/structs/event-store';
2379
    import { DateRange } from '@fullcalendar/core/datelib/date-range';
2380
    import { Duration } from '@fullcalendar/core/datelib/duration';
2381
    import { Seg } from '@fullcalendar/core/component/DateComponent';
2382
    import { EventUi, EventUiHash } from '@fullcalendar/core/component/event-ui';
2383
    import { ComponentContext } from '@fullcalendar/core/component/Component';
2384
    export interface EventRenderRange extends EventTuple {
2385
        ui: EventUi;
2386
        range: DateRange;
2387
        isStart: boolean;
2388
        isEnd: boolean;
2389
    }
2390
    export function sliceEventStore(eventStore: EventStore, eventUiBases: EventUiHash, framingRange: DateRange, nextDayThreshold?: Duration): {
2391
        bg: EventRenderRange[];
2392
        fg: EventRenderRange[];
2393
    };
2394
    export function hasBgRendering(def: EventDef): boolean;
2395
    export function filterSegsViaEls(context: ComponentContext, segs: Seg[], isMirror: boolean): Seg[];
2396
    export function getElSeg(el: HTMLElement): Seg | null;
2397
    export function compileEventUis(eventDefs: EventDefHash, eventUiBases: EventUiHash): {
2398
        [key: string]: EventUi;
2399
    };
2400
    export function compileEventUi(eventDef: EventDef, eventUiBases: EventUiHash): EventUi;
2401
    export function triggerRenderedSegs(context: ComponentContext, segs: Seg[], isMirrors: boolean): void;
2402
    export function triggerWillRemoveSegs(context: ComponentContext, segs: Seg[], isMirrors: boolean): void;
2403
    export function computeEventDraggable(context: ComponentContext, eventDef: EventDef, eventUi: EventUi): boolean;
2404
    export function computeEventStartResizable(context: ComponentContext, eventDef: EventDef, eventUi: EventUi): any;
2405
    export function computeEventEndResizable(context: ComponentContext, eventDef: EventDef, eventUi: EventUi): boolean;
2406
}
2407
2408
declare module '@fullcalendar/core/common/DayTable' {
2409
    import DaySeries from '@fullcalendar/core/common/DaySeries';
2410
    import { DateRange } from '@fullcalendar/core/datelib/date-range';
2411
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
2412
    import { Seg } from '@fullcalendar/core/component/DateComponent';
2413
    export interface DayTableSeg extends Seg {
2414
        row: number;
2415
        firstCol: number;
2416
        lastCol: number;
2417
    }
2418
    export interface DayTableCell {
2419
        date: DateMarker;
2420
        htmlAttrs?: string;
2421
    }
2422
    export { DayTable as default, DayTable };
2423
    class DayTable {
2424
        rowCnt: number;
2425
        colCnt: number;
2426
        cells: DayTableCell[][];
2427
        headerDates: DateMarker[];
2428
        constructor(daySeries: DaySeries, breakOnWeeks: boolean);
2429
        sliceRange(range: DateRange): DayTableSeg[];
2430
    }
2431
}
2432
2433
declare module '@fullcalendar/core/common/slicing-utils' {
2434
    import { DateRange } from '@fullcalendar/core/datelib/date-range';
2435
    import { EventStore } from '@fullcalendar/core/structs/event-store';
2436
    import { EventUiHash } from '@fullcalendar/core/component/event-ui';
2437
    import { DateProfile } from '@fullcalendar/core/DateProfileGenerator';
2438
    import DateComponent, { Seg, EventSegUiInteractionState } from '@fullcalendar/core/component/DateComponent';
2439
    import { DateSpan } from '@fullcalendar/core/structs/date-span';
2440
    import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state';
2441
    import { Duration } from '@fullcalendar/core/datelib/duration';
2442
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
2443
    import Calendar from '@fullcalendar/core/Calendar';
2444
    export interface SliceableProps {
2445
        dateSelection: DateSpan;
2446
        businessHours: EventStore;
2447
        eventStore: EventStore;
2448
        eventDrag: EventInteractionState | null;
2449
        eventResize: EventInteractionState | null;
2450
        eventSelection: string;
2451
        eventUiBases: EventUiHash;
2452
    }
2453
    export interface SlicedProps<SegType extends Seg> {
2454
        dateSelectionSegs: SegType[];
2455
        businessHourSegs: SegType[];
2456
        fgEventSegs: SegType[];
2457
        bgEventSegs: SegType[];
2458
        eventDrag: EventSegUiInteractionState | null;
2459
        eventResize: EventSegUiInteractionState | null;
2460
        eventSelection: string;
2461
    }
2462
    export { Slicer as default, Slicer };
2463
    abstract class Slicer<SegType extends Seg, ExtraArgs extends any[] = []> {
2464
        abstract sliceRange(dateRange: DateRange, ...extraArgs: ExtraArgs): SegType[];
2465
        sliceProps(props: SliceableProps, dateProfile: DateProfile, nextDayThreshold: Duration | null, calendar: Calendar, component: DateComponent<any>, // TODO: kill
2466
        ...extraArgs: ExtraArgs): SlicedProps<SegType>;
2467
        sliceNowDate(// does not memoize
2468
        date: DateMarker, component: DateComponent<any>, // TODO: kill
2469
        ...extraArgs: ExtraArgs): SegType[];
2470
    }
2471
}
2472
2473
declare module '@fullcalendar/core/structs/event-mutation' {
2474
    import { Duration } from '@fullcalendar/core/datelib/duration';
2475
    import { EventStore } from '@fullcalendar/core/structs/event-store';
2476
    import { EventDef } from '@fullcalendar/core/structs/event';
2477
    import Calendar from '@fullcalendar/core/Calendar';
2478
    import { EventUiHash } from '@fullcalendar/core/component/event-ui';
2479
    export interface EventMutation {
2480
        datesDelta?: Duration;
2481
        startDelta?: Duration;
2482
        endDelta?: Duration;
2483
        standardProps?: any;
2484
        extendedProps?: any;
2485
    }
2486
    export function applyMutationToEventStore(eventStore: EventStore, eventConfigBase: EventUiHash, mutation: EventMutation, calendar: Calendar): EventStore;
2487
    export type eventDefMutationApplier = (eventDef: EventDef, mutation: EventMutation, calendar: Calendar) => void;
2488
}
2489
2490
declare module '@fullcalendar/core/validation' {
2491
    import { EventStore } from '@fullcalendar/core/structs/event-store';
2492
    import Calendar from '@fullcalendar/core/Calendar';
2493
    import { DateSpan, DateSpanApi } from '@fullcalendar/core/structs/date-span';
2494
    import EventApi from '@fullcalendar/core/api/EventApi';
2495
    import { EventInput } from '@fullcalendar/core/structs/event';
2496
    import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state';
2497
    import { SplittableProps } from '@fullcalendar/core/component/event-splitting';
2498
    export type ConstraintInput = 'businessHours' | string | EventInput | EventInput[];
2499
    export type Constraint = 'businessHours' | string | EventStore | false;
2500
    export type OverlapFunc = ((stillEvent: EventApi, movingEvent: EventApi | null) => boolean);
2501
    export type AllowFunc = (span: DateSpanApi, movingEvent: EventApi | null) => boolean;
2502
    export type isPropsValidTester = (props: SplittableProps, calendar: Calendar) => boolean;
2503
    export function isInteractionValid(interaction: EventInteractionState, calendar: Calendar): boolean;
2504
    export function isDateSelectionValid(dateSelection: DateSpan, calendar: Calendar): boolean;
2505
    export function isPropsValid(state: SplittableProps, calendar: Calendar, dateSpanMeta?: {}, filterConfig?: any): boolean;
2506
    export function normalizeConstraint(input: ConstraintInput, calendar: Calendar): Constraint | null;
2507
}
2508
2509
declare module '@fullcalendar/core/api/EventApi' {
2510
    import Calendar from '@fullcalendar/core/Calendar';
2511
    import { EventDef, EventInstance } from '@fullcalendar/core/structs/event';
2512
    import { EventMutation } from '@fullcalendar/core/structs/event-mutation';
2513
    import { DateInput } from '@fullcalendar/core/datelib/env';
2514
    import { DurationInput } from '@fullcalendar/core/datelib/duration';
2515
    import { FormatterInput } from '@fullcalendar/core/datelib/formatting';
2516
    import EventSourceApi from '@fullcalendar/core/api/EventSourceApi';
2517
    export { EventApi as default, EventApi };
2518
    class EventApi {
2519
        _calendar: Calendar;
2520
        _def: EventDef;
2521
        _instance: EventInstance | null;
2522
        constructor(calendar: Calendar, def: EventDef, instance?: EventInstance);
2523
        setProp(name: string, val: string): void;
2524
        setExtendedProp(name: string, val: any): void;
2525
        setStart(startInput: DateInput, options?: {
2526
            granularity?: string;
2527
            maintainDuration?: boolean;
2528
        }): void;
2529
        setEnd(endInput: DateInput | null, options?: {
2530
            granularity?: string;
2531
        }): void;
2532
        setDates(startInput: DateInput, endInput: DateInput | null, options?: {
2533
            allDay?: boolean;
2534
            granularity?: string;
2535
        }): void;
2536
        moveStart(deltaInput: DurationInput): void;
2537
        moveEnd(deltaInput: DurationInput): void;
2538
        moveDates(deltaInput: DurationInput): void;
2539
        setAllDay(allDay: boolean, options?: {
2540
            maintainDuration?: boolean;
2541
        }): void;
2542
        formatRange(formatInput: FormatterInput): any;
2543
        mutate(mutation: EventMutation): void;
2544
        remove(): void;
2545
        readonly source: EventSourceApi | null;
2546
        readonly start: Date | null;
2547
        readonly end: Date | null;
2548
        readonly id: string;
2549
        readonly groupId: string;
2550
        readonly allDay: boolean;
2551
        readonly title: string;
2552
        readonly url: string;
2553
        readonly rendering: string;
2554
        readonly startEditable: boolean;
2555
        readonly durationEditable: boolean;
2556
        readonly constraint: any;
2557
        readonly overlap: any;
2558
        readonly allow: any;
2559
        readonly backgroundColor: string;
2560
        readonly borderColor: string;
2561
        readonly textColor: string;
2562
        readonly classNames: string[];
2563
        readonly extendedProps: any;
2564
    }
2565
}
2566
2567
declare module '@fullcalendar/core/util/requestJson' {
2568
    export default function requestJson(method: string, url: string, params: object, successCallback: any, failureCallback: any): void;
2569
}
2570
2571
declare module '@fullcalendar/core/datelib/locale' {
2572
    export type LocaleCodeArg = string | string[];
2573
    export type LocaleSingularArg = LocaleCodeArg | RawLocale;
2574
    export interface Locale {
2575
        codeArg: LocaleCodeArg;
2576
        codes: string[];
2577
        week: {
2578
            dow: number;
2579
            doy: number;
2580
        };
2581
        simpleNumberFormat: Intl.NumberFormat;
2582
        options: any;
2583
    }
2584
    export interface RawLocale {
2585
        code: string;
2586
        [otherProp: string]: any;
2587
    }
2588
    export type RawLocaleMap = {
2589
        [code: string]: RawLocale;
2590
    };
2591
    export interface RawLocaleInfo {
2592
        map: RawLocaleMap;
2593
        defaultCode: string;
2594
    }
2595
    export function parseRawLocales(explicitRawLocales: RawLocale[]): RawLocaleInfo;
2596
    export function buildLocale(inputSingular: LocaleSingularArg, available: RawLocaleMap): Locale;
2597
}
2598
2599
declare module '@fullcalendar/core/OptionsManager' {
2600
    export { OptionsManager as default, OptionsManager };
2601
    class OptionsManager {
2602
        dirDefaults: any;
2603
        localeDefaults: any;
2604
        overrides: any;
2605
        dynamicOverrides: any;
2606
        computed: any;
2607
        constructor(overrides: any);
2608
        mutate(updates: any, removals: string[], isDynamic?: boolean): void;
2609
        compute(): void;
2610
    }
2611
}
2612
2613
declare module '@fullcalendar/core/api/EventSourceApi' {
2614
    import Calendar from '@fullcalendar/core/Calendar';
2615
    import { EventSource } from '@fullcalendar/core/structs/event-source';
2616
    export { EventSourceApi as default, EventSourceApi };
2617
    class EventSourceApi {
2618
        calendar: Calendar;
2619
        internalEventSource: EventSource;
2620
        constructor(calendar: Calendar, internalEventSource: EventSource);
2621
        remove(): void;
2622
        refetch(): void;
2623
        readonly id: string;
2624
        readonly url: string;
2625
    }
2626
}
2627
2628
declare module '@fullcalendar/core/structs/view-config' {
2629
    import View from '@fullcalendar/core/View';
2630
    import { ViewSpec } from '@fullcalendar/core/structs/view-spec';
2631
    export type ViewClass = new (viewSpec: ViewSpec, parentEl: HTMLElement) => View;
2632
    export interface ViewConfigObjectInput {
2633
        type?: string;
2634
        class?: ViewClass;
2635
        [optionName: string]: any;
2636
    }
2637
    export type ViewConfigInput = ViewClass | ViewConfigObjectInput;
2638
    export type ViewConfigInputHash = {
2639
        [viewType: string]: ViewConfigInput;
2640
    };
2641
    export interface ViewConfig {
2642
        superType: string;
2643
        class: ViewClass | null;
2644
        options: any;
2645
    }
2646
    export type ViewConfigHash = {
2647
        [viewType: string]: ViewConfig;
2648
    };
2649
    export function parseViewConfigs(inputs: ViewConfigInputHash): ViewConfigHash;
2650
}
2651
2652
declare module '@fullcalendar/core/datelib/calendar-system' {
2653
    import { DateMarker } from '@fullcalendar/core/datelib/marker';
2654
    export interface CalendarSystem {
2655
        getMarkerYear(d: DateMarker): number;
2656
        getMarkerMonth(d: DateMarker): number;
2657
        getMarkerDay(d: DateMarker): number;
2658
        arrayToMarker(arr: number[]): DateMarker;
2659
        markerToArray(d: DateMarker): number[];
2660
    }
2661
    export function registerCalendarSystem(name: any, theClass: any): void;
2662
    export function createCalendarSystem(name: any): any;
2663
}
2664
2665
declare module '@fullcalendar/core/datelib/formatting-cmd' {
2666
    import { DateFormatter, DateFormattingContext, ZonedMarker, VerboseFormattingArg } from '@fullcalendar/core/datelib/formatting';
2667
    export type CmdFormatterFunc = (cmd: string, arg: VerboseFormattingArg) => string;
2668
    export class CmdFormatter implements DateFormatter {
2669
        cmdStr: string;
2670
        separator: string;
2671
        constructor(cmdStr: string, separator?: string);
2672
        format(date: ZonedMarker, context: DateFormattingContext): string;
2673
        formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): string;
2674
    }
2675
}
2676
2677
declare module '@fullcalendar/core/datelib/formatting-func' {
2678
    import { DateFormatter, DateFormattingContext, ZonedMarker, VerboseFormattingArg } from '@fullcalendar/core/datelib/formatting';
2679
    export type FuncFormatterFunc = (arg: VerboseFormattingArg) => string;
2680
    export class FuncFormatter implements DateFormatter {
2681
        func: FuncFormatterFunc;
2682
        constructor(func: FuncFormatterFunc);
2683
        format(date: ZonedMarker, context: DateFormattingContext): string;
2684
        formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): string;
2685
    }
2686
}
2687
2688
declare module '@fullcalendar/core/event-sources/func-event-source' {
2689
    import { EventSourceError } from '@fullcalendar/core/structs/event-source';
2690
    import { EventInput } from '@fullcalendar/core/structs/event';
2691
    export type EventSourceFunc = (arg: {
2692
        start: Date;
2693
        end: Date;
2694
        timeZone: string;
2695
    }, successCallback: (events: EventInput[]) => void, failureCallback: (error: EventSourceError) => void) => (void | PromiseLike<EventInput[]>);
2696
    const _default: import("@fullcalendar/core/plugin-system").PluginDef;
2697
    export default _default;
2698
}
2699
2700
declare module '@fullcalendar/core/interactions/external-element-dragging' {
2701
    import { DateSpan } from '@fullcalendar/core/structs/date-span';
2702
    import { DragMeta } from '@fullcalendar/core/structs/drag-meta';
2703
    export type ExternalDefTransform = (dateSpan: DateSpan, dragMeta: DragMeta) => any;
2704
}
2705
2706
declare module '@fullcalendar/core/Toolbar' {
2707
    import Component from '@fullcalendar/core/component/Component';
2708
    export interface ToolbarRenderProps {
2709
        layout: any;
2710
        title: string;
2711
        activeButton: string;
2712
        isTodayEnabled: boolean;
2713
        isPrevEnabled: boolean;
2714
        isNextEnabled: boolean;
2715
    }
2716
    export { Toolbar as default, Toolbar };
2717
    class Toolbar extends Component<ToolbarRenderProps> {
2718
        el: HTMLElement;
2719
        viewsWithButtons: any;
2720
        constructor(extraClassName: any);
2721
        destroy(): void;
2722
        render(props: ToolbarRenderProps): void;
2723
        renderLayout(layout: any): void;
2724
        unrenderLayout(): void;
2725
        renderSection(position: any, buttonStr: any): HTMLElement;
2726
        updateToday(isTodayEnabled: any): void;
2727
        updatePrev(isPrevEnabled: any): void;
2728
        updateNext(isNextEnabled: any): void;
2729
        updateTitle(text: any): void;
2730
        updateActiveButton(buttonName?: any): void;
2731
        toggleButtonEnabled(buttonName: any, bool: any): void;
2732
    }
2733
}
2734
2735