import type { CSSProperties } from "react"; import { type CrediballThemeOverrides } from "./theme"; export interface ReferralCardProps extends CrediballThemeOverrides { /** Heading. Default "Invite friends". */ title?: string; /** * Subtitle. Defaults to a reward blurb built from the dashboard config * (e.g. "Earn 100 credits for every friend who joins."). */ description?: string; /** Copy-button label. Default "Copy". */ copyLabel?: string; /** Share-button label. Default "Share". */ shareLabel?: string; /** Hide the clicks / converted counters row. */ hideStats?: boolean; style?: CSSProperties; /** * Preview/demo override. When set, the card renders from this sample data * instead of the live `useReferral()` result — used by the dashboard's * UI-patterns preview so the card is visible and themeable without a * connected app, exactly like `PaywallModal`'s balance/packages preview * props. In production you never pass this: the card fetches real data itself. */ demo?: { link?: string | null; code?: string; clicks?: number; rewardCredits?: number; referredRewardCredits?: number; rewards?: { pending: number; converted: number; creditsEarned: number; }; }; } /** * Drop-in invite card built on useReferral(). Place anywhere inside * : * * * * Shows the user's invite link with Copy/Share actions and their referral * stats. Lazily creates the code on first render, renders nothing while * loading or when the referral program is disabled in the dashboard, and is * themed by the same `--crediball-*` variables as every other component. */ export declare function ReferralCard({ title, description, copyLabel, shareLabel, hideStats, accentColor, style, demo, }: ReferralCardProps): import("react").JSX.Element | null;