import { ReactNode } from 'react'; import { EventModel } from '../types/scheduler-types'; import { ProcessedEventsData } from '../types/internal-interface'; /** * Formats a Date object to a time string using the given locale and format. * * @param {Date} time - The time to format. * @param {string} timeFormat - The time format string. * @param {string} locale - The locale string. * @returns {string} Formatted time string. * @private */ export declare const formatEventTime: (time: Date, timeFormat: string, locale: string) => string; /** * Renders an overflow indicator arrow for spanned events. * * @param {'left' | 'right'} direction - The overflow direction (logical, before RTL swap). * @returns {ReactNode} The overflow indicator element. * @private */ export declare const renderOverflowIndicator: (direction: 'left' | 'right') => ReactNode; /** * Renders a time label element. * * @param {string} time - The formatted time string to display. * @returns {ReactNode} The time element. * @private */ export declare const renderTimeNode: (time: string) => ReactNode; /** * Renders the content for a spanned (multi-day or overflowing) event. * * @param {EventModel} event - The event model to render. * @param {boolean} isOverflowLeft - Whether the event overflows to the left. * @param {boolean} isOverflowRight - Whether the event overflows to the right. * @param {string} locale - The locale string. * @param {string} timeFormat - The time format string. * @param {string} addTitleLabel - The localized label for 'Add title'. * @returns {ReactNode} The spanned event content. * @private */ export declare const renderSpannedContent: (event: EventModel, isOverflowLeft: boolean, isOverflowRight: boolean, locale: string, timeFormat: string, addTitleLabel: string) => ReactNode; /** * Renders the content for a standard (non-spanned) event. * * @param {EventModel} event - The event model to render. * @param {string} locale - The locale string. * @param {string} timeFormat - The time format string. * @param {string} addTitleLabel - The localized label for 'Add title'. * @returns {ReactNode} The standard event content. * @private */ export declare const renderStandardEventContent: (event: EventModel, locale: string, timeFormat: string, addTitleLabel: string) => ReactNode; /** * Renders basic appointment details (subject, location, optional time, recurrence). * View-agnostic: pass `showTime` to control time visibility instead of view flags. * * @param {EventModel} event - The event model to render. * @param {string} locale - The locale string. * @param {string} timeFormat - The time format string. * @param {string} addTitleLabel - The localized label for 'Add title'. * @param {string} [timeDisplay] - Optional pre-formatted time display text. * @param {boolean} [showTime] - Whether to show the time row. Defaults to true when the event is not a block. * @returns {ReactNode} The basic event details content. * @private */ export declare const renderBasicEventContent: (event: EventModel, locale: string, timeFormat: string, addTitleLabel: string, timeDisplay?: string, showTime?: boolean) => ReactNode; /** * Determines and returns the appropriate day/all-day event content based on type. * View-agnostic — no timeline or view-specific branching. * * @param {Function | undefined} eventTemplate - Optional custom event template. * @param {EventModel} event - The event model. * @param {number | undefined} totalSegments - Number of segments if the event is spanned. * @param {boolean} isOverflowLeft - Whether the event overflows to the left. * @param {boolean} isOverflowRight - Whether the event overflows to the right. * @param {string} locale - The locale string. * @param {string} timeFormat - The time format string. * @param {string} addTitleLabel - The localized label for 'Add title'. * @returns {ReactNode} The resolved event content. * @private */ export declare const getEventContent: (eventTemplate: ((event: EventModel) => ReactNode) | undefined, event: EventModel, totalSegments: number | undefined, isOverflowLeft: boolean, isOverflowRight: boolean, locale: string, timeFormat: string, addTitleLabel: string) => ReactNode; /** * Formats a start and end Date into a time range string (e.g. "9:00 AM - 10:00 AM"). * Resolves the format pattern automatically when no explicit format is provided. * * @param {Date} start - The start time. * @param {Date} end - The end time. * @param {string} timeFormat - The explicit time format string (may be empty). * @param {string} locale - The locale string. * @returns {string} Formatted time range string. * @private */ export declare const getTimeRangeString: (start: Date, end: Date, timeFormat: string, locale: string) => string; /** * Renders the standard content for a time-slot event. * Displays subject, optional location, time range and recurrence icon. * * @param {ProcessedEventsData} eventInfo - The processed event data. * @param {string} timeFormat - The time format string. * @param {string} locale - The locale string. * @param {string} addTitleLabel - The localized label for 'Add title'. * @returns {ReactNode} The standard time-slot event content. * @private */ export declare const renderTimeSlotStandardContent: (eventInfo: ProcessedEventsData, timeFormat: string, locale: string, addTitleLabel: string) => ReactNode; /** * Renders the spanned content for a vertical time-slot event, including top/bottom * overflow indicators when timescale is enabled, or left/right when disabled. * View-agnostic: vertical time-slot behavior only (no timeline branching). * * @param {ProcessedEventsData} eventInfo - The processed event data. * @param {Date[]} renderDates - The dates currently rendered in the view. * @param {boolean} timeScaleEnabled - Whether timescale is enabled. * @param {string} timeFormat - The time format string. * @param {string} locale - The locale string. * @param {string} addTitleLabel - The localized label for 'Add title'. * @param {[number, number]} [startHourTuple] - The scheduler start hour tuple. * @param {[number, number]} [endHourTuple] - The scheduler end hour tuple. * @param {Function} [eventTemplate] - Optional custom event template. * @returns {ReactNode} The spanned time-slot event content. * @private */ export declare const renderTimeSlotSpannedContent: (eventInfo: ProcessedEventsData, renderDates: Date[], timeScaleEnabled: boolean, timeFormat: string, locale: string, addTitleLabel: string, startHourTuple?: [number, number], endHourTuple?: [number, number], eventTemplate?: (event: EventModel) => ReactNode) => ReactNode; /** * Renders spanned content for timeline (horizontal) time-slot events. * Always uses left/right overflow indicators with hour-tuple aware overflow detection. * * @param {ProcessedEventsData} eventInfo - The processed event data. * @param {Date[]} renderDates - The dates currently rendered in the view. * @param {string} timeFormat - The time format string. * @param {string} locale - The locale string. * @param {string} addTitleLabel - The localized label for 'Add title'. * @param {[number, number]} [startHourTuple] - The scheduler start hour tuple. * @param {[number, number]} [endHourTuple] - The scheduler end hour tuple. * @param {Function} [eventTemplate] - Optional custom event template. * @returns {ReactNode} The spanned timeline time-slot event content. * @private */ export declare const renderTimelineTimeSlotSpannedContent: (eventInfo: ProcessedEventsData, renderDates: Date[], timeFormat: string, locale: string, addTitleLabel: string, startHourTuple?: [number, number], endHourTuple?: [number, number], eventTemplate?: (event: EventModel) => ReactNode) => ReactNode; /** * Resolves and returns the appropriate content for a vertical time-slot event. * Prioritizes the custom event template, then spanned, then standard content. * View-agnostic: vertical time-slot behavior only. * * @param {Function | undefined} eventTemplate - Optional custom template. * @param {ProcessedEventsData} eventInfo - The processed event data. * @param {Date[]} renderDates - The dates currently rendered. * @param {boolean} timeScaleEnabled - Whether timescale is enabled. * @param {string} timeFormat - The time format string. * @param {string} locale - The locale string. * @param {string} addTitleLabel - The localized label for 'Add title'. * @param {[number, number]} [startHourTuple] - The scheduler start hour tuple. * @param {[number, number]} [endHourTuple] - The scheduler end hour tuple. * @returns {ReactNode} The resolved event content. * @private */ export declare const getTimeSlotEventContent: (eventTemplate: ((event: EventModel) => ReactNode) | undefined, eventInfo: ProcessedEventsData, renderDates: Date[], timeScaleEnabled: boolean, timeFormat: string, locale: string, addTitleLabel: string, startHourTuple?: [number, number], endHourTuple?: [number, number]) => ReactNode; /** * Resolves content for timeline (horizontal) time-slot events. * Uses timeline spanned content with left/right overflow; no vertical arrows. * * @param {Function | undefined} eventTemplate - Optional custom template. * @param {ProcessedEventsData} eventInfo - The processed event data. * @param {Date[]} renderDates - The dates currently rendered. * @param {string} timeFormat - The time format string. * @param {string} locale - The locale string. * @param {string} addTitleLabel - The localized label for 'Add title'. * @param {[number, number]} [startHourTuple] - The scheduler start hour tuple. * @param {[number, number]} [endHourTuple] - The scheduler end hour tuple. * @returns {ReactNode} The resolved timeline time-slot event content. * @private */ export declare const getTimelineTimeSlotEventContent: (eventTemplate: ((event: EventModel) => ReactNode) | undefined, eventInfo: ProcessedEventsData, renderDates: Date[], timeFormat: string, locale: string, addTitleLabel: string, startHourTuple?: [number, number], endHourTuple?: [number, number]) => ReactNode;