import { type CardStylesContent, type ContainerStylesContent, type SectionStylesContent } from "../fields/boxStyles";
import { type BlockManifest } from "../manifest/schema";
import type { SystemBlockDefinition } from "../registry";
type BlogListingVariant = "grid" | "stack";
export declare const blogListingManifest: BlockManifest;
export type BlogListingContent = {
    variant?: BlogListingVariant | null;
    /**
     * Legacy persisted rows used `layout` before block variants existed.
     * `resolveVariantKey` still reads this field, so old blog indexes render in
     * the same grid/stack layout without keeping a duplicate editor control.
     */
    layout?: BlogListingVariant | null;
    columns?: "2" | "3" | "4" | null;
    postsPerPage?: "6" | "12" | "24" | "48" | null;
    showImages?: boolean | null;
    showExcerpts?: boolean | null;
    showDates?: boolean | null;
    readMoreText?: string | null;
    emptyMessage?: string | null;
    _sectionStyles?: SectionStylesContent;
    _containerStyles?: ContainerStylesContent;
    _cardStyles?: CardStylesContent;
};
export type BlogPostListEntry = {
    id: string;
    slug: string;
    path: string;
    title: string;
    excerpt: string | null;
    publishedAt: string | null;
    updatedAt: string;
    status: string;
    image?: {
        url: string;
        alt?: string | null;
    } | null;
};
export declare const blogListingBlockDefinition: SystemBlockDefinition<BlogListingContent>;
export {};
