import { type ComponentPropsWithoutRef, type ReactNode } from "react";
import { type AvatarProps } from "../Avatar";
import { type CardRadius } from "../Card";
export type TestimonialCardSize = "sm" | "md" | "lg";
export interface TestimonialCardAuthor {
    /** Display name. */
    name: ReactNode;
    /** Avatar — forwarded to the polished Avatar primitive. */
    avatar?: Pick<AvatarProps, "src" | "initials" | "alt">;
    /** Job title / role / handle. */
    role?: ReactNode;
}
export interface TestimonialCardProps extends Omit<ComponentPropsWithoutRef<"figure">, "role" | "onDrag" | "onDragStart" | "onDragEnd" | "onAnimationStart"> {
    /** The testimonial body. */
    quote: ReactNode;
    /**
     * Author — accepts either a plain ReactNode (legacy: name only) or a
     * structured `{ name, role?, avatar? }` object (preferred).
     */
    author: ReactNode | TestimonialCardAuthor;
    /** Legacy: author role rendered below the name. Use `author.role` instead. */
    role?: ReactNode;
    /** Legacy: raw avatar slot (e.g. <img />). Use `author.avatar` instead. */
    avatar?: ReactNode;
    /** Legacy: initial character to render in the avatar circle. */
    initial?: ReactNode;
    /** 0–5 star rating. */
    rating?: number;
    /** Optional company logo node — rendered top-right (e.g. customer logo). */
    logo?: ReactNode;
    /** Size variant — drives quote-text size + padding. */
    size?: TestimonialCardSize;
    /** Card corner radius (passes through). */
    radius?: CardRadius;
}
export declare const TestimonialCard: import("react").ForwardRefExoticComponent<TestimonialCardProps & import("react").RefAttributes<HTMLElement>>;
//# sourceMappingURL=TestimonialCard.d.ts.map