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";
/**
 * The type of address.
 */
export declare const Type: {
    readonly Primary: "primary";
    readonly Secondary: "secondary";
    readonly Home: "home";
    readonly Office: "office";
    readonly Shipping: "shipping";
    readonly Billing: "billing";
    readonly Work: "work";
    readonly Other: "other";
};
/**
 * The type of address.
 */
export type Type = ClosedEnum<typeof Type>;
export type Address = {
    /**
     * Unique identifier for the address.
     */
    id?: string | null | undefined;
    /**
     * The type of address.
     */
    type?: Type | null | undefined;
    /**
     * The address string. Some APIs don't provide structured address data.
     */
    string?: string | null | undefined;
    /**
     * The name of the address.
     */
    name?: string | null | undefined;
    /**
     * Line 1 of the address e.g. number, street, suite, apt #, etc.
     */
    line1?: string | null | undefined;
    /**
     * Line 2 of the address
     */
    line2?: string | null | undefined;
    /**
     * Line 3 of the address
     */
    line3?: string | null | undefined;
    /**
     * Line 4 of the address
     */
    line4?: string | null | undefined;
    /**
     * Line 5 of the address
     */
    line5?: string | null | undefined;
    /**
     * Street number
     */
    streetNumber?: string | null | undefined;
    /**
     * Name of city.
     */
    city?: string | null | undefined;
    /**
     * Name of state
     */
    state?: string | null | undefined;
    /**
     * Zip code or equivalent.
     */
    postalCode?: string | null | undefined;
    /**
     * country code according to ISO 3166-1 alpha-2.
     */
    country?: string | null | undefined;
    /**
     * Latitude of the address
     */
    latitude?: string | null | undefined;
    /**
     * Longitude of the address
     */
    longitude?: string | null | undefined;
    /**
     * Address field that holds a sublocality, such as a county
     */
    county?: string | null | undefined;
    /**
     * Name of the contact person at the address
     */
    contactName?: string | null | undefined;
    /**
     * Salutation of the contact person at the address
     */
    salutation?: string | null | undefined;
    /**
     * Phone number of the address
     */
    phoneNumber?: string | null | undefined;
    /**
     * Fax number of the address
     */
    fax?: string | null | undefined;
    /**
     * Email address of the address
     */
    email?: string | null | undefined;
    /**
     * Website of the address
     */
    website?: string | null | undefined;
    /**
     * Additional notes
     */
    notes?: 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;
};
/** @internal */
export declare const Type$inboundSchema: z.ZodNativeEnum<typeof Type>;
/** @internal */
export declare const Type$outboundSchema: z.ZodNativeEnum<typeof Type>;
/** @internal */
export declare const Address$inboundSchema: z.ZodType<Address, z.ZodTypeDef, unknown>;
/** @internal */
export type Address$Outbound = {
    id?: string | null | undefined;
    type?: string | null | undefined;
    string?: string | null | undefined;
    name?: string | null | undefined;
    line1?: string | null | undefined;
    line2?: string | null | undefined;
    line3?: string | null | undefined;
    line4?: string | null | undefined;
    line5?: string | null | undefined;
    street_number?: string | null | undefined;
    city?: string | null | undefined;
    state?: string | null | undefined;
    postal_code?: string | null | undefined;
    country?: string | null | undefined;
    latitude?: string | null | undefined;
    longitude?: string | null | undefined;
    county?: string | null | undefined;
    contact_name?: string | null | undefined;
    salutation?: string | null | undefined;
    phone_number?: string | null | undefined;
    fax?: string | null | undefined;
    email?: string | null | undefined;
    website?: string | null | undefined;
    notes?: string | null | undefined;
    row_version?: string | null | undefined;
};
/** @internal */
export declare const Address$outboundSchema: z.ZodType<Address$Outbound, z.ZodTypeDef, Address>;
export declare function addressToJSON(address: Address): string;
export declare function addressFromJSON(jsonString: string): SafeParseResult<Address, SDKValidationError>;
//# sourceMappingURL=address.d.ts.map