import { type BlogCategory, type BlogDetailDto, type BlogListItemDto } from '../dto/blog.dto';
export interface WpMediaItem {
    node: {
        sourceUrl: string;
    } | null;
}
export interface WpBlogTranslationNode {
    slug: string | null;
    languageCode: string | null;
}
export interface WpBlogPostNode {
    slug: string | null;
    title: string | null;
    date: string | null;
    excerpt: string | null;
    content: string | null;
    featuredImage: WpMediaItem | null;
    categories: {
        nodes: {
            slug: string;
        }[];
    } | null;
    languageCode?: string | null;
    translations?: WpBlogTranslationNode[] | null;
}
export interface WpBlogPostsConnection {
    nodes: WpBlogPostNode[];
    pageInfo: {
        hasNextPage: boolean;
        endCursor?: string | null;
    };
}
export declare function computeReadTime(html: string, locale: string): string;
export declare function resolveBlogCategory(termSlugs: string[]): BlogCategory;
export declare function resolveCategoryLabel(category: BlogCategory, locale: string): string;
export declare function mapWpPostToListItem(node: WpBlogPostNode, locale: string): BlogListItemDto;
export declare function mapWpPostToDetail(node: WpBlogPostNode, locale: string): BlogDetailDto;
export declare function sliceBlogPage(connection: WpBlogPostsConnection, page: number, limit: number, locale: string): {
    posts: BlogListItemDto[];
    hasNextPage: boolean;
};
