import { InvoicingSubscription, InvoicingSubscriptionFormLocalData, InvoicingSubscriptionLifecycleAction, InvoicingSubscriptionLifecycleActionOption } from '@zeniai/client-epic-state'; import { InvoicingSubscriptionFormOption } from '../subscriptionForm/subscriptionForm.shared'; type InvoicingSubscriptionWithProductCode = InvoicingSubscription & { productCode?: string; }; export interface InvoicingSubscriptionDetailPageProps { isLoading: boolean; subscriptionId: string; /** Addon price options for commercial inline edit. */ addons?: InvoicingSubscriptionFormOption[]; /** Billing-frequency value set for commercial inline edit. */ /** * When true, commercial fields (plan / qty / addons / coupon / frequency) are * editable in edit mode. Metadata (PO / auto collection / shipping) stays * editable whenever save is wired. */ canEditCommercial?: boolean; /** Coupon options for commercial inline edit. */ coupons?: InvoicingSubscriptionFormOption[]; /** 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; isRunningAction?: boolean; /** True while an inline-edit save is in flight. */ isSaving?: boolean; lifecycleActionOptions?: InvoicingSubscriptionLifecycleActionOption[]; /** CES draft for the inline edit — seeds the form and persists across nav. */ localData?: InvoicingSubscriptionFormLocalData; /** Plan price options for commercial inline edit. */ plans?: InvoicingSubscriptionFormOption[]; /** Formatted shipping address for display (from the shared Address flow). */ shippingAddressLabel?: string; subscription?: InvoicingSubscriptionWithProductCode; 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: InvoicingSubscriptionFormLocalData) => void; /** Called with the entered date once the change-term-end dialog is confirmed. */ onChangeTermEnd?: (termEndsAt: string) => void; onCustomerClick?: (customerId: string) => void; onEdit?: () => void; /** `resumeDate` is only supplied for `pause`, collected by the pause dialog. */ onLifecycleAction?: (action: InvoicingSubscriptionLifecycleAction, resumeDate?: string) => void; /** Open the shared Address screen to add/edit the shipping address. */ onOpenAddress?: () => void; /** Persist inline-edit changes; receives the subscription draft `localData`. */ onSaveEdit?: (localData: InvoicingSubscriptionFormLocalData) => void; onViewInvoices?: () => void; } export declare function InvoicingSubscriptionDetailPage({ addons: addonOptions, canEditCommercial, coupons: couponOptions, editErrorMessage, initialEditMode, isLoading, isRunningAction, isSaving, lifecycleActionOptions, localData, onBack, onCancelEdit, onChange, onCustomerClick, onEdit, onChangeTermEnd, onLifecycleAction, onOpenAddress, onSaveEdit, onViewInvoices, plans: planOptions, shippingAddressLabel, subscription, subscriptionId, }: Readonly): import("react/jsx-runtime").JSX.Element; export default InvoicingSubscriptionDetailPage;