/**
 * BlogCard (pure presentation).
 *
 * Two densities:
 *   - `default`: full vertical card with cover, title, summary, author/date
 *     footer.
 *   - `sm`: compact horizontal card (~80px tall) for chat-inline rendering.
 *
 * The card writes NO click logic — callers wrap with their own anchor
 * (e.g. hub's `<NavLinkAnchor>` or lib's `<NavLinkAnchorViaRuntime>`)
 * and pass the resolved detail URL via `href`.
 *
 * Image-fallback chain:
 *   `post.featured_image` → `placeholderUrl` (caller passes
 *   `useOgPlaceholder(...)` from the hub OR any pre-resolved URL) →
 *   `bg-ods-bg` (via the slot's background).
 */
import React from 'react';
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';
}): React.JSX.Element;
export declare function BlogCard({ post, href, target: targetProp, rel: relProp, targetPlatform, placeholderUrl: placeholderUrlProp, size, className, hasEmbeddedVideo, priority, }: BlogCardProps): React.JSX.Element;
//# sourceMappingURL=blog-card.d.ts.map