import { AddressPayload } from '../../address/addressPayload'; import { InvoicingContractTerm, InvoicingSubscription, InvoicingSubscriptionCoupon, InvoicingSubscriptionItem } from './invoicingSubscriptionState'; import { InvoicingBillingPeriodUnit, InvoicingSubscriptionStatus } from './invoicingSubscriptionTypes'; export interface InvoicingSubscriptionItemPayload { amount?: number; billing_cycles?: number; catalog_item_id?: string; item_name?: string; item_price_code?: string; item_price_id?: string; item_type?: string; quantity?: number; unit_price?: number; } export interface InvoicingSubscriptionCouponPayload { coupon_id: string; applied_count?: number; apply_till?: string; coupon_code?: string; } export interface InvoicingContractTermPayload { id: string; action_at_term_end?: string; auto_renew?: boolean; billing_cycle?: number; cancellation_notice_days?: number; contract_end?: string; contract_start?: string; status?: string; total_contract_value?: number; } export interface InvoicingSubscriptionPayload { customer_id: string; id: string; status: InvoicingSubscriptionStatus; activated_at?: string; auto_collection?: 'on' | 'off'; auto_collection_count?: number; billing_period?: number; billing_period_unit?: InvoicingBillingPeriodUnit; cancel_reason?: string; cancel_reason_code?: string; cancelled_at?: string; catalog_item_id?: string; contract_term?: InvoicingContractTermPayload; coupons?: InvoicingSubscriptionCouponPayload[]; created_at?: string; currency_code?: string; currency_symbol?: string; current_term_end?: string; current_term_start?: string; customer_name?: string; due_invoices_count?: number; due_since?: string; has_scheduled_changes?: boolean; mrr?: number; next_billing_at?: string; pause_date?: string; plan_amount?: number; plan_id?: string; plan_name?: string; po_number?: string; remaining_billing_cycles?: number; resume_date?: string; setup_fee?: number; shipping_address?: AddressPayload | null; started_at?: string; subscription_items?: InvoicingSubscriptionItemPayload[]; subscription_number?: string; total_dues?: number; trial_end?: string; trial_start?: string; updated_at?: string; } export declare const mapInvoicingSubscriptionItemPayloadToState: (payload: InvoicingSubscriptionItemPayload, currencyCode: string, currencySymbol: string) => InvoicingSubscriptionItem; export declare const mapInvoicingSubscriptionCouponPayloadToState: (payload: InvoicingSubscriptionCouponPayload) => InvoicingSubscriptionCoupon; export declare const mapInvoicingContractTermPayloadToState: (payload: InvoicingContractTermPayload, currencyCode: string, currencySymbol: string) => InvoicingContractTerm; /** * Collect the embedded shipping addresses from subscription payloads so they can * be pushed into the shared address store (via `updateAddresses`), while the * subscription entity keeps only `shippingAddressId` — mirrors the vendor flow. */ export declare const extractInvoicingSubscriptionAddresses: (payloads: InvoicingSubscriptionPayload[]) => AddressPayload[]; export declare const mapInvoicingSubscriptionPayloadToState: (payload: InvoicingSubscriptionPayload) => InvoicingSubscription;