import { InvoicingCustomer, InvoicingCustomerFormLocalData, InvoicingCustomerPaymentMethod, InvoicingInvoice, InvoicingNamedOption } from '@zeniai/client-epic-state'; type InvoicingCustomerWithProductCode = InvoicingCustomer & { productCode?: string; }; export interface InvoicingCustomerDetailPageProps { customerId: string; /** `/1.0/config` option lists backing the customer form's pickers. */ customerTypeOptions: InvoicingNamedOption[]; isLoading: boolean; netTermDayOptions: InvoicingNamedOption[]; taxabilityOptions: InvoicingNamedOption[]; /** Formatted billing address for display (from the shared Address flow). */ billingAddressLabel?: string; /** Branding accent color for the payment-link email preview. */ brandingAccentColor?: string; /** Tenant company name shown as the sender in the payment-link email preview. */ brandingCompanyName?: string; /** Branding contact email shown in the payment-link email preview footer. */ brandingEmail?: string; /** Branding logo URL for the payment-link email preview header. */ brandingLogoUrl?: string; customer?: InvoicingCustomerWithProductCode; /** Error from the last inline-edit save attempt, shown in edit mode. */ editErrorMessage?: string; /** Start the page in inline edit mode (e.g. when routed from /edit). */ initialEditMode?: boolean; /** Open the payment-link email preview modal on mount (Storybook). */ initialPreviewEmailOpen?: boolean; /** Recent invoices for this customer (Figma: "Recent Invoices" table). */ invoices?: InvoicingInvoice[]; /** True while an inline-edit save is in flight. */ isSaving?: boolean; /** True while a magic-link payment-collection email is being sent. */ isSendingPaymentLink?: boolean; /** CES draft for the inline edit — seeds the form and persists across nav. */ localData?: InvoicingCustomerFormLocalData; /** * Saved payment methods, newest first with exactly one marked default. * Normalized by the customer detail view selector. */ paymentMethods?: InvoicingCustomerPaymentMethod[]; /** Error from the last payment-link send attempt. */ sendPaymentLinkErrorMessage?: string; /** Email address the magic-link collection email was last sent to. */ sentPaymentLinkEmail?: string; /** Magic link URL returned when the payment-link email was last sent. */ sentPaymentLinkMagicUrl?: string; /** Whether a Stripe account is connected (gates "Add Payment Method"). */ stripeConnected?: boolean; /** Opens the Add Payment Method dialog (Stripe card / ACH). */ onAddPaymentMethod?: () => void; onBack?: () => void; /** Called when inline edit is cancelled (e.g. to drop /edit from the URL). */ onCancelEdit?: () => void; /** Persist the inline-edit draft to CES on every field change. */ onChange?: (localData: InvoicingCustomerFormLocalData) => void; onCreateInvoice?: () => void; onCreatePromotionalCredits?: () => void; onEdit?: () => void; onInvoiceClick?: (invoiceId: string) => void; onNewSubscription?: () => void; /** Open the shared Address screen to add/edit the billing address. */ onOpenAddress?: () => void; /** Navigate to Settings › Payment Destination (Stripe connect). */ onOpenPaymentSettings?: () => void; /** Persist inline-edit changes; receives the customer draft `localData`. */ onSaveEdit?: (localData: InvoicingCustomerFormLocalData) => void; /** Email the customer a magic link to add their payment details. */ onSendPaymentLink?: (email: string) => void; onSubscriptionClick?: (subscriptionId: string) => void; } export declare function InvoicingCustomerDetailPage({ billingAddressLabel, brandingAccentColor, brandingCompanyName, brandingEmail, brandingLogoUrl, customer, customerId, editErrorMessage, initialEditMode, initialPreviewEmailOpen, invoices, isLoading, isSaving, isSendingPaymentLink, localData, onAddPaymentMethod, onBack, onCancelEdit, onChange, onCreateInvoice, onEdit, onInvoiceClick, onCreatePromotionalCredits, paymentMethods, onNewSubscription, onOpenAddress, onOpenPaymentSettings, onSaveEdit, onSendPaymentLink, onSubscriptionClick, sendPaymentLinkErrorMessage, sentPaymentLinkEmail, sentPaymentLinkMagicUrl, stripeConnected, customerTypeOptions, netTermDayOptions, taxabilityOptions, }: Readonly): import("react/jsx-runtime").JSX.Element; export default InvoicingCustomerDetailPage;