import { FormServiceConfig } from '@wix/headless-forms/services'; import { type Event, type RichContent } from '../../services/event-service.js'; export interface RootProps { /** Child components that will have access to the event service */ children: React.ReactNode; /** Event */ event: Event; } /** * Event Root core component that provides event service context. * * @component */ export declare function Root(props: RootProps): React.ReactNode; export interface RawProps { /** Render prop function */ children: (props: RawRenderProps) => React.ReactNode; } export interface RawRenderProps { /** Event */ event: Event; } /** * Event Raw core component that provides event. * * @component */ export declare function Raw(props: RawProps): React.ReactNode; export interface SlugProps { /** Render prop function */ children: (props: SlugRenderProps) => React.ReactNode; } export interface SlugRenderProps { /** Event slug */ slug: string; } /** * Event Slug core component that provides event slug. * * @component */ export declare function Slug(props: SlugProps): React.ReactNode; export interface TypeProps { /** Render prop function */ children: (props: TypeRenderProps) => React.ReactNode; } export interface TypeRenderProps { /** Is event ticketed */ ticketed: boolean; /** Is event RSVP */ rsvp: boolean; /** Is event external */ external: boolean; } /** * Event Type core component that provides event type. * * @component */ export declare function Type(props: TypeProps): React.ReactNode; export interface ImageProps { /** Render prop function */ children: (props: ImageRenderProps) => React.ReactNode; } export interface ImageRenderProps { /** Event image */ image: string | undefined; } /** * Event Image core component that provides event image. * * @component */ export declare function Image(props: ImageProps): React.ReactNode; export interface TitleProps { /** Render prop function */ children: (props: TitleRenderProps) => React.ReactNode; } export interface TitleRenderProps { /** Event title */ title: string; } /** * Event Title core component that provides event title. * * @component */ export declare function Title(props: TitleProps): React.ReactNode; export interface DateProps { /** Render prop function */ children: (props: DateRenderProps) => React.ReactNode; /** Format of the event date */ format?: 'short' | 'full'; } export interface DateRenderProps { /** Event start date, null if TBD */ startDate: Date | null; /** Event end date, null if TBD */ endDate: Date | null; /** Event time zone ID, null if TBD */ timeZoneId: string | null; /** Whether the event date and time is TBD */ dateAndTimeTbd: boolean; /** Message to display if the event date and time is TBD */ dateAndTimeTbdMessage: string | null; /** Whether to hide the end date */ hideEndDate: boolean; /** Whether to show the time zone */ showTimeZone: boolean; /** Formatted event date */ formattedDate: string; } /** * Event Date core component that provides event date. * * @component */ export declare function DateCore(props: DateProps): React.ReactNode; export interface LocationProps { /** Render prop function */ children: (props: LocationRenderProps) => React.ReactNode; /** Format of the event location */ format?: 'short' | 'full'; } export interface LocationRenderProps { /** Formatted event location */ formattedLocation: string; /** Event location latitude (null if TBD) */ latitude: number | null; /** Event location longitude (null if TBD) */ longitude: number | null; } /** * Event Location core component that provides event location. * * @component */ export declare function Location(props: LocationProps): React.ReactNode; export interface ShortDescriptionProps { /** Render prop function */ children: (props: ShortDescriptionRenderProps) => React.ReactNode; } export interface ShortDescriptionRenderProps { /** Event short description */ shortDescription: string; } /** * Event ShortDescription core component that provides event short description. Not rendered if there is no short description. * * @component */ export declare function ShortDescription(props: ShortDescriptionProps): React.ReactNode; export interface DescriptionProps { /** Render prop function */ children: (props: DescriptionRenderProps) => React.ReactNode; } export interface DescriptionRenderProps { /** Event description in rich content format */ description: RichContent; } /** * Event Description core component that provides event description. Not rendered if there is no description. * * @component */ export declare function Description(props: DescriptionProps): React.ReactNode; export interface RsvpButtonProps { /** Render prop function */ children: (props: RsvpButtonRenderProps) => React.ReactNode; } export interface RsvpButtonRenderProps { /** Event slug */ slug: string; /** Is event ticketed */ ticketed: boolean; } /** * Event RsvpButton core component that provides event slug and ticketed status. * * @component */ export declare function RsvpButton(props: RsvpButtonProps): React.ReactNode; export interface AddToGoogleCalendarProps { /** Render prop function */ children: (props: AddToGoogleCalendarRenderProps) => React.ReactNode; } export interface AddToGoogleCalendarRenderProps { /** Google calendar URL */ url: string; } /** * Event AddToGoogleCalendar core component that provides calendar URL. * * @component */ export declare function AddToGoogleCalendar(props: AddToGoogleCalendarProps): React.ReactNode; export interface AddToIcsCalendarProps { /** Render prop function */ children: (props: AddToIcsCalendarRenderProps) => React.ReactNode; } export interface AddToIcsCalendarRenderProps { /** ICS calendar URL */ url: string; } /** * Event AddToIcsCalendar core component that provides calendar URL. * * @component */ export declare function AddToIcsCalendar(props: AddToIcsCalendarProps): React.ReactNode; export interface OtherEventsProps { /** Number of other events to display */ count: number; /** Render prop function */ children: (props: OtherEventsRenderProps) => React.ReactNode; } export interface OtherEventsRenderProps { /** Other events */ events: Event[]; } /** * Event OtherEvents core component that provides other events. * * @component */ export declare function OtherEvents(props: OtherEventsProps): React.ReactNode; export interface FormProps { /** Render prop function */ children: (props: FormRenderProps) => React.ReactNode; /** Thank you page URL */ thankYouPageUrl?: string; } export interface FormRenderProps { /** Form ID */ formId: string; /** Submit handler */ onSubmit: FormServiceConfig['onSubmit']; } /** * Event Form core component that provides form ID. * * @component */ export declare function Form(props: FormProps): React.ReactNode;