import { type ComputedRef, type Ref } from 'vue'; import { type CalendarEvent, type CalendarEventDisplayField, type CalendarProps } from './calendar'; type CalendarEmit = (event: any, payload: any) => void; type EditableConfig = { drag?: boolean; resize?: boolean; delete?: boolean; create?: boolean; selectCreate?: boolean; }; export interface UseCalendarEditorOptions { props: Pick; emit: CalendarEmit; defaultEventTitle: string; slotStepMinutes: Ref; editableDisplayFields: ComputedRef; internalEvents: Ref; currentEditableEvent: ComputedRef; canQuickCreate: ComputedRef; canSelectCreate: ComputedRef; getEventIdentifier: (event?: Partial) => string; commitEvents: (events: CalendarEvent[]) => void; patchEvent: (nextEvent: CalendarEvent, previousEvent?: CalendarEvent) => CalendarEvent[]; canCreateAtRange: (startValue: string | Date | undefined, endValue?: string | Date) => boolean; calendarContainerRef?: Ref; } export declare const useCalendarEditor: (options: UseCalendarEditorOptions) => { editPanelRef: Ref<{ popoverRef?: { value?: HTMLElement | null; }; boundaryRef?: { value?: HTMLElement | null; }; }, { popoverRef?: { value?: HTMLElement | null; }; boundaryRef?: { value?: HTMLElement | null; }; } | { popoverRef?: { value?: HTMLElement | null; }; boundaryRef?: { value?: HTMLElement | null; }; }>; editPopoverOpen: Ref; editPresentationMode: Ref<"popover" | "drawer", "popover" | "drawer">; editPopoverPlacement: Ref<"left" | "right" | "top" | "bottom", "left" | "right" | "top" | "bottom">; createDraftEventRef: Ref<{ [x: string]: any; id?: string | number; title?: string; start: string | Date; end?: string | Date; backgroundColor?: string; borderColor?: string; color?: string; eventColor?: string; tag?: string; tagColor?: string; content?: string; class?: string; allDay?: boolean; _eid?: string; split?: string | number; rawRecordId?: string; _dateGroupId?: string; }, CalendarEvent | { [x: string]: any; id?: string | number; title?: string; start: string | Date; end?: string | Date; backgroundColor?: string; borderColor?: string; color?: string; eventColor?: string; tag?: string; tagColor?: string; content?: string; class?: string; allDay?: boolean; _eid?: string; split?: string | number; rawRecordId?: string; _dateGroupId?: string; }>; contextMenuPanelRef: Ref<{ menuRef?: { value?: HTMLElement | null; }; }, { menuRef?: { value?: HTMLElement | null; }; } | { menuRef?: { value?: HTMLElement | null; }; }>; contextMenuOpen: Ref; contextMenuEvent: Ref<{ [x: string]: any; id?: string | number; title?: string; start: string | Date; end?: string | Date; backgroundColor?: string; borderColor?: string; color?: string; eventColor?: string; tag?: string; tagColor?: string; content?: string; class?: string; allDay?: boolean; _eid?: string; split?: string | number; rawRecordId?: string; _dateGroupId?: string; }, CalendarEvent | { [x: string]: any; id?: string | number; title?: string; start: string | Date; end?: string | Date; backgroundColor?: string; borderColor?: string; color?: string; eventColor?: string; tag?: string; tagColor?: string; content?: string; class?: string; allDay?: boolean; _eid?: string; split?: string | number; rawRecordId?: string; _dateGroupId?: string; }>; contextMenuStyle: Ref, Record>; editPopoverStyle: Ref, Record>; editBoundaryStyle: Ref, Record>; editFormData: Record; isCreatingEvent: ComputedRef; editingEventTitle: ComputedRef; applyEventTitle: (event: CalendarEvent, nextTitle?: string) => string; closeContextMenu: () => void; openContextMenu: (event: CalendarEvent, nativeEvent: MouseEvent) => Promise; openEditPopover: (event: CalendarEvent, draftClassToken?: string, anchor?: unknown) => Promise; newDraftEventIdRef: Ref; clearEditingDraftToken: () => void; closeEditPopover: () => void; openCreateEventDrawer: (baseEvent?: Partial) => void; handleSwitchPresentation: () => void; deleteEvent: (target?: CalendarEvent) => boolean; copyEvent: (target?: CalendarEvent) => boolean; handleDeleteEditEvent: () => void; handleMaskClose: () => void; handleConfirmEdit: () => void; handleConfirmAndAdd: () => void; createDraftEventAndOpenEditor: (baseEvent: CalendarEvent, fallbackSplit?: string | number) => void; resolveCreatedEventFromPayload: (payload: any) => CalendarEvent; removeCreatedDraftEvent: (event?: CalendarEvent) => void; handleEventDragCreate: (payload: any) => void; }; export {};