import { type ComponentPropsWithoutRef } from 'react'; import { type VariantProps } from 'class-variance-authority'; /** Payment type → translation-key segment + Badge variant. */ export type PaymentType = 'full' | 'partial' | 'credit' | 'proforma' | 'other'; export type PaymentDirection = 'incoming' | 'outgoing'; declare const rootVariants: (props?: ({ surface?: "elevated" | "flat" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface PaymentLineItem { /** Human-readable description of the line. */ description: string; /** Amount in the smallest currency unit (cents / centesimi). */ amountCents: number; /** Optional VAT percentage (e.g. `22` for 22%). */ vatPercentage?: number; } export interface PaymentCardRelations { /** Care-plan / treatment-plan number this payment belongs to. */ carePlanNumber?: string; /** Patient display name — rendered, but never exposed to the agent. */ patientName?: string; /** Operator display name — rendered, but never exposed to the agent. */ operatorName?: string; } export interface PaymentCardHandle { /** Stable payment number currently rendered. Identifier only — no PHI. */ getNumber: () => string; /** Resolved headline financial state. Structural state only. */ getState: () => TransactionStateValue; } /** The TransactionChip state this card resolves the payment to. */ type TransactionStateValue = 'debt' | 'to-invoice' | 'settled'; export interface PaymentCardProps extends Omit, 'aria-label' | 'children'> { /** Agent-readiness consumer id, surfaced as `data-component-id`. */ id?: string; /** Human-readable payment number / reference. Rendered as the heading. */ number: string; /** ISO-8601 date string for the payment date. */ dateIso?: string; /** Payment type — drives the type Badge + label. */ type: PaymentType; /** Money flow direction — incoming (patient → practice) or outgoing. */ direction: PaymentDirection; /** Gross total in the smallest currency unit (cents). */ grossCents?: number; /** Amount already paid, in cents. */ paidCents?: number; /** Amount still outstanding, in cents. */ unpaidCents?: number; /** Marks the record as written-off — renders a neutral chip. */ writtenOff?: boolean; /** Linked entities (care plan / patient / operator). */ relations?: PaymentCardRelations; /** Itemised breakdown rendered as a DescriptionList. */ lineItems?: PaymentLineItem[]; /** BCP-47 locale override. Falls back to the active i18next language. */ locale?: string; /** ISO-4217 currency code. Defaults to `EUR`. */ currency?: string; /** * `'elevated'` (default) wraps in ``. `'flat'` * drops the Card — use inside an existing card / sheet. */ surface?: 'flat' | 'elevated'; /** Override the default region aria-label. */ 'aria-label'?: string; } export declare const PaymentCard: import("react").ForwardRefExoticComponent>; export type PaymentCardSurface = NonNullable['surface']>; export {}; //# sourceMappingURL=payment-card.d.ts.map