import { categories, posts, tags } from '@wix/blog'; import { members } from '@wix/members'; import { type ServiceAPI } from '@wix/services-definitions'; import type { Signal } from '@wix/services-definitions/core-services/signals'; export interface PostResolvedFields { owner: members.Member | null | undefined; categories: posts.Category[]; tags: tags.BlogTag[]; coverImageUrl: string | null; coverImageAlt: string | null; } export interface PostWithResolvedFields extends posts.Post { resolvedFields: PostResolvedFields; } type QueryPostsSortField = Parameters>>['ascending']>[number]; export interface QueryPostsSort { fieldName: QueryPostsSortField; order: posts.SortOrderWithLiterals; } export declare const BlogFeedServiceDefinition: string & { __api: { posts: Signal; category: Signal; sort: Signal; isLoading: Signal; error: Signal; totalPosts: Signal; isEmpty: () => boolean; hasNextPage: () => boolean; loadNextPage: () => Promise; setSort: (sort: QueryPostsSort[]) => void; }; __config: {}; isServiceDefinition?: boolean; } & { posts: Signal; category: Signal; sort: Signal; isLoading: Signal; error: Signal; totalPosts: Signal; isEmpty: () => boolean; hasNextPage: () => boolean; loadNextPage: () => Promise; setSort: (sort: QueryPostsSort[]) => void; }; export type BlogFeedServiceAPI = ServiceAPI; export type BlogFeedServiceConfig = { initialPosts: PostWithResolvedFields[]; initialCategory?: categories.Category; excludePostIds: string[]; totalPostCount: number; pageSize: number; nextPageCursor?: string; sort: QueryPostsSort[]; showPinnedPostsFirst: boolean; }; export declare const BlogFeedService: import("@wix/services-definitions").ServiceFactory; category: Signal; sort: Signal; isLoading: Signal; error: Signal; totalPosts: Signal; isEmpty: () => boolean; hasNextPage: () => boolean; loadNextPage: () => Promise; setSort: (sort: QueryPostsSort[]) => void; }; __config: {}; isServiceDefinition?: boolean; } & { posts: Signal; category: Signal; sort: Signal; isLoading: Signal; error: Signal; totalPosts: Signal; isEmpty: () => boolean; hasNextPage: () => boolean; loadNextPage: () => Promise; setSort: (sort: QueryPostsSort[]) => void; }, BlogFeedServiceConfig>; export type BlogFeedServiceConfigParams = { categorySlug?: string; pageSize?: number; showPinnedPostsFirst?: boolean; excludePostIds?: (string | undefined)[]; postIds?: (string | undefined)[]; sort?: QueryPostsSort[]; }; export declare function loadBlogFeedServiceConfig(params?: BlogFeedServiceConfigParams): Promise; export declare function enhancePosts(rawPosts: posts.Post[]): Promise; export declare function enhancePosts(rawPosts: (posts.Post | undefined)[]): Promise<(PostWithResolvedFields | undefined)[]>; export {};