import * as react_jsx_runtime from 'react/jsx-runtime'; interface AppointmentDaySchedule { day: "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" | "Sun"; enabled: boolean; /** 24h format — "09:00" */ startTime: string; /** 24h format — "17:00" */ endTime: string; } interface AppointmentAvailabilityPrefs { meetingDuration: string; schedulingBuffer: string; maxSlotsPerDay: string; /** IANA timezone identifier — e.g. "Australia/Sydney" */ timezone: string; /** * Online meeting platform brokers require clients to use. * "any" means the client can choose between Google Meet and Microsoft Teams. */ defaultMeetingPlatform?: "google-meet" | "microsoft-teams" | "any"; } interface AppointmentBlockedDate { /** ISO date string — "2026-04-25" */ date: string; /** Human-readable label — "ANZAC Day" */ label?: string; /** Partial day — start time in 24h format "09:00" */ timeStart?: string; /** Partial day — end time in 24h format "17:00" */ timeEnd?: string; } interface AppointmentAvailabilitySettingsProps { /** * Initial weekly schedule. * @remarks Mount-time initialiser only — prop changes after mount are ignored. * Use the `key` prop to reset the component when async data arrives. */ schedule: AppointmentDaySchedule[]; /** * Saved booking preferences from DB — initialises the Booking Preferences tab. * @remarks Mount-time initialiser only. */ prefs?: AppointmentAvailabilityPrefs; /** * Custom blocked dates added by the user (non-holiday). * Merged with `publicHolidays` in the Time Off tab. * @remarks Mount-time initialiser only. */ blockedDates?: AppointmentBlockedDate[]; /** * Public holiday list from the DB/API. * When provided, replaces the built-in `AU_PUBLIC_HOLIDAYS_2026` fallback. * @remarks Mount-time initialiser only. */ publicHolidays?: AppointmentBlockedDate[]; onSave?: (schedule: AppointmentDaySchedule[], prefs: AppointmentAvailabilityPrefs) => void; onBlockedDatesChange?: (dates: AppointmentBlockedDate[]) => void; /** Fired immediately whenever any booking preference value changes (before Save). */ onPrefsChange?: (prefs: AppointmentAvailabilityPrefs) => void; } declare const TIMEZONE_OPTIONS: { value: string; label: string; }[]; declare const MEETING_PLATFORM_OPTIONS: { value: "google-meet" | "microsoft-teams" | "any"; label: string; }[]; declare function AppointmentAvailabilitySettings({ schedule: initialSchedule, prefs: prefsProp, blockedDates: blockedDatesProp, publicHolidays: publicHolidaysProp, onSave, onBlockedDatesChange, onPrefsChange, }: AppointmentAvailabilitySettingsProps): react_jsx_runtime.JSX.Element; export { type AppointmentAvailabilityPrefs, AppointmentAvailabilitySettings, type AppointmentAvailabilitySettingsProps, type AppointmentBlockedDate, type AppointmentDaySchedule, MEETING_PLATFORM_OPTIONS, TIMEZONE_OPTIONS };