import { type ComponentPropsWithoutRef, type MouseEvent, type ReactNode } from "react";
import { type CardRadius } from "../Card";
export type ProductCardImageAspect = "16/9" | "4/3" | "1/1" | "3/4" | "21/9";
export interface ProductCardRating {
    /** 0–`max` value (e.g. 4.3). */
    value: number;
    /** Total stars in the scale. Default 5. */
    max?: number;
    /** Optional review count, rendered after the stars (e.g. "(128)"). */
    count?: number;
}
export interface ProductCardProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "onChange" | "onClick" | "onDrag" | "onDragStart" | "onDragEnd" | "onAnimationStart"> {
    /** Image / icon / logo node. */
    image?: ReactNode;
    /** Aspect ratio of the image slot. Default `"4/3"`. */
    imageAspect?: ProductCardImageAspect;
    /** Single tag chip (legacy — prefer `tags`). */
    tag?: ReactNode;
    /** Multi-tag chips. */
    tags?: ReactNode[];
    /** Product / connector / template name. */
    name: ReactNode;
    /** Heading level for the name. Default `"h3"`. */
    nameAs?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
    description?: ReactNode;
    /** Optional star-rating block. */
    rating?: ProductCardRating;
    /** Current price (e.g. "$99", "Free", "Contact us"). */
    price: ReactNode;
    /** Strikethrough original price (typically rendered next to the discount). */
    originalPrice?: ReactNode;
    /** Right-aligned action slot (Button, link, badge). */
    action?: ReactNode;
    /** Render the card as a real <a> when href is provided. */
    href?: string;
    /** Whole-card click handler. */
    onClick?: (e: MouseEvent<HTMLDivElement>) => void;
    /** Disable interaction. */
    disabled?: boolean;
    /** Card corner radius (passes through). */
    radius?: CardRadius;
}
export declare const ProductCard: import("react").ForwardRefExoticComponent<ProductCardProps & import("react").RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=ProductCard.d.ts.map