/** * Core TimeSlotList Components * Provides low-level access to TimeSlotListService via render props */ import React from 'react'; import { type TimeSlotListServiceConfig } from '../../../services/time-slot-list/index.js'; import type { TimeSlot } from '@wix/auto_sdk_bookings_availability-time-slots'; /** * Props for Root component */ export interface RootProps { children: React.ReactNode; config: TimeSlotListServiceConfig; } /** * Root component that provides TimeSlotListService context to its children. * * @component * @example * ```tsx * * // Your components * * ``` */ export declare function Root(props: RootProps): React.ReactNode; /** * Props for Timezone render prop component */ export interface TimezoneProps { children: (data: { /** Raw IANA timezone string (e.g., "America/New_York") */ timezone: string | undefined; /** User-friendly display name (e.g., "Eastern Standard Time") */ displayName: string; }) => React.ReactNode; } /** * Core component that provides access to the current timezone via render props. * * @component * @example * ```tsx * * {({ timezone, displayName }) => ( * {displayName} // "Eastern Standard Time" * )} * * ``` */ export declare function Timezone(props: TimezoneProps): React.ReactNode; /** * Render props for ListData component */ export interface ListDataRenderProps { timeSlots: TimeSlot[]; hasMore: boolean; isLoading: boolean; error: string | null; loadMore: () => Promise; hasSelectedTimeSlot: boolean; } /** * Props for ListData render prop component */ export interface ListDataProps { children: (data: ListDataRenderProps) => React.ReactNode; } /** * Core component that provides access to time slots list data via render props. * Use this to build list containers with GenericList. * * @component * @example * ```tsx * * {({ timeSlots, hasMore, isLoading, loadMore, hasSelectedTimeSlot }) => ( * * {children} * * )} * * ``` */ export declare function ListData(props: ListDataProps): React.ReactNode; /** * Render props for DateRange component */ export interface DateRangeRenderProps { startDate: Date; endDate: Date; setDateRange: (start: Date, end: Date) => void; /** IANA timezone string for the time slots (e.g., "America/New_York") */ timezone: string | undefined; } /** * Props for DateRange render prop component */ export interface DateRangeProps { children: (data: DateRangeRenderProps) => React.ReactNode; } /** * Core component that provides access to date range data and actions via render props. * Use this to build date range inputs for calendar/week view navigation. * * @component * @example * ```tsx * * {({ startDate, endDate, setDateRange }) => ( * setDateRange(start, end)} * /> * )} * * ``` */ export declare function DateRange(props: DateRangeProps): React.ReactNode;