import * as z from "zod";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { CustomFields, CustomFields$Outbound } from "./customfields.js";
export type Contact = {
    /**
     * List of associated account IDs
     */
    accountIds?: Array<string> | null | undefined;
    /**
     * The contact company name
     */
    companyName?: string | null | undefined;
    /**
     * Timestamp when the contact was created
     */
    createdAt?: Date | null | undefined;
    /**
     * Contact custom fields
     */
    customFields?: Array<CustomFields> | null | undefined;
    /**
     * List of associated deal IDs
     */
    dealIds?: Array<string> | null | undefined;
    /**
     * List of contact email addresses
     */
    emails?: Array<string> | null | undefined;
    /**
     * The contact first name
     */
    firstName?: string | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * The contact last name
     */
    lastName?: string | null | undefined;
    /**
     * List of contact phone numbers
     */
    phoneNumbers?: Array<string> | null | undefined;
    /**
     * Provider's list of associated account IDs
     */
    remoteAccountIds?: Array<string> | null | undefined;
    /**
     * Provider's list of associated deal IDs
     */
    remoteDealIds?: Array<string> | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * Custom Unified Fields configured in your StackOne project
     */
    unifiedCustomFields?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * Timestamp when the contact was last updated
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const Contact$inboundSchema: z.ZodType<Contact, z.ZodTypeDef, unknown>;
/** @internal */
export type Contact$Outbound = {
    account_ids?: Array<string> | null | undefined;
    company_name?: string | null | undefined;
    created_at?: string | null | undefined;
    custom_fields?: Array<CustomFields$Outbound> | null | undefined;
    deal_ids?: Array<string> | null | undefined;
    emails?: Array<string> | null | undefined;
    first_name?: string | null | undefined;
    id?: string | null | undefined;
    last_name?: string | null | undefined;
    phone_numbers?: Array<string> | null | undefined;
    remote_account_ids?: Array<string> | null | undefined;
    remote_deal_ids?: Array<string> | null | undefined;
    remote_id?: string | null | undefined;
    unified_custom_fields?: {
        [k: string]: any;
    } | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const Contact$outboundSchema: z.ZodType<Contact$Outbound, z.ZodTypeDef, Contact>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Contact$ {
    /** @deprecated use `Contact$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Contact, z.ZodTypeDef, unknown>;
    /** @deprecated use `Contact$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Contact$Outbound, z.ZodTypeDef, Contact>;
    /** @deprecated use `Contact$Outbound` instead. */
    type Outbound = Contact$Outbound;
}
export declare function contactToJSON(contact: Contact): string;
export declare function contactFromJSON(jsonString: string): SafeParseResult<Contact, SDKValidationError>;
//# sourceMappingURL=contact.d.ts.map