import { DatesSetArg, DateSelectArg, DayCellContentArg, EventApi, EventChangeArg, EventClickArg, EventContentArg, EventInput } from '@fullcalendar/core';
import { DateClickArg, DropArg, EventReceiveArg } from '@fullcalendar/interaction';
export type SchedulerView = "month" | "week" | "day";
export type SchedulerDateInput = string | Date;
export type SchedulerRRuleInput = string | Record<string, unknown>;
export interface SchedulerEvent {
    id: string;
    title: string;
    start: SchedulerDateInput;
    end?: SchedulerDateInput;
    allDay?: boolean;
    rrule?: SchedulerRRuleInput;
    duration?: string;
    editable?: boolean;
    className?: string | string[];
    sourceId?: string;
    occurrenceStart?: string;
    extendedProps?: Record<string, unknown>;
}
export interface SchedulerProps {
    modelValue?: string;
    view?: SchedulerView;
    views?: SchedulerView[];
    events?: SchedulerEvent[];
    locale?: string;
    editable?: boolean;
    droppable?: boolean;
    selectable?: boolean;
    selectMirror?: boolean;
    weekStart?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
    height?: string | number;
    showNowIndicator?: boolean;
}
export type SchedulerInstance = any;
export interface SchedulerDateClickPayload {
    date: string;
    allDay: boolean;
    view: SchedulerView;
    nativeEvent: MouseEvent;
}
export interface SchedulerEventClickPayload {
    event: SchedulerEvent;
    view: SchedulerView;
    nativeEvent: MouseEvent;
}
export interface SchedulerEventChangePayload {
    event: SchedulerEvent;
    oldEvent: SchedulerEvent;
    relatedEvents: SchedulerEvent[];
    revert: () => void;
    view: SchedulerView;
}
export interface SchedulerDateSelectPayload {
    start: string;
    end: string;
    allDay: boolean;
    view: SchedulerView;
}
export interface SchedulerDropPayload {
    date: string;
    allDay: boolean;
    view: SchedulerView;
    nativeEvent: MouseEvent;
}
export interface SchedulerEventReceivePayload {
    event: SchedulerEvent;
    relatedEvents: SchedulerEvent[];
    revert: () => void;
    view: SchedulerView;
}
export interface SchedulerViewChangePayload {
    view: SchedulerView;
    start: string;
    end: string;
    currentDate: string;
}
export interface SchedulerEventContentSlotProps {
    event: SchedulerEvent;
    timeText: string;
    isDraggable: boolean;
    isStartResizable: boolean;
    isEndResizable: boolean;
    isMirror: boolean;
    isStart: boolean;
    isEnd: boolean;
    isPast: boolean;
    isFuture: boolean;
    isToday: boolean;
    isSelected: boolean;
    isDragging: boolean;
    isResizing: boolean;
    view: SchedulerView;
}
export interface SchedulerDayCellContentSlotProps {
    date: string;
    dayNumberText: string;
    isDisabled: boolean;
    isOther: boolean;
    isToday: boolean;
    isPast: boolean;
    isFuture: boolean;
    view: SchedulerView;
}
export interface SchedulerEventMappingOptions {
    anchorDate?: string;
    view: SchedulerView;
    weekStart: 0 | 1 | 2 | 3 | 4 | 5 | 6;
    rootEditable?: boolean;
}
export declare function toFullCalendarView(view: SchedulerView): "timeGridWeek" | "timeGridDay" | "dayGridMonth";
export declare function fromFullCalendarView(viewType: string): SchedulerView;
export declare function parseSchedulerDateInput(value?: SchedulerDateInput | null): Date | null;
export declare function formatSchedulerDate(date: Date): string;
export declare function formatSchedulerDateTime(date: Date): string;
export declare function normalizeSchedulerAnchorDate(value?: SchedulerDateInput | null): string;
export declare function mapSchedulerEvent(event: SchedulerEvent, rootEditable?: boolean): EventInput;
export declare function mapSchedulerEvents(events: SchedulerEvent[], options: SchedulerEventMappingOptions): any[];
export declare function normalizeSchedulerEvent(event: Pick<EventApi, "id" | "title" | "start" | "end" | "startStr" | "endStr" | "allDay" | "classNames" | "extendedProps">): SchedulerEvent;
export declare function buildSchedulerDateClickPayload(arg: DateClickArg): SchedulerDateClickPayload;
export declare function buildSchedulerEventClickPayload(arg: EventClickArg): SchedulerEventClickPayload;
export declare function buildSchedulerEventChangePayload(arg: EventChangeArg, currentView: SchedulerView): SchedulerEventChangePayload;
export declare function buildSchedulerDateSelectPayload(arg: DateSelectArg): SchedulerDateSelectPayload;
export declare function buildSchedulerDropPayload(arg: DropArg): SchedulerDropPayload;
export declare function buildSchedulerEventReceivePayload(arg: EventReceiveArg): SchedulerEventReceivePayload;
export declare function buildSchedulerViewChangePayload(arg: DatesSetArg, currentDate: string): SchedulerViewChangePayload;
export declare function buildSchedulerEventContentSlotProps(arg: EventContentArg): SchedulerEventContentSlotProps;
export declare function buildSchedulerDayCellContentSlotProps(arg: DayCellContentArg): SchedulerDayCellContentSlotProps;
