import type { BlogPostSummary } from '../../../types/blog';
export interface BlogCardProps {
    post: BlogPostSummary;
    /** Detail URL resolved by the caller (e.g. `buildContentURL`). */
    href: string;
    /** When `_blank`, opens in a new tab. Set by chat dispatch via
     *  `computeIsNewTab`. Defaults to same-tab. */
    target?: '_blank';
    rel?: 'noopener noreferrer';
    /** Platform that owns `href`. Used by parent wrappers; the card
     *  itself doesn't read it but exposes the prop for the standard
     *  pure-presentation contract. */
    targetPlatform?: string | null;
    /** Placeholder URL when `post.featured_image` is missing. Caller
     *  resolves via `useOgPlaceholder` (hub) or a static asset. */
    placeholderUrl?: string | null;
    size?: 'default' | 'sm';
    className?: string;
    /** Surfaces a "Video" badge in compact mode. */
    hasEmbeddedVideo?: boolean;
    /** Optional render-prop for the title-area anchor in `default` mode.
     *  When omitted the title renders as plain text (caller wraps the
     *  whole card if it wants a link). */
    priority?: boolean;
}
export declare function BlogCardSkeleton({ size }: {
    size?: 'default' | 'sm';
}): import("react/jsx-runtime").JSX.Element;
export declare function BlogCard({ post, href, target, rel, placeholderUrl, size, className, hasEmbeddedVideo, priority, }: BlogCardProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=blog-card.d.ts.map