import * as z from "zod/v3";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Currency } from "./currency.js";
import { EcommerceAddress } from "./ecommerceaddress.js";
import { EcommerceDiscount } from "./ecommercediscount.js";
import { EcommerceOrderLineItem } from "./ecommerceorderlineitem.js";
import { EcommerceOrderRefund } from "./ecommerceorderrefund.js";
import { EcommerceOrderStatus } from "./ecommerceorderstatus.js";
import { LinkedEcommerceCustomer } from "./linkedecommercecustomer.js";
import { TrackingItem } from "./trackingitem.js";
/**
 * Current payment status of the order.
 */
export declare const EcommerceOrderPaymentStatus: {
    readonly Pending: "pending";
    readonly Authorized: "authorized";
    readonly Paid: "paid";
    readonly Partial: "partial";
    readonly Refunded: "refunded";
    readonly Voided: "voided";
    readonly Unknown: "unknown";
    readonly PartiallyRefunded: "partially_refunded";
};
/**
 * Current payment status of the order.
 */
export type EcommerceOrderPaymentStatus = OpenEnum<typeof EcommerceOrderPaymentStatus>;
/**
 * Current fulfillment status of the order.
 */
export declare const FulfillmentStatus: {
    readonly Pending: "pending";
    readonly Shipped: "shipped";
    readonly Partial: "partial";
    readonly Delivered: "delivered";
    readonly Cancelled: "cancelled";
    readonly Returned: "returned";
    readonly Unknown: "unknown";
};
/**
 * Current fulfillment status of the order.
 */
export type FulfillmentStatus = OpenEnum<typeof FulfillmentStatus>;
export type EcommerceOrder = {
    /**
     * A unique identifier for an object.
     */
    id: string;
    /**
     * Order number, if any.
     */
    orderNumber?: string | null | undefined;
    /**
     * Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
     */
    currency?: Currency | null | undefined;
    discounts?: Array<EcommerceDiscount> | undefined;
    /**
     * Sub-total amount, normally before tax.
     */
    subTotal?: string | null | undefined;
    /**
     * Shipping cost, if any.
     */
    shippingCost?: string | null | undefined;
    /**
     * Coupon discount, if any.
     */
    couponDiscount?: string | null | undefined;
    /**
     * Total discount, if any.
     */
    totalDiscount?: string | null | undefined;
    /**
     * Total tax, if any.
     */
    totalTax?: string | null | undefined;
    /**
     * Total amount due.
     */
    totalAmount?: string | null | undefined;
    /**
     * Refunded amount, if any.
     */
    refundedAmount?: string | null | undefined;
    /**
     * Current status of the order.
     */
    status?: EcommerceOrderStatus | null | undefined;
    /**
     * Current payment status of the order.
     */
    paymentStatus?: EcommerceOrderPaymentStatus | null | undefined;
    /**
     * Current fulfillment status of the order.
     */
    fulfillmentStatus?: FulfillmentStatus | null | undefined;
    /**
     * Payment method used for this order.
     */
    paymentMethod?: string | null | undefined;
    /**
     * The customer this entity is linked to.
     */
    customer?: LinkedEcommerceCustomer | undefined;
    /**
     * An object representing a shipping or billing address.
     */
    billingAddress?: EcommerceAddress | undefined;
    /**
     * An object representing a shipping or billing address.
     */
    shippingAddress?: EcommerceAddress | undefined;
    tracking?: Array<TrackingItem> | undefined;
    lineItems?: Array<EcommerceOrderLineItem> | undefined;
    /**
     * Note for the order.
     */
    note?: string | null | undefined;
    refunds?: Array<EcommerceOrderRefund> | undefined;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     */
    customMappings?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The date and time when the object was created.
     */
    createdAt?: Date | null | undefined;
    /**
     * The date and time when the object was last updated.
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const EcommerceOrderPaymentStatus$inboundSchema: z.ZodType<EcommerceOrderPaymentStatus, z.ZodTypeDef, unknown>;
/** @internal */
export declare const FulfillmentStatus$inboundSchema: z.ZodType<FulfillmentStatus, z.ZodTypeDef, unknown>;
/** @internal */
export declare const EcommerceOrder$inboundSchema: z.ZodType<EcommerceOrder, z.ZodTypeDef, unknown>;
export declare function ecommerceOrderFromJSON(jsonString: string): SafeParseResult<EcommerceOrder, SDKValidationError>;
//# sourceMappingURL=ecommerceorder.d.ts.map