import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Contact fields to update
 */
export type UpdateContactRequestBody = {
    /**
     * Display name or nickname of the contact user. This is typically shown in user interfaces.
     */
    displayName?: string | null | undefined;
    /**
     * Email address of the contact user
     */
    email?: string | null | undefined;
    /**
     * URL linking to the contact user's avatar image
     */
    avatarUrl?: string | null | undefined;
    /**
     * Array of tags associated with the contact. Useful for organizing and filtering contacts by categories, departments, or custom classifications.
     */
    tags?: Array<string> | undefined;
    /**
     * Additional custom metadata associated with the contact as key-value pairs. Use this to store any extra information specific to your application.
     */
    metadata?: {
        [k: string]: any;
    } | undefined;
};
export type UpdateContactRequest = {
    /**
     * Unique contact id or external id
     */
    id: string;
    /**
     * Contact fields to update
     */
    requestBody?: UpdateContactRequestBody | undefined;
};
/**
 * Updated contact
 */
export type UpdateContactResponseBody = {
    /**
     * Unique ULID (Universally Unique Lexicographically Sortable Identifier) for the contact
     */
    id: string;
    /**
     * Unique string value to identify the contact user in the customer's system. This should be the same ID you use in your system to reference this user.
     */
    externalId: string;
    /**
     * Display name or nickname of the contact user. This is typically shown in user interfaces.
     */
    displayName?: string | null | undefined;
    /**
     * Email address of the contact user
     */
    email?: string | null | undefined;
    /**
     * URL linking to the contact user's avatar image
     */
    avatarUrl?: string | null | undefined;
    /**
     * Array of tags associated with the contact. Useful for organizing and filtering contacts by categories, departments, or custom classifications.
     */
    tags?: Array<string> | undefined;
    /**
     * Additional custom metadata associated with the contact as key-value pairs. Use this to store any extra information specific to your application.
     */
    metadata?: {
        [k: string]: any;
    } | undefined;
    /**
     * The date and time the resource was created
     */
    created?: Date | undefined;
    /**
     * The date and time the resource was last updated
     */
    updated?: Date | undefined;
};
/** @internal */
export declare const UpdateContactRequestBody$inboundSchema: z.ZodType<UpdateContactRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateContactRequestBody$Outbound = {
    display_name?: string | null | undefined;
    email?: string | null | undefined;
    avatar_url?: string | null | undefined;
    tags?: Array<string> | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const UpdateContactRequestBody$outboundSchema: z.ZodType<UpdateContactRequestBody$Outbound, z.ZodTypeDef, UpdateContactRequestBody>;
export declare function updateContactRequestBodyToJSON(updateContactRequestBody: UpdateContactRequestBody): string;
export declare function updateContactRequestBodyFromJSON(jsonString: string): SafeParseResult<UpdateContactRequestBody, SDKValidationError>;
/** @internal */
export declare const UpdateContactRequest$inboundSchema: z.ZodType<UpdateContactRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateContactRequest$Outbound = {
    id: string;
    RequestBody?: UpdateContactRequestBody$Outbound | undefined;
};
/** @internal */
export declare const UpdateContactRequest$outboundSchema: z.ZodType<UpdateContactRequest$Outbound, z.ZodTypeDef, UpdateContactRequest>;
export declare function updateContactRequestToJSON(updateContactRequest: UpdateContactRequest): string;
export declare function updateContactRequestFromJSON(jsonString: string): SafeParseResult<UpdateContactRequest, SDKValidationError>;
/** @internal */
export declare const UpdateContactResponseBody$inboundSchema: z.ZodType<UpdateContactResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateContactResponseBody$Outbound = {
    _id: string;
    external_id: string;
    display_name?: string | null | undefined;
    email?: string | null | undefined;
    avatar_url?: string | null | undefined;
    tags?: Array<string> | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    created?: string | undefined;
    updated: string;
};
/** @internal */
export declare const UpdateContactResponseBody$outboundSchema: z.ZodType<UpdateContactResponseBody$Outbound, z.ZodTypeDef, UpdateContactResponseBody>;
export declare function updateContactResponseBodyToJSON(updateContactResponseBody: UpdateContactResponseBody): string;
export declare function updateContactResponseBodyFromJSON(jsonString: string): SafeParseResult<UpdateContactResponseBody, SDKValidationError>;
//# sourceMappingURL=updatecontact.d.ts.map