import { type Snippet } from 'svelte'; export type CalendarView = 'month' | 'week' | 'day' | 'agenda'; export type CalendarTone = 'brand' | 'success' | 'warning' | 'error' | 'info' | 'violet' | 'rose'; export interface CalendarSource { id: string; label: string; color?: CalendarTone; visible?: boolean; } export interface CalendarAppEvent { id: string; title: string; /** YYYY-MM-DD */ date: string; /** Optional end date for multi-day (inclusive) */ endDate?: string; startTime?: string; endTime?: string; allDay?: boolean; calendarId?: string; color?: CalendarTone; location?: string; /** Person / client linked to the event (shown in detail). */ people?: string; description?: string; } export interface CalendarAppLabels { create?: string; myCalendars?: string; today?: string; search?: string; month?: string; week?: string; day?: string; agenda?: string; allDay?: string; eventsVisible?: string; noEvents?: string; dayEvents?: string; close?: string; previous?: string; next?: string; back?: string; } interface CalendarAppProps { events?: CalendarAppEvent[]; calendars?: CalendarSource[]; view?: CalendarView; /** Anchor date for navigation */ date?: Date; query?: string; selectedEventId?: string | null; showSidebar?: boolean; showSearch?: boolean; showCreate?: boolean; /** Right detail panel (day agenda / event detail) on lg+ */ showDetailPanel?: boolean; /** i18n-friendly UI strings; English defaults when omitted */ labels?: CalendarAppLabels; /** Locale for toLocaleDateString (default `'en'`) */ locale?: string; weekStartsOn?: 0 | 1; /** Allow resizing timed events in week / day views */ resizable?: boolean; /** Allow dragging timed events to a new time / day */ draggableEvents?: boolean; /** Snap interval while resizing / dragging (minutes) */ resizeSnapMinutes?: number; /** Minimum event duration when resizing (minutes) */ resizeMinMinutes?: number; class?: string; /** Host actions (Edit / Delete / Open) under event detail */ eventActions?: Snippet<[CalendarAppEvent]>; onviewchange?: (view: CalendarView) => void; ondatechange?: (date: Date) => void; oneventclick?: (event: CalendarAppEvent) => void; ondayclick?: (date: string) => void; oncreate?: (date: string) => void; oncalendartoggle?: (id: string, visible: boolean) => void; onresize?: (event: CalendarAppEvent, detail: { startTime: string; endTime: string; }) => void; onmove?: (event: CalendarAppEvent, detail: { date: string; startTime: string; endTime: string; }) => void; } declare const CalendarApp: import("svelte").Component; type CalendarApp = ReturnType; export default CalendarApp;