import { type ComponentPropsWithoutRef, type ReactNode } from "react";
import { type AvatarProps } from "../Avatar";
import { type CardRadius } from "../Card";
export type BlogCardOrientation = "vertical" | "horizontal";
export type BlogCardCoverAspect = "16/9" | "4/3" | "1/1" | "3/4" | "21/9";
export interface BlogCardAuthor {
    name: ReactNode;
    /** Optional avatar — passed through to the polished `Avatar` primitive. */
    avatar?: Pick<AvatarProps, "src" | "initials" | "alt">;
    /** Optional role / handle / etc. */
    byline?: ReactNode;
}
export interface BlogCardProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "onChange" | "onDrag" | "onDragStart" | "onDragEnd" | "onAnimationStart"> {
    /** Cover artwork — usually an `<img>` element, but accepts any node. */
    cover?: ReactNode;
    /**
     * Cover aspect ratio. Lets a grid of cards stay visually consistent
     * regardless of source image dimensions. Default `"16/9"`.
     */
    coverAspect?: BlogCardCoverAspect;
    /** Single category chip (legacy — prefer `tags`). */
    category?: ReactNode;
    /** Multiple category chips. Rendered before the title. */
    tags?: ReactNode[];
    /** Date / publish info — inline meta. */
    meta?: ReactNode;
    /** Structured reading-time slot. Renders alongside `meta`. */
    readingTime?: ReactNode;
    /** Required title — drives `aria-labelledby` on the card. */
    title: ReactNode;
    /** Heading level for the title. Default `"h3"`. */
    titleAs?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
    description?: ReactNode;
    /** Structured author block — avatar + name + optional byline. */
    author?: BlogCardAuthor;
    /** Right-aligned footer content (call-to-action / "Read more" link). */
    footer?: ReactNode;
    /** Card corner radius. */
    radius?: CardRadius;
    /** Cover on top (default) or cover on left. */
    orientation?: BlogCardOrientation;
    /** When set, the card renders as an `<a>` element. */
    href?: string;
    /** Click handler. Pairing with `href` is fine; both fire. */
    onClick?: () => void;
}
export declare const BlogCard: import("react").ForwardRefExoticComponent<BlogCardProps & import("react").RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=BlogCard.d.ts.map