import type { Sort as SortPrimitive } from '@wix/headless-components/react'; import React from 'react'; import type { BlogFeedServiceAPI, BlogFeedServiceConfig, QueryPostsSort } from '../../services/blog-feed-service.js'; /** * Props for BlogFeed Root core component */ export interface RootProps { children: React.ReactNode; blogFeedConfig?: BlogFeedServiceConfig; } /** * Core BlogFeed Root component that provides BlogFeed service context. * This is the service-connected component that should be wrapped by the public API. * * @component */ export declare const Root: React.ForwardRefExoticComponent>; /** * Props for BlogFeed Posts core component */ export interface PostsProps { children: (props: PostsRenderProps) => React.ReactNode; } export interface PostsRenderProps { posts: ReturnType; isLoading: ReturnType; isEmpty: ReturnType; hasNextPage: ReturnType; loadNextPage: BlogFeedServiceAPI['loadNextPage']; hasPosts: boolean; totalPosts: number; } /** * Core Posts component that provides posts data access */ export declare const Posts: { (props: PostsProps): React.ReactNode; displayName: string; }; /** * Props for BlogFeed LoadMore core component */ export interface LoadMoreProps { children: (props: LoadMoreRenderProps) => React.ReactNode; } export interface LoadMoreRenderProps { hasNextPage: boolean; isLoading: boolean; loadNextPage: () => Promise; } /** * Core LoadMore component for pagination functionality */ export declare const LoadMore: { (props: LoadMoreProps): React.ReactNode; displayName: string; }; export interface SortProps { children: (props: { currentSort: QueryPostsSort[]; sortOptions: SortPrimitive.SortOption[]; setSort: (sort: QueryPostsSort[]) => void; }) => React.ReactNode; } export declare const Sort: { (props: SortProps): React.ReactNode; displayName: string; };