/**
 * Calendar utility functions for event positioning, sizing, and layout calculations
 */
export interface CalendarEvent {
    id: string;
    title: string;
    startTime: string;
    endTime: string;
    date: string;
    allDay?: boolean;
    color?: string;
}
export interface GridConfig {
    startTime: string;
    endTime: string;
    intervalMinutes: number;
    pixelsPerSlot: number;
    showAllDay: boolean;
}
export interface EventPosition {
    top: number;
    height: number;
    left: number;
    width: number;
    zIndex: number;
}
export interface EventLayout {
    event: CalendarEvent;
    position: EventPosition;
    column: number;
    totalColumns: number;
}
export interface TimeSlot {
    startTime: string;
    endTime: string;
    index: number;
}
export declare const timeToMinutes: (time: string) => number;
export declare const minutesToTime: (minutes: number) => string;
export declare const getEventDuration: (startTime: string, endTime: string) => number;
export declare const getTotalTimeSlots: (gridConfig: GridConfig) => number;
export declare const getTimeSlotIndex: (time: string, gridConfig: GridConfig) => number;
export declare const getTimeSlotForIndex: (index: number, gridConfig: GridConfig) => TimeSlot;
export declare const calculateEventPosition: (event: CalendarEvent, gridConfig: GridConfig, containerWidth?: number) => EventPosition;
export declare const calculateEventHeight: (duration: number, intervalMinutes: number, pixelsPerSlot: number) => number;
export declare const eventsOverlap: (event1: CalendarEvent, event2: CalendarEvent) => boolean;
export declare const findOverlappingEvents: (events: CalendarEvent[], targetEvent: CalendarEvent) => CalendarEvent[];
export declare const groupOverlappingEvents: (events: CalendarEvent[]) => CalendarEvent[][];
export declare const resolveOverlappingEvents: (events: CalendarEvent[], gridConfig: GridConfig, containerWidth?: number) => EventLayout[];
export declare const generateTimeGrid: (gridConfig: GridConfig) => TimeSlot[];
export declare const filterEventsByDate: (events: CalendarEvent[], date: string) => CalendarEvent[];
export declare const sortEventsByStartTime: (events: CalendarEvent[]) => CalendarEvent[];
export declare const separateAllDayEvents: (events: CalendarEvent[]) => {
    allDayEvents: CalendarEvent[];
    timedEvents: CalendarEvent[];
};
export declare const isValidTimeFormat: (time: string) => boolean;
export declare const isValidDateFormat: (date: string) => boolean;
export declare const validateEvent: (event: CalendarEvent) => string[];
export declare const DEFAULT_GRID_CONFIGS: Record<string, GridConfig>;
