/**
 * CalendarView Type Definitions
 * Types for calendar display of data with ADHD optimization support
 */
export interface CalendarEvent {
    id: string | number;
    title: string;
    description?: string;
    start: Date | string;
    end?: Date | string;
    allDay?: boolean;
    color?: string;
    category?: string;
    metadata?: Record<string, any>;
    energy?: 1 | 2 | 3 | 4 | 5;
    priority?: 1 | 2 | 3 | 4 | 5;
    estimatedMinutes?: number;
    taskId?: string;
    projectId?: string;
    status?: 'pending' | 'in_progress' | 'completed' | 'cancelled';
    assignee?: string;
    tags?: string[];
}
export interface CalendarViewConfig {
    weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
    showWeekNumbers?: boolean;
    minHour?: number;
    maxHour?: number;
    eventColorField?: string;
    groupByField?: string;
    enableDragDrop?: boolean;
    adhdOptimized?: boolean;
}
export interface CalendarDay {
    date: Date;
    day: number;
    isCurrentMonth: boolean;
    isToday: boolean;
    isWeekend: boolean;
    events: CalendarEvent[];
    cognitiveLoad?: number;
}
export type CalendarViewMode = 'month' | 'week' | 'day' | 'agenda';
export interface CalendarViewProps {
    events: CalendarEvent[];
    currentDate?: Date;
    loading?: boolean;
    error?: string;
    editable?: boolean;
    config?: CalendarViewConfig;
    class?: string;
    onEventClick?: (event: CalendarEvent) => void;
    onEventCreate?: (event: Partial<CalendarEvent>) => void;
    onEventUpdate?: (id: string | number, updates: Partial<CalendarEvent>) => void;
    onDateClick?: (data: {
        date: Date;
        events: CalendarEvent[];
    }) => void;
    onViewChange?: (data: {
        date: Date;
        view: CalendarViewMode;
    }) => void;
}
export interface CalendarViewMapping {
    idField: string;
    titleField: string;
    startField: string;
    endField?: string;
    colorField?: string;
    categoryField?: string;
    energyField?: string;
    priorityField?: string;
    statusField?: string;
}
export declare function transformToCalendarEvent(row: Record<string, any>, mapping: CalendarViewMapping): CalendarEvent;
//# sourceMappingURL=types.d.ts.map