import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Address } from "./address.js";
import { CustomerOrderProduct } from "./customerorderproduct.js";
import { CustomerOrderSubscription } from "./customerordersubscription.js";
import { OrderBillingReason } from "./orderbillingreason.js";
import { OrderItemSchema } from "./orderitemschema.js";
import { OrderStatus } from "./orderstatus.js";
export type CustomerOrder = {
    /**
     * The ID of the object.
     */
    id: string;
    /**
     * Creation timestamp of the object.
     */
    createdAt: Date;
    /**
     * Last modification timestamp of the object.
     */
    modifiedAt: Date | null;
    status: OrderStatus;
    /**
     * Whether the order has been paid for.
     */
    paid: boolean;
    /**
     * Amount in cents, before discounts and taxes.
     */
    subtotalAmount: number;
    /**
     * Discount amount in cents.
     */
    discountAmount: number;
    /**
     * Amount in cents, after discounts but before taxes.
     */
    netAmount: number;
    /**
     * Sales tax amount in cents.
     */
    taxAmount: number;
    /**
     * Amount in cents, after discounts and taxes.
     */
    totalAmount: number;
    /**
     * Customer's balance amount applied to this invoice. Can increase the total amount paid, if the customer has a negative balance,  or decrease it, if the customer has a positive balance.Amount in cents.
     */
    appliedBalanceAmount: number;
    /**
     * Amount in cents that is due for this order.
     */
    dueAmount: number;
    /**
     * Amount refunded in cents.
     */
    refundedAmount: number;
    /**
     * Sales tax refunded in cents.
     */
    refundedTaxAmount: number;
    currency: string;
    billingReason: OrderBillingReason;
    /**
     * The name of the customer that should appear on the invoice.
     */
    billingName: string | null;
    billingAddress: Address | null;
    /**
     * The invoice number associated with this order. `null` while the order is in `draft` status; assigned at finalize.
     */
    invoiceNumber: string | null;
    /**
     * Whether an invoice has been generated for this order.
     */
    isInvoiceGenerated: boolean;
    /**
     * The receipt number for this order. Set once the order is paid for organizations with receipts enabled. When set, a downloadable receipt PDF can be obtained via the receipt endpoint.
     */
    receiptNumber: string | null;
    /**
     * Number of seats purchased (for seat-based one-time orders).
     */
    seats?: number | null | undefined;
    customerId: string;
    productId: string | null;
    discountId: string | null;
    subscriptionId: string | null;
    checkoutId: string | null;
    /**
     * When the next automatic payment retry is scheduled. `null` if the order is not in dunning or all retries have been exhausted.
     */
    nextPaymentAttemptAt?: Date | null | undefined;
    product: CustomerOrderProduct | null;
    subscription: CustomerOrderSubscription | null;
    /**
     * Line items composing the order.
     */
    items: Array<OrderItemSchema>;
    /**
     * A summary description of the order.
     */
    description: string;
    /**
     * Amount in cents that can still be refunded (net, before taxes). Accounts for any applied customer balance and previous refunds.
     */
    refundableAmount: number;
    /**
     * Sales tax in cents that would be refunded if the full refundable amount is refunded.
     */
    refundableTaxAmount: number;
};
/** @internal */
export declare const CustomerOrder$inboundSchema: z.ZodMiniType<CustomerOrder, unknown>;
export declare function customerOrderFromJSON(jsonString: string): SafeParseResult<CustomerOrder, SDKValidationError>;
//# sourceMappingURL=customerorder.d.ts.map