import { AuditLogEntityRouteOptionWire, AuditLogListSortFieldOptionWire, AuditLogSourceLabelOptionWire, InvoicingCatalogLifecycleActionOptionWire, InvoicingDunningActionOption, InvoicingFieldHelpWire, InvoicingNamedOptionWire, InvoicingNamedOptionsByKeyWire, InvoicingQboAccountMappingKindOptionWire, InvoicingSubscriptionEditFieldOptionWire, InvoicingSubscriptionLifecycleActionOptionWire } from '../../../entity/invoicing/invoicingCommonPayload'; import { ZeniAPIResponse } from '../../../responsePayload'; /** * Wire payload of the invoicing config API (GET/PUT `/1.0/config`). Follows * the app-wide feature-config family (bill pay, charge cards, …): boolean * flags plus server-stamped TOS acceptance audit fields. */ export interface InvoicingConfigPayload { audit_log_entity_route_options: AuditLogEntityRouteOptionWire[]; audit_log_list_sort_field_options: AuditLogListSortFieldOptionWire[]; audit_log_source_labels: AuditLogSourceLabelOptionWire[]; catalog_item_lifecycle_action_options: InvoicingCatalogLifecycleActionOptionWire[]; catalog_product_lifecycle_action_options: InvoicingCatalogLifecycleActionOptionWire[]; discount_lifecycle_action_options: InvoicingCatalogLifecycleActionOptionWire[]; dunning_schedule_action_options: InvoicingDunningActionOption[]; is_invoicing_enabled: boolean; is_invoicing_tos_accepted: boolean; subscription_cancel_timing_options: InvoicingNamedOptionWire[]; subscription_change_option_options: InvoicingNamedOptionWire[]; subscription_commercial_edit_allowed_from_statuses: string[]; subscription_edit_field_options: InvoicingSubscriptionEditFieldOptionWire[]; subscription_lifecycle_action_options: InvoicingSubscriptionLifecycleActionOptionWire[]; subscription_metadata_edit_allowed_from_statuses: string[]; auto_collection_options?: InvoicingNamedOptionWire[]; billing_period_unit_options?: InvoicingNamedOptionWire[]; card_status_options?: InvoicingNamedOptionWire[]; catalog_item_status_options?: InvoicingNamedOptionWire[]; catalog_item_type_options?: InvoicingNamedOptionWire[]; catalog_tier_type_options_by_pricing_model?: InvoicingNamedOptionsByKeyWire; catalog_trial_end_action_options?: InvoicingNamedOptionWire[]; catalog_trial_unit_options?: InvoicingNamedOptionWire[]; created_at?: string | null; credit_note_reason_code_options?: InvoicingNamedOptionWire[]; credit_note_status_options?: InvoicingNamedOptionWire[]; credit_note_type_options?: InvoicingNamedOptionWire[]; customer_status_options?: InvoicingNamedOptionWire[]; customer_type_options?: InvoicingNamedOptionWire[]; date_format_options?: InvoicingNamedOptionWire[]; discount_apply_on_options?: InvoicingNamedOptionWire[]; discount_duration_type_options?: InvoicingNamedOptionWire[]; discount_status_options?: InvoicingNamedOptionWire[]; discount_type_options?: InvoicingNamedOptionWire[]; dunning_case_status_options?: InvoicingNamedOptionWire[]; field_help?: InvoicingFieldHelpWire; invoice_status_options?: InvoicingNamedOptionWire[]; invoicing_tos_acceptance_ip?: string | null; invoicing_tos_acceptance_time?: string | null; invoicing_tos_acceptance_user_agent?: string | null; invoicing_tos_acceptance_user_id?: string | null; is_invoicing_settings_seeded?: boolean; manual_payment_method_options?: InvoicingNamedOptionWire[]; net_term_day_options?: InvoicingNamedOptionWire[]; payment_gateway_options?: InvoicingNamedOptionWire[]; qbo_account_mapping_kind_options?: InvoicingQboAccountMappingKindOptionWire[]; qbo_customer_matching_options?: InvoicingNamedOptionWire[]; qbo_sync_status_options?: InvoicingNamedOptionWire[]; subscription_cancel_reason_code_options?: InvoicingNamedOptionWire[]; subscription_status_options?: InvoicingNamedOptionWire[]; taxability_options?: InvoicingNamedOptionWire[]; transaction_status_options?: InvoicingNamedOptionWire[]; transaction_type_options?: InvoicingNamedOptionWire[]; updated_at?: string | null; } export type InvoicingConfigResponse = ZeniAPIResponse; export declare const INVOICING_ONBOARDING_STATUSES: readonly ["not_started", "settings", "completed"]; /** * Onboarding routing status derived from the config flags: * TOS not accepted -> 'not_started', accepted but not enabled -> 'settings', * enabled -> 'completed'. */ export type InvoicingOnboardingStatus = (typeof INVOICING_ONBOARDING_STATUSES)[number]; export declare function deriveInvoicingOnboardingStatus(isInvoicingTosAccepted?: boolean, isInvoicingEnabled?: boolean): InvoicingOnboardingStatus | undefined;