import { CalendarEvent, EventFormData, EventListProps, CreateEventRequest, UpdateEventRequest, EventData } from '../core/index.js';
export { ApiResponse, BaseEventData, CALENDAR_MODULE_NAME, CALENDAR_MODULE_VERSION, CalendarActions, CalendarCell, CalendarConfig, CalendarDbService, CalendarExportService, CalendarImportService, CalendarService, CalendarState, CalendarViewProps, CalendarViewType, DateRange, DeleteEventRequest, DragState, EventCardProps, EventColor, EventFormProps, EventListConfig, EventListDisplayMode, EventListFilter, EventListSort, EventModalProps, EventPriority, EventResponse, EventSortField, EventType, EventTypeService, EventsResponse, ExportOptions, GeneratedEvent, GetEventsRequest, ImportOptions, ImportResult, MiniCalendarProps, MultiDayEventData, RecurrenceFormData, RecurrencePattern, RecurrenceRule, RecurrenceRuleType, RecurrenceService, RecurrenceType, RecurringEventData, RecurringEventInstance, Reminder, ReminderApiData, ReminderConfig, ReminderFormData, ReminderService, ReminderStatus, ReminderType, ScheduledReminder, SingleEventData, SortDirection, TimeSlot, UseCalendarReturn, UseEnhancedEventsReturn, UseEventDragReturn, UseEventsReturn, addDays, addMonths, addWeeks, addYears, cloneDate, formatDate, formatDateTime, formatTime, generateTimeSlots, getDayEnd, getDayStart, getDaysDifference, getMonthEnd, getMonthName, getMonthStart, getMonthViewDates, getRelativeTime, getWeekEnd, getWeekStart, getWeekViewDates, getWeekdayName, isDragSupported, isMobileDevice, isSameDay, isSameMonth, isSameWeek, isToday, isValidDate, isWeekend, isWorkingHour, parseDate, toLocalISOString, useDeviceType, useEnhancedEvents, useEventDrag, useEvents } from '../core/index.js';
import React__default, { ReactNode } from 'react';
import '@dnd-kit/core';

declare const COLOR_THEMES: {
    default: {
        name: string;
        colors: {
            primary: string;
            secondary: string;
            accent: string;
            danger: string;
            purple: string;
            pink: string;
            indigo: string;
            teal: string;
        };
        background: {
            calendar: string;
            cell: string;
            today: string;
            weekend: string;
            otherMonth: string;
        };
        border: {
            calendar: string;
            cell: string;
            today: string;
        };
        text: {
            primary: string;
            secondary: string;
            today: string;
            weekend: string;
            otherMonth: string;
        };
    };
    dark: {
        name: string;
        colors: {
            primary: string;
            secondary: string;
            accent: string;
            danger: string;
            purple: string;
            pink: string;
            indigo: string;
            teal: string;
        };
        background: {
            calendar: string;
            cell: string;
            today: string;
            weekend: string;
            otherMonth: string;
        };
        border: {
            calendar: string;
            cell: string;
            today: string;
        };
        text: {
            primary: string;
            secondary: string;
            today: string;
            weekend: string;
            otherMonth: string;
        };
    };
    colorful: {
        name: string;
        colors: {
            primary: string;
            secondary: string;
            accent: string;
            danger: string;
            purple: string;
            pink: string;
            indigo: string;
            teal: string;
        };
        background: {
            calendar: string;
            cell: string;
            today: string;
            weekend: string;
            otherMonth: string;
        };
        border: {
            calendar: string;
            cell: string;
            today: string;
        };
        text: {
            primary: string;
            secondary: string;
            today: string;
            weekend: string;
            otherMonth: string;
        };
    };
};
interface CalendarSettingsProps {
    onSettingsChange?: (settings: CalendarSettings) => void;
}
interface CalendarSettings {
    theme: keyof typeof COLOR_THEMES;
    customColors?: {
        [key: string]: string;
    };
    weekStartsOn: number;
    timeFormat: '12h' | '24h';
    language: string;
    showWeekNumbers: boolean;
    showLunarCalendar: boolean;
    defaultEventDuration: number;
    workingHours: {
        start: string;
        end: string;
    };
}
declare function CalendarSettings({ onSettingsChange }: CalendarSettingsProps): React__default.JSX.Element;

interface DraggableEventProps {
    event: CalendarEvent;
    isDragging?: boolean;
    className?: string;
    onClick?: () => void;
    children?: React__default.ReactNode;
}
/**
 * 可拖拽的事件组件
 *
 * 功能特性：
 * - 支持拖拽移动事件（桌面端）
 * - 移动端禁用拖拽功能
 * - 拖拽时显示半透明效果
 * - 保持原有的点击功能
 * - 响应式设计
 */
declare const DraggableEvent: React__default.FC<DraggableEventProps>;

interface DraggableMonthViewProps {
    events: CalendarEvent[];
    currentDate: Date;
    onDateChange: (date: Date) => void;
    onEventClick?: (event: CalendarEvent) => void;
    onDateClick?: (date: Date) => void;
    onEventUpdate: (eventId: number, newStartTime: Date, newEndTime: Date) => Promise<void>;
    className?: string;
}
/**
 * 支持拖拽的月视图组件
 *
 * 功能特性：
 * - 完整的月视图日历
 * - 事件拖拽功能（桌面端）
 * - 移动端禁用拖拽，优化触摸体验
 * - 拖拽预览和反馈
 * - 月份导航
 * - 响应式设计
 */
declare const DraggableMonthView: React__default.FC<DraggableMonthViewProps>;

interface DroppableCalendarCellProps {
    date: Date;
    events: CalendarEvent[];
    isCurrentMonth: boolean;
    isSelected?: boolean;
    dragOverPreview?: string | null;
    onEventClick?: (event: CalendarEvent) => void;
    onDateClick?: (date: Date) => void;
    className?: string;
    disableDrop?: boolean;
}
/**
 * 可放置的日历单元格组件
 *
 * 功能特性：
 * - 支持拖拽事件到此日期
 * - 显示当前日期的所有事件
 * - 拖拽悬停时显示预览
 * - 响应式设计
 */
declare const DroppableCalendarCell: React__default.FC<DroppableCalendarCellProps>;

interface EventFormProps {
    /** 初始事件数据（编辑模式） */
    initialData?: Partial<EventFormData>;
    /** 是否为编辑模式 */
    isEdit?: boolean;
    /** 表单提交回调 */
    onSubmit: (data: EventFormData) => void;
    /** 取消回调 */
    onCancel: () => void;
    /** 是否正在加载 */
    loading?: boolean;
}
/**
 * 事件表单组件
 *
 * 用于创建和编辑日历事件的表单组件
 * 支持基本信息、重复规则、提醒设置等功能
 */
declare function EventForm({ initialData, isEdit, onSubmit, onCancel, loading }: EventFormProps): React__default.JSX.Element;

/**
 * 事件列表组件
 * 支持列表/网格显示模式、排序、批量选择和批量删除
 */
declare function EventList({ events, config, onConfigChange, onEventClick, onEventEdit, onEventDelete, onBatchDelete, enableBatchActions, loading, className }: EventListProps): React__default.JSX.Element;

interface EventModalProps {
    isOpen: boolean;
    onClose: () => void;
    onSave: (eventData: CreateEventRequest | UpdateEventRequest) => Promise<void>;
    onDelete?: (eventId: number) => Promise<void>;
    event?: CalendarEvent | null;
    initialDate?: Date;
}
declare const EventModal: React__default.FC<EventModalProps>;

interface EventSearchProps {
    events: CalendarEvent[];
    onFiltered: (filteredEvents: CalendarEvent[]) => void;
    className?: string;
}
declare const EventSearch: React__default.FC<EventSearchProps>;

interface ImprovedEventModalProps {
    isOpen: boolean;
    onClose: () => void;
    onSave: (eventData: EventData) => Promise<void>;
    onDelete?: (eventId: number) => Promise<void>;
    event?: CalendarEvent | null;
    initialDate?: Date;
}
declare const ImprovedEventModal: React__default.FC<ImprovedEventModalProps>;

interface ModalProps {
    isOpen: boolean;
    onClose: () => void;
    title?: string;
    children: ReactNode;
    width?: string | number;
    height?: string | number;
    maskClosable?: boolean;
}
declare const Modal: React__default.FC<ModalProps>;

interface CalendarPageProps {
    /** 当前登录用户信息 */
    user?: {
        id: number;
        name?: string;
        [key: string]: any;
    } | null;
    /** 是否已认证 */
    isAuthenticated?: boolean;
    /** 触发登录的回调 */
    onShowLogin?: () => void;
    /** 自定义页头操作区域（例如用户菜单） */
    headerActions?: React__default.ReactNode;
}
/**
 * 基础日历页面组件
 *
 * 这是一个简化版本的日历页面，用于在实验田中展示基本功能
 * 包含了基本的月历视图和事件显示
 */
declare function CalendarPage({ user, isAuthenticated, onShowLogin, headerActions }: CalendarPageProps): React__default.JSX.Element;

interface EventDetailPageProps {
    eventId: number;
    onBack?: () => void;
    onEdit?: (event: CalendarEvent) => void;
    onDelete?: (eventId: number) => void;
}
declare const EventDetailPage: React__default.FC<EventDetailPageProps>;

export { CalendarEvent, CalendarPage, CalendarSettings, CreateEventRequest, DraggableEvent, DraggableMonthView, DroppableCalendarCell, EventData, EventDetailPage, EventForm, EventFormData, EventList, EventListProps, EventModal, EventSearch, ImprovedEventModal, Modal as PopWindow, UpdateEventRequest };
