import { type FilterOption, Filter as FilterPrimitive } from '@wix/headless-components/react'; import { type EventListServiceConfig } from '../../services/event-list-service.js'; import { type Event } from '../../services/event-service.js'; export interface RootProps { /** Child components that will have access to the event list service */ children: React.ReactNode; /** Configuration for the event list service */ eventListServiceConfig: EventListServiceConfig; } /** * EventList Root core component that provides event list 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 { /** List of events */ events: Event[]; /** Indicates whether events are currently being loaded */ isLoading: boolean; /** Indicates whether more events are currently being loaded */ isLoadingMore: boolean; /** Indicates whether there are more events to load */ hasMoreEvents: boolean; /** Function to load more events */ loadMoreEvents: () => void; } /** * EventList Raw core component that provides event list data. * * @component */ export declare function Raw(props: RawProps): React.ReactNode; export interface ErrorProps { /** Render prop function */ children: (props: ErrorRenderProps) => React.ReactNode; } export interface ErrorRenderProps { /** Event list error message */ error: string; } /** * EventList Error core component that provides event list error. Not rendered if there is no error. * * @component */ export declare function Error(props: ErrorProps): React.ReactNode; export interface CategoryFilterProps { /** Render prop function */ children: (props: CategoryFilterRenderProps) => React.ReactNode; /** All categories label*/ allCategoriesLabel: string; } export interface CategoryFilterRenderProps { /** Filter options */ filterOptions: FilterOption[]; /** Filter value */ value: FilterPrimitive.Filter; /** Function to handle category change */ onChange: (value: FilterPrimitive.Filter) => Promise; } /** * CategoryFilter core component that provides event list filters data. * * @component */ export declare function CategoryFilter(props: CategoryFilterProps): React.ReactNode; export interface StatusFilterProps { /** Render prop function */ children: (props: StatusFilterRenderProps) => React.ReactNode; /** All events label */ allEventsLabel: string; /** Upcoming events label */ upcomingEventsLabel: string; /** Past events label */ pastEventsLabel: string; } export interface StatusFilterRenderProps { /** Filter options */ filterOptions: FilterOption[]; /** Filter value */ value: FilterPrimitive.Filter; /** Function to handle status change */ onChange: (value: FilterPrimitive.Filter) => Promise; } /** * StatusFilter core component that provides event list status filters data. * * @component */ export declare function StatusFilter(props: StatusFilterProps): React.ReactNode;