import { type AsChildChildren } from '@wix/headless-utils/react'; import React from 'react'; import { type ScheduleItem } from '../services/schedule-item-service.js'; /** * Props for the ScheduleItem Root component. */ export interface RootProps { /** Schedule item data */ item: ScheduleItem; /** Whether to render as a child component */ asChild?: boolean; /** Child components that will have access to the schedule item */ children: React.ReactNode; /** CSS classes to apply to the default element */ className?: string; } /** * Root container that provides schedule item service context to all child components. * Must be used as the top-level ScheduleItem component. * * @order 1 * @component * @example * ```tsx * import { ScheduleItem } from '@wix/events/components'; * * function ScheduleItemPage({ item }) { * return ( * * * * * * * * ); * } * ``` */ export declare const Root: React.ForwardRefExoticComponent>; /** * Props for the ScheduleItem Name component. */ export interface NameProps { /** Whether to render as a child component */ asChild?: boolean; /** Custom render function when using asChild */ children?: AsChildChildren<{ /** Schedule item name */ name: string; }>; /** CSS classes to apply to the default element */ className?: string; } /** * Displays the schedule item name. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * *

* * * // asChild with react component * * {React.forwardRef(({ name, ...props }, ref) => ( *

* {name} *

* ))} *
* ``` */ export declare const Name: React.ForwardRefExoticComponent>; /** * Props for the ScheduleItem TimeSlot component. */ export interface TimeSlotProps { /** Whether to render as a child component */ asChild?: boolean; /** Custom render function when using asChild */ children?: AsChildChildren<{ /** Schedule item start time */ startTime: Date; /** Schedule item end time */ endTime: Date; /** Schedule item time zone ID */ timeZoneId: string; /** Formatted time range string (e.g., "18:30 - 19:00") */ formattedTimeRange: string; }>; /** CSS classes to apply to the default element */ className?: string; } /** * Displays the schedule item time slot information. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * *
* * * // asChild with react component * * {React.forwardRef(({ startTime, endTime, timeZoneId, formattedTimeRange, ...props }, ref) => ( * * ))} * * ``` */ export declare const TimeSlot: React.ForwardRefExoticComponent>; /** * Props for the Schedule Duration component. */ export interface DurationProps { /** Whether to render as a child component */ asChild?: boolean; /** Custom render function when using asChild */ children?: AsChildChildren<{ /** Duration in minutes */ durationMinutes: number; }>; /** CSS classes to apply to the default element */ className?: string; } /** * Displays the schedule item duration. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * *
* * * // asChild with react component * * {React.forwardRef(({ durationMinutes, ...props }, ref) => ( * * {durationMinutes > 0 ? `${durationMinutes} minutes` : ''} * * ))} * * ``` */ export declare const Duration: React.ForwardRefExoticComponent>; /** * Props for the ScheduleItem Description component. */ export interface DescriptionProps { /** Custom render function */ children?: AsChildChildren<{ /** Schedule item description */ description: string; }>; } /** * Provides the schedule item description in rich text format, e.g.

Description

. * * @component * @example * ```tsx * // Usage with react component * // If using RicosViewer, use fromRichTextHtml from @wix/ricos to convert the description to RichContent * * {React.forwardRef(({ description, ...props }, ref) => ( * * ))} * * ``` */ export declare const Description: React.ForwardRefExoticComponent>; /** * Props for the ScheduleItem Stage component. */ export interface StageProps { /** Whether to render as a child component */ asChild?: boolean; /** Custom render function when using asChild */ children?: AsChildChildren<{ /** Schedule item stage name */ stageName: string; }>; /** CSS classes to apply to the default element */ className?: string; } /** * Displays the schedule item stage. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * * * * * // asChild with react component * * {React.forwardRef(({ stageName, ...props }, ref) => ( * * {stageName} * * ))} * * ``` */ export declare const Stage: React.ForwardRefExoticComponent>; /** * Props for the ScheduleItem Tags component. */ export interface TagsProps { /** Whether to render as a child component */ asChild?: boolean; /** Child components or custom render function when using asChild */ children: React.ReactNode | AsChildChildren<{ /** Schedule item tags */ tags: string[]; }>; /** CSS classes to apply to the default element */ className?: string; } /** * Container for the schedule item tags. * * @component * @example * ```tsx * * * * * * ``` */ export declare const Tags: React.ForwardRefExoticComponent>; /** * Props for the ScheduleItem TagRepeater component. */ export interface TagRepeaterProps { /** Child components */ children: React.ReactNode; /** CSS classes to apply to the tag element */ className?: string; } /** * Repeater component that renders ScheduleItemTag.Root for each tag. * * @component * @example * ```tsx * * * * ``` */ export declare const TagRepeater: (props: TagRepeaterProps) => React.ReactNode;