import React from 'react';
import { DispatchType, FulfillmentsServiceConfig } from '../types/fulfillments-types.js';
import { AsChildChildren } from '@wix/headless-utils/react';
/**
* Props for the Settings Root component
*/
export interface RootProps {
/** Child components that will have access to the settings context */
children: (props: {
isLoading: boolean;
}) => React.ReactNode;
/** Optional pre-loaded fulfillments service configuration */
fulfillmentsServiceConfig?: FulfillmentsServiceConfig;
}
/**
* Root headless component for OLO Settings
* Provides service context for settings components
*
* @example
* ```tsx
*
*
* {({ timeSlot, hasDetails }) => (
*
{timeSlot?.dispatchType}
* )}
*
*
* ```
*/
export declare const Root: React.FC;
interface CurrentTimeSlotProps {
/** Children render prop that receives the current details */
children?: AsChildChildren<{
timeSlot: string;
}>;
/** CSS classes to apply to the default element */
className?: string;
/** Whether to render as a child component */
asChild?: boolean;
/** prefixElement to display before the time slot text */
prefixElement?: React.ReactNode;
deliveryTypeText: string;
pickupTypeText: string;
asapTimeText: string;
asapTimeRangeText: string;
preorderTodayText: string;
preorderTomorrowText: string;
}
export declare const CurrentTimeSlot: React.ForwardRefExoticComponent>;
interface DispatchTypeSelectorProps extends Omit, 'children'> {
/** Child components that will have access to dispatch type context */
children: React.ReactNode;
}
/**
* Container component for dispatch type selection (pickup or delivery)
* Provides context for child components to access dispatch type data
* Does not render if no dispatch types are available
*
* @example
* ```tsx
*
* No options}>
*
* {({ type, isSelected, selectDispatchType }) => (
*
* )}
*
*
*
* ```
*/
export declare const DispatchTypeSelector: React.ForwardRefExoticComponent>;
interface DispatchTypeOptionsProps extends Omit, 'children'> {
/** Child components to render when dispatch types are available */
children: React.ReactNode;
/** Optional content to display when no dispatch types are available */
emptyState?: React.ReactNode;
}
/**
* Container for dispatch type options list with empty state support
*
* @example
* ```tsx
* No options available}>
*
* {({ type }) =>