import { AddressPayload } from '../../address/addressPayload'; import { InvoicingPriceType } from '../invoicingCommonPayload'; import { InvoicingInvoice, InvoicingInvoiceKPIs } from './invoiceState'; import { InvoicingInvoiceStatus } from './invoiceTypes'; export interface InvoicingLineItemPayload { amount: number; description: string; quantity: number; unit_amount: number; date_from?: string; date_to?: string; discount_amount?: number; entity_description?: string; entity_type?: string; id?: string; is_taxed?: boolean; item_level_discount_amount?: number; subscription_id?: string; tax_amount?: number; tax_exempt_reason?: string; tax_rate?: number; usage_percentage?: number; } export interface InvoicingLinkedPaymentPayload { applied_amount: number; txn_id: string; applied_at?: string; txn_amount?: number; txn_date?: string; txn_status?: string; } export interface InvoicingIssuedCreditNotePayload { cn_id: string; cn_status: string; cn_total: number; } export interface InvoicingDunningAttemptPayload { attempt: number; created_at?: string; dunning_type?: string; transaction_id?: string; } export interface InvoicingInvoiceNotePayload { note: string; entity_id?: string; entity_type?: string; } export interface InvoicingInvoiceDiscountPayload { amount: number; description: string; entity_id: string; entity_type: string; line_item_id?: string | null; } export interface InvoicingInvoicePayload { customer_id: string; date: string; id: string; status: InvoicingInvoiceStatus; total: number; adjustment_credit_notes?: string[]; amount_adjusted?: number; amount_due?: number; amount_paid?: number; amount_to_collect?: number; billing_address?: AddressPayload | null; created_at?: string; credits_applied?: number; currency_code?: string; currency_symbol?: string; customer_email?: string; customer_name?: string; discounts?: InvoicingInvoiceDiscountPayload[]; due_date?: string; dunning_attempts?: InvoicingDunningAttemptPayload[]; dunning_status?: string; first_invoice?: boolean; generated_at?: string; gross_sub_total?: number; has_advance_charges?: boolean; invoice_number?: string; invoice_type?: 'one_time' | 'recurring'; issued_credit_notes?: InvoicingIssuedCreditNotePayload[]; line_items?: InvoicingLineItemPayload[]; linked_payments?: InvoicingLinkedPaymentPayload[]; net_term_days?: number; next_retry_at?: string; notes?: InvoicingInvoiceNotePayload[]; paid_at?: string; pdf_file_id?: string; pdf_url?: string; po_number?: string; price_type?: InvoicingPriceType; recurring?: boolean; round_off_amount?: number; shipping_address?: AddressPayload | null; sub_total?: number; subscription_id?: string; subscription_name?: string; tax?: number; updated_at?: string; write_off_amount?: number; } export interface InvoicingInvoiceKPIsPayload { due_total: number; paid_total: number; pending_total: number; total_invoiced: number; } /** * Collect the embedded billing + shipping addresses from invoice payloads so they * can be pushed into the shared address store (`updateAddresses`), while the * invoice entity keeps only the address ids — mirrors the vendor flow. */ export declare const extractInvoicingInvoiceAddresses: (payloads: InvoicingInvoicePayload[]) => AddressPayload[]; export declare const mapInvoicingInvoicePayloadToState: (payload: InvoicingInvoicePayload) => InvoicingInvoice; export declare const mapInvoicingInvoiceKPIsPayloadToState: (payload: InvoicingInvoiceKPIsPayload) => InvoicingInvoiceKPIs;