import { Ref } from 'vue'; import { ScheduleView, ScheduleEvent, ScheduleBlockedSlot, ScheduleEventStatus } from '../types/components'; type ReadableRef = Readonly>; export declare const SCHEDULE_SLOT_HEIGHT = 40; export interface UseScheduleCalendarLayoutOptions { currentView: ReadableRef; currentDate: ReadableRef; now: ReadableRef; events: ReadableRef; blockedSlots: ReadableRef; dayStartHour: ReadableRef; dayEndHour: ReadableRef; slotDuration: ReadableRef; weekStartsOn: ReadableRef<0 | 1>; locale: ReadableRef; showNowIndicator: ReadableRef; slotHeight?: ReadableRef; } /** Builds ScheduleCalendar date ranges, event layout styles, and display labels. */ export declare function useScheduleCalendarLayout(options: UseScheduleCalendarLayoutOptions): { totalSlots: import('vue').ComputedRef; timeLabels: import('vue').ComputedRef; weekDays: import('vue').ComputedRef; visibleDays: import('vue').ComputedRef; headerTitle: import('vue').ComputedRef; monthDays: import('vue').ComputedRef<{ date: Date; isCurrentMonth: boolean; }[]>; monthWeekdayLabels: import('vue').ComputedRef; isToday: (date: Date) => boolean; isSameDay: typeof isSameDay; getEventStyle: (event: ScheduleEvent, dayDate: Date) => Record | null; getEventsForDay: (day: Date) => ScheduleEvent[]; getEventsForDate: (date: Date) => ScheduleEvent[]; getBlockedForDay: (day: Date) => ScheduleBlockedSlot[]; getBlockedStyle: (slot: ScheduleBlockedSlot) => Record; getNowIndicatorStyle: () => Record | null; getStatusClass: typeof getStatusClass; getMonthStatusClass: typeof getMonthStatusClass; formatEventTime: typeof formatEventTime; }; export declare function parseScheduleModelDate(value?: Date | string): Date; export declare function getWeekStart(date: Date, weekStartsOn: 0 | 1): Date; export declare function isSameDay(a: Date, b: Date): boolean; declare function getStatusClass(status?: ScheduleEventStatus): string; declare function getMonthStatusClass(status?: ScheduleEventStatus): string; declare function formatEventTime(event: ScheduleEvent): string; export {};