import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Currency } from "./currency.js";
import { Email } from "./email.js";
import { LinkedEcommerceOrder } from "./linkedecommerceorder.js";
import { PhoneNumber } from "./phonenumber.js";
/**
 * The current status of the customer
 */
export declare const CustomerStatus: {
    readonly Active: "active";
    readonly Archived: "archived";
};
/**
 * The current status of the customer
 */
export type CustomerStatus = ClosedEnum<typeof CustomerStatus>;
export declare const EcommerceCustomerType: {
    readonly Billing: "billing";
    readonly Shipping: "shipping";
    readonly Other: "other";
};
export type EcommerceCustomerType = ClosedEnum<typeof EcommerceCustomerType>;
export type Addresses = {
    type?: EcommerceCustomerType | undefined;
    /**
     * A unique identifier for an object.
     */
    id?: string | null | undefined;
    /**
     * First line of the street address of the customer
     */
    line1?: string | null | undefined;
    /**
     * Second line of the street address of the customer
     */
    line2?: string | null | undefined;
    /**
     * City of the customer
     */
    city?: string | null | undefined;
    /**
     * State of the customer
     */
    state?: string | null | undefined;
    /**
     * Postal code of the customer
     */
    postalCode?: string | null | undefined;
    /**
     * Country of the customer
     */
    country?: string | null | undefined;
};
export type EcommerceCustomer = {
    /**
     * A unique identifier for an object.
     */
    id: string;
    /**
     * Full name of the customer
     */
    name?: string | null | undefined;
    /**
     * First name of the customer
     */
    firstName?: string | null | undefined;
    /**
     * Last name of the customer
     */
    lastName?: string | null | undefined;
    /**
     * Company name of the customer
     */
    companyName?: string | null | undefined;
    /**
     * The current status of the customer
     */
    status?: CustomerStatus | 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;
    /**
     * An array of email addresses for the customer.
     */
    emails?: Array<Email> | null | undefined;
    /**
     * An array of phone numbers for the customer.
     */
    phoneNumbers?: Array<PhoneNumber> | null | undefined;
    /**
     * An array of addresses for the customer.
     */
    addresses?: Array<Addresses> | undefined;
    orders?: Array<LinkedEcommerceOrder> | 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 CustomerStatus$inboundSchema: z.ZodNativeEnum<typeof CustomerStatus>;
/** @internal */
export declare const EcommerceCustomerType$inboundSchema: z.ZodNativeEnum<typeof EcommerceCustomerType>;
/** @internal */
export declare const Addresses$inboundSchema: z.ZodType<Addresses, z.ZodTypeDef, unknown>;
export declare function addressesFromJSON(jsonString: string): SafeParseResult<Addresses, SDKValidationError>;
/** @internal */
export declare const EcommerceCustomer$inboundSchema: z.ZodType<EcommerceCustomer, z.ZodTypeDef, unknown>;
export declare function ecommerceCustomerFromJSON(jsonString: string): SafeParseResult<EcommerceCustomer, SDKValidationError>;
//# sourceMappingURL=ecommercecustomer.d.ts.map