import * as z from "zod/v4-mini";
import { AddressInput, AddressInput$Outbound } from "./addressinput.js";
import { CustomerType } from "./customertype.js";
export type CustomerUpdateMetadata = string | number | number | boolean;
export type CustomerUpdate = {
    /**
     * Key-value object allowing you to store additional information.
     *
     * @remarks
     *
     * The key must be a string with a maximum length of **40 characters**.
     * The value must be either:
     *
     * * A string with a maximum length of **500 characters**
     * * An integer
     * * A floating-point number
     * * A boolean
     *
     * You can store up to **50 key-value pairs**.
     */
    metadata?: {
        [k: string]: string | number | number | boolean;
    } | undefined;
    /**
     * The email address of the customer. This must be unique within the organization.
     */
    email?: string | null | undefined;
    name?: string | null | undefined;
    billingAddress?: AddressInput | null | undefined;
    taxId?: string | null | undefined;
    locale?: string | null | undefined;
    /**
     * The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.
     */
    externalId?: string | null | undefined;
    /**
     * The customer type. Can only be upgraded from 'individual' to 'team', never downgraded.
     */
    type?: CustomerType | null | undefined;
};
/** @internal */
export type CustomerUpdateMetadata$Outbound = string | number | number | boolean;
/** @internal */
export declare const CustomerUpdateMetadata$outboundSchema: z.ZodMiniType<CustomerUpdateMetadata$Outbound, CustomerUpdateMetadata>;
export declare function customerUpdateMetadataToJSON(customerUpdateMetadata: CustomerUpdateMetadata): string;
/** @internal */
export type CustomerUpdate$Outbound = {
    metadata?: {
        [k: string]: string | number | number | boolean;
    } | undefined;
    email?: string | null | undefined;
    name?: string | null | undefined;
    billing_address?: AddressInput$Outbound | null | undefined;
    tax_id?: string | null | undefined;
    locale?: string | null | undefined;
    external_id?: string | null | undefined;
    type?: string | null | undefined;
};
/** @internal */
export declare const CustomerUpdate$outboundSchema: z.ZodMiniType<CustomerUpdate$Outbound, CustomerUpdate>;
export declare function customerUpdateToJSON(customerUpdate: CustomerUpdate): string;
//# sourceMappingURL=customerupdate.d.ts.map