import * as z from "zod"; import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { Address, Address$Outbound } from "./address.js"; import { BankAccount, BankAccount$Outbound } from "./bankaccount.js"; import { Currency } from "./currency.js"; import { CustomMappings, CustomMappings$Outbound } from "./custommappings.js"; import { Email, Email$Outbound } from "./email.js"; import { LinkedLedgerAccount, LinkedLedgerAccount$Outbound } from "./linkedledgeraccount.js"; import { LinkedLedgerAccountInput, LinkedLedgerAccountInput$Outbound } from "./linkedledgeraccountinput.js"; import { LinkedParentCustomer, LinkedParentCustomer$Outbound } from "./linkedparentcustomer.js"; import { LinkedTaxRate, LinkedTaxRate$Outbound } from "./linkedtaxrate.js"; import { LinkedTaxRateInput, LinkedTaxRateInput$Outbound } from "./linkedtaxrateinput.js"; import { PassThroughBody, PassThroughBody$Outbound } from "./passthroughbody.js"; import { PhoneNumber, PhoneNumber$Outbound } from "./phonenumber.js"; import { Website, Website$Outbound } from "./website.js"; /** * Customer status */ export declare const CustomerStatusStatus: { readonly Active: "active"; readonly Inactive: "inactive"; readonly Archived: "archived"; readonly GdprErasureRequest: "gdpr-erasure-request"; readonly Unknown: "unknown"; }; /** * Customer status */ export type CustomerStatusStatus = ClosedEnum; export type Customer = { /** * A unique identifier for an object. */ id: string; /** * The third-party API ID of original entity */ downstreamId?: string | null | undefined; /** * Display ID */ displayId?: string | null | undefined; /** * Display name */ displayName?: string | null | undefined; /** * The name of the company. */ companyName?: string | null | undefined; /** * The company or subsidiary id the transaction belongs to */ companyId?: string | null | undefined; /** * The job title of the person. */ title?: string | null | undefined; /** * The first name of the person. */ firstName?: string | null | undefined; /** * Middle name of the person. */ middleName?: string | null | undefined; /** * The last name of the person. */ lastName?: string | null | undefined; suffix?: string | null | undefined; /** * Is this an individual or business customer */ individual?: boolean | null | undefined; /** * If true, indicates this is a Project. */ project?: boolean | null | undefined; addresses?: Array
| undefined; phoneNumbers?: Array | undefined; emails?: Array | undefined; websites?: Array | undefined; bankAccounts?: Array | undefined; /** * Some notes about this customer */ notes?: string | null | undefined; taxRate?: LinkedTaxRate | undefined; taxNumber?: 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; account?: LinkedLedgerAccount | null | undefined; /** * The parent customer this entity is linked to. */ parent?: LinkedParentCustomer | null | undefined; /** * Customer status */ status?: CustomerStatusStatus | null | undefined; /** * Payment method used for the transaction, such as cash, credit card, bank transfer, or check */ paymentMethod?: string | null | undefined; /** * The channel through which the transaction is processed. */ channel?: string | null | undefined; /** * When custom mappings are configured on the resource, the result is included here. */ customMappings?: CustomMappings | null | undefined; /** * The user who last updated the object. */ updatedBy?: string | null | undefined; /** * The user who created the object. */ createdBy?: string | null | undefined; /** * The date and time when the object was last updated. */ updatedAt?: Date | null | undefined; /** * The date and time when the object was created. */ createdAt?: Date | null | undefined; /** * A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. */ rowVersion?: string | null | undefined; /** * The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. */ passThrough?: Array | undefined; }; export type CustomerInput = { /** * Display ID */ displayId?: string | null | undefined; /** * Display name */ displayName?: string | null | undefined; /** * The name of the company. */ companyName?: string | null | undefined; /** * The company or subsidiary id the transaction belongs to */ companyId?: string | null | undefined; /** * The job title of the person. */ title?: string | null | undefined; /** * The first name of the person. */ firstName?: string | null | undefined; /** * Middle name of the person. */ middleName?: string | null | undefined; /** * The last name of the person. */ lastName?: string | null | undefined; suffix?: string | null | undefined; /** * Is this an individual or business customer */ individual?: boolean | null | undefined; /** * If true, indicates this is a Project. */ project?: boolean | null | undefined; addresses?: Array
| undefined; phoneNumbers?: Array | undefined; emails?: Array | undefined; websites?: Array | undefined; bankAccounts?: Array | undefined; /** * Some notes about this customer */ notes?: string | null | undefined; taxRate?: LinkedTaxRateInput | undefined; taxNumber?: 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; account?: LinkedLedgerAccountInput | null | undefined; /** * The parent customer this entity is linked to. */ parent?: LinkedParentCustomer | null | undefined; /** * Customer status */ status?: CustomerStatusStatus | null | undefined; /** * Payment method used for the transaction, such as cash, credit card, bank transfer, or check */ paymentMethod?: string | null | undefined; /** * The channel through which the transaction is processed. */ channel?: string | null | undefined; /** * A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. */ rowVersion?: string | null | undefined; /** * The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. */ passThrough?: Array | undefined; }; /** @internal */ export declare const CustomerStatusStatus$inboundSchema: z.ZodNativeEnum; /** @internal */ export declare const CustomerStatusStatus$outboundSchema: z.ZodNativeEnum; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export declare namespace CustomerStatusStatus$ { /** @deprecated use `CustomerStatusStatus$inboundSchema` instead. */ const inboundSchema: z.ZodNativeEnum<{ readonly Active: "active"; readonly Inactive: "inactive"; readonly Archived: "archived"; readonly GdprErasureRequest: "gdpr-erasure-request"; readonly Unknown: "unknown"; }>; /** @deprecated use `CustomerStatusStatus$outboundSchema` instead. */ const outboundSchema: z.ZodNativeEnum<{ readonly Active: "active"; readonly Inactive: "inactive"; readonly Archived: "archived"; readonly GdprErasureRequest: "gdpr-erasure-request"; readonly Unknown: "unknown"; }>; } /** @internal */ export declare const Customer$inboundSchema: z.ZodType; /** @internal */ export type Customer$Outbound = { id: string; downstream_id?: string | null | undefined; display_id?: string | null | undefined; display_name?: string | null | undefined; company_name?: string | null | undefined; company_id?: string | null | undefined; title?: string | null | undefined; first_name?: string | null | undefined; middle_name?: string | null | undefined; last_name?: string | null | undefined; suffix?: string | null | undefined; individual?: boolean | null | undefined; project?: boolean | null | undefined; addresses?: Array | undefined; phone_numbers?: Array | undefined; emails?: Array | undefined; websites?: Array | undefined; bank_accounts?: Array | undefined; notes?: string | null | undefined; tax_rate?: LinkedTaxRate$Outbound | undefined; tax_number?: string | null | undefined; currency?: string | null | undefined; account?: LinkedLedgerAccount$Outbound | null | undefined; parent?: LinkedParentCustomer$Outbound | null | undefined; status?: string | null | undefined; payment_method?: string | null | undefined; channel?: string | null | undefined; custom_mappings?: CustomMappings$Outbound | null | undefined; updated_by?: string | null | undefined; created_by?: string | null | undefined; updated_at?: string | null | undefined; created_at?: string | null | undefined; row_version?: string | null | undefined; pass_through?: Array | undefined; }; /** @internal */ export declare const Customer$outboundSchema: z.ZodType; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export declare namespace Customer$ { /** @deprecated use `Customer$inboundSchema` instead. */ const inboundSchema: z.ZodType; /** @deprecated use `Customer$outboundSchema` instead. */ const outboundSchema: z.ZodType; /** @deprecated use `Customer$Outbound` instead. */ type Outbound = Customer$Outbound; } export declare function customerToJSON(customer: Customer): string; export declare function customerFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const CustomerInput$inboundSchema: z.ZodType; /** @internal */ export type CustomerInput$Outbound = { display_id?: string | null | undefined; display_name?: string | null | undefined; company_name?: string | null | undefined; company_id?: string | null | undefined; title?: string | null | undefined; first_name?: string | null | undefined; middle_name?: string | null | undefined; last_name?: string | null | undefined; suffix?: string | null | undefined; individual?: boolean | null | undefined; project?: boolean | null | undefined; addresses?: Array | undefined; phone_numbers?: Array | undefined; emails?: Array | undefined; websites?: Array | undefined; bank_accounts?: Array | undefined; notes?: string | null | undefined; tax_rate?: LinkedTaxRateInput$Outbound | undefined; tax_number?: string | null | undefined; currency?: string | null | undefined; account?: LinkedLedgerAccountInput$Outbound | null | undefined; parent?: LinkedParentCustomer$Outbound | null | undefined; status?: string | null | undefined; payment_method?: string | null | undefined; channel?: string | null | undefined; row_version?: string | null | undefined; pass_through?: Array | undefined; }; /** @internal */ export declare const CustomerInput$outboundSchema: z.ZodType; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ export declare namespace CustomerInput$ { /** @deprecated use `CustomerInput$inboundSchema` instead. */ const inboundSchema: z.ZodType; /** @deprecated use `CustomerInput$outboundSchema` instead. */ const outboundSchema: z.ZodType; /** @deprecated use `CustomerInput$Outbound` instead. */ type Outbound = CustomerInput$Outbound; } export declare function customerInputToJSON(customerInput: CustomerInput): string; export declare function customerInputFromJSON(jsonString: string): SafeParseResult; //# sourceMappingURL=customer.d.ts.map