import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as models from "./models/index.js"; export declare class Invoices extends ClientSDK { /** * Get customer invoice summary * * @remarks * Use when showing a customer's invoice overview (e.g. billing portal or balance summary). Includes totals and multi-currency breakdown. */ getCustomerInvoiceSummary(id: string, options?: RequestOptions): Promise; /** * Create one-off invoice * * @remarks * Use when creating a manual or one-off invoice (e.g. custom charge or non-recurring billing). Invoice is created in draft; finalize when ready. */ createInvoice(request: models.CreateInvoiceRequest, options?: RequestOptions): Promise; /** * Get invoice preview * * @remarks * Use when showing a customer what they will be charged (e.g. preview before checkout or plan change). No invoice is created. */ getInvoicePreview(request: models.GetPreviewInvoiceRequest, options?: RequestOptions): Promise; /** * Query invoices * * @remarks * Use when listing or searching invoices (e.g. admin view or customer history). Returns a paginated list; supports filtering by customer, status, date range. */ queryInvoice(request: models.InvoiceFilter, options?: RequestOptions): Promise; /** * Get invoice * * @remarks * Use when loading an invoice for display or editing (e.g. portal or reconciliation). Supports group_by for usage breakdown and force_runtime_recalculation. */ getInvoice(id: string, expandBySource?: boolean | undefined, groupBy?: Array | undefined, expand?: string | undefined, options?: RequestOptions): Promise; /** * Update invoice * * @remarks * Use when updating invoice metadata or due date (e.g. PDF URL, net terms), or when recalculating this draft invoice's discount from its current standing coupon associations via apply_discount:true (idempotent, does not attach a new coupon). Allowed for invoices in draft or finalized status. */ updateInvoice(id: string, body: models.UpdateInvoiceRequest, options?: RequestOptions): Promise; /** * Trigger invoice communication webhook * * @remarks * Use when sending an invoice to the customer (e.g. trigger email or Slack). Payload includes full invoice details for your integration. */ triggerInvoiceCommsWebhook(id: string, options?: RequestOptions): Promise; /** * Finalize invoice * * @remarks * Use when locking an invoice for payment (e.g. after review). Once finalized, line items are locked; invoice can be paid or voided. */ finalizeInvoice(id: string, options?: RequestOptions): Promise; /** * Update invoice payment status * * @remarks * Use when reconciling payment status from an external gateway or manual entry (e.g. mark paid after bank confirmation). */ updateInvoicePaymentStatus(id: string, body: models.UpdatePaymentStatusRequest, options?: RequestOptions): Promise; /** * Attempt invoice payment * * @remarks * Use when paying an invoice with the customer's wallet balance (e.g. prepaid credits or balance applied at checkout). */ attemptInvoicePayment(id: string, options?: RequestOptions): Promise; /** * Get invoice PDF * * @remarks * Use when delivering an invoice PDF to the customer (e.g. email attachment or download). Use url=true for a presigned URL instead of binary. Use force_generate=true to regenerate and re-upload the PDF even if one already exists in S3. */ getInvoicePdf(id: string, url?: boolean | undefined, forceGenerate?: boolean | undefined, options?: RequestOptions): Promise>; /** * Recalculate invoice (voided invoice) * * @remarks * Starts an async workflow that creates a fresh replacement invoice for a voided SUBSCRIPTION invoice (same billing period). Returns workflow_id and run_id; poll workflow status or GET the new invoice via recalculated_invoice_id after completion. */ recalculateInvoice(id: string, options?: RequestOptions): Promise; /** * Recalculate draft invoice (v2) * * @remarks * Recalculates a draft SUBSCRIPTION invoice in-place (replaces line items, reapplies credits/coupons/taxes). Use when subscription or usage data changed before finalizing. */ recalculateInvoiceV2(id: string, finalize?: boolean | undefined, options?: RequestOptions): Promise; /** * Void invoice * * @remarks * Use when cancelling an invoice (e.g. order cancelled or duplicate). Only unpaid invoices can be voided. */ voidInvoice(id: string, options?: RequestOptions): Promise; } //# sourceMappingURL=invoices.d.ts.map