import { type ReactNode } from 'react'; import { type VariantProps } from 'class-variance-authority'; export interface FreemiumPlan { id: string; /** Translation key for the plan name (e.g. `app.paywall.plans.pro`). */ nameKey: string; /** Amount in minor units (cents, centesimi). */ priceAmount: number; /** ISO 4217 currency code. */ currency: string; /** Translation key for the cadence suffix (e.g. `app.paywall.period.month`). */ perKey?: string; /** Per-line feature translation keys. */ featuresKeys?: string[]; } declare const contentVariants: (props?: ({ layout?: "sheet" | "centered" | null | undefined; density?: "full" | "compact" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; /** Curated imperative handle for agent / external automation. */ export interface FreemiumPaywallHandle { isOpen: () => boolean; getSelectedPlanId: () => string | null; upgrade: () => void; dismiss: () => void; } export interface FreemiumPaywallProps extends VariantProps { open: boolean; onOpenChange: (open: boolean) => void; plans: FreemiumPlan[]; /** Currently-selected plan id (controlled) or default. */ selectedPlanId?: string; defaultSelectedPlanId?: string; onSelectedPlanChange?: (id: string) => void; /** Usage indicator values — omit the object to hide the bar. */ usage?: { used: number; limit: number; }; /** Fires on upgrade. */ onUpgrade: (planId: string) => void; /** Fires when the user dismisses via Not Now. */ onCancel?: () => void; /** Title override; defaults to t('paywall.title'). */ title?: ReactNode; /** Description override; defaults to t('paywall.description'). */ description?: ReactNode; /** * Stable instance id. Emitted on the dialog content as * `data-component-id` and used as the agent-registry instance key so * a host can address this specific paywall. */ id?: string; className?: string; } export declare const FreemiumPaywall: import("react").ForwardRefExoticComponent>; export {}; //# sourceMappingURL=freemium-paywall.d.ts.map