import type { Snippet } from 'svelte'; import type { BreadcrumbItem } from '../../molecules/Breadcrumb/Breadcrumb.svelte'; import type { TocItem } from '../../molecules/TableOfContents/TableOfContents.svelte'; import type { ReactionItem } from '../../molecules/ReactionBar/ReactionBar.svelte'; export interface BlogAuthor { name: string; avatar?: string; role?: string; bio?: string; href?: string; } export interface BlogRelatedPost { id: string; title: string; excerpt?: string; cover?: string; href?: string; readingMinutes?: number; date?: string | Date | number; tags?: string[]; } export interface BlogAdjacentPost { id: string; title: string; href?: string; } export type BlogPostLayout = 'stacked' | 'with-toc'; interface BlogPostProps { title: string; excerpt?: string; /** @deprecated Prefer `authors` */ author?: string; /** @deprecated Prefer `authors` */ avatar?: string; authors?: BlogAuthor[]; date?: string | Date | number; updatedAt?: string | Date | number; tags?: string[]; category?: string; cover?: string; coverCaption?: string; readingMinutes?: number; breadcrumbs?: BreadcrumbItem[]; toc?: TocItem[]; layout?: BlogPostLayout; related?: BlogRelatedPost[]; prev?: BlogAdjacentPost; next?: BlogAdjacentPost; reactions?: ReactionItem[]; showShare?: boolean; showReactions?: boolean; showNewsletter?: boolean; newsletterTitle?: string; newsletterDescription?: string; featuredNote?: string; class?: string; children?: Snippet; actions?: Snippet; footer?: Snippet; comments?: Snippet; ontag?: (tag: string) => void; onrelated?: (id: string) => void; onadjacent?: (id: string) => void; onauthor?: (name: string) => void; onreact?: (emoji: string, reacted: boolean) => void; onsubscribe?: (payload: { email: string; name?: string; consent: boolean; }) => void; } declare const BlogPost: import("svelte").Component; type BlogPost = ReturnType; export default BlogPost;