/**
 * Apideck
 * The Apideck OpenAPI Spec: SDK Optimized
 *
 * The version of the OpenAPI document: 10.13.0
 * Contact: support@apideck.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { Address } from './Address';
import { CustomField } from './CustomField';
import { Email } from './Email';
import { PassThroughBody } from './PassThroughBody';
import { PhoneNumber } from './PhoneNumber';
import { SocialLink } from './SocialLink';
import { Tags } from './Tags';
import { Website } from './Website';
/**
 *
 * @export
 * @interface Contact
 */
export interface Contact {
    /**
     * Full name of the contact.
     * @type {string}
     * @memberof Contact
     */
    name: string | null;
    /**
     * Unique identifier for the contact.
     * @type {string}
     * @memberof Contact
     */
    readonly id?: string;
    /**
     * The owner of the contact.
     * @type {string}
     * @memberof Contact
     */
    owner_id?: string | null;
    /**
     * The type of the contact.
     * @type {string}
     * @memberof Contact
     */
    type?: ContactType;
    /**
     * The company the contact is associated with.
     * @type {string}
     * @memberof Contact
     */
    company_id?: string | null;
    /**
     * The name of the company the contact is associated with.
     * @type {string}
     * @memberof Contact
     */
    company_name?: string | null;
    /**
     * The lead the contact is associated with.
     * @type {string}
     * @memberof Contact
     */
    lead_id?: string | null;
    /**
     * The first name of the contact.
     * @type {string}
     * @memberof Contact
     */
    first_name?: string | null;
    /**
     * The middle name of the contact.
     * @type {string}
     * @memberof Contact
     */
    middle_name?: string | null;
    /**
     * The last name of the contact.
     * @type {string}
     * @memberof Contact
     */
    last_name?: string | null;
    /**
     * The prefix of the contact.
     * @type {string}
     * @memberof Contact
     */
    prefix?: string | null;
    /**
     * The suffix of the contact.
     * @type {string}
     * @memberof Contact
     */
    suffix?: string | null;
    /**
     * The job title of the contact.
     * @type {string}
     * @memberof Contact
     */
    title?: string | null;
    /**
     * The department of the contact.
     * @type {string}
     * @memberof Contact
     */
    department?: string | null;
    /**
     * language code according to ISO 639-1. For the United States - EN
     * @type {string}
     * @memberof Contact
     */
    language?: string | null;
    /**
     * The gender of the contact.
     * @type {string}
     * @memberof Contact
     */
    gender?: ContactGender;
    /**
     * The birthday of the contact.
     * @type {string}
     * @memberof Contact
     */
    birthday?: string | null;
    /**
     *
     * @type {string}
     * @memberof Contact
     */
    image?: string | null;
    /**
     * The URL of the photo of a person.
     * @type {string}
     * @memberof Contact
     */
    photo_url?: string | null;
    /**
     * The lead source of the contact.
     * @type {string}
     * @memberof Contact
     */
    lead_source?: string | null;
    /**
     * The fax number of the contact.
     * @type {string}
     * @memberof Contact
     */
    fax?: string | null;
    /**
     * The description of the contact.
     * @type {string}
     * @memberof Contact
     */
    description?: string | null;
    /**
     * The current balance of the contact.
     * @type {number}
     * @memberof Contact
     */
    current_balance?: number | null;
    /**
     * The status of the contact.
     * @type {string}
     * @memberof Contact
     */
    status?: string | null;
    /**
     * The active status of the contact.
     * @type {boolean}
     * @memberof Contact
     */
    active?: boolean | null;
    /**
     *
     * @type {Array<Website>}
     * @memberof Contact
     */
    websites?: Array<Website>;
    /**
     *
     * @type {Array<Address>}
     * @memberof Contact
     */
    addresses?: Array<Address>;
    /**
     *
     * @type {Array<SocialLink>}
     * @memberof Contact
     */
    social_links?: Array<SocialLink>;
    /**
     *
     * @type {Array<PhoneNumber>}
     * @memberof Contact
     */
    phone_numbers?: Array<PhoneNumber>;
    /**
     *
     * @type {Array<Email>}
     * @memberof Contact
     */
    emails?: Array<Email>;
    /**
     *
     * @type {string}
     * @memberof Contact
     */
    email_domain?: string | null;
    /**
     *
     * @type {Array<CustomField>}
     * @memberof Contact
     */
    custom_fields?: Array<CustomField>;
    /**
     *
     * @type {Tags}
     * @memberof Contact
     */
    tags?: Tags | null;
    /**
     * The first call date of the contact.
     * @type {Date}
     * @memberof Contact
     */
    readonly first_call_at?: Date | null;
    /**
     * The first email date of the contact.
     * @type {Date}
     * @memberof Contact
     */
    readonly first_email_at?: Date | null;
    /**
     * The last activity date of the contact.
     * @type {Date}
     * @memberof Contact
     */
    readonly last_activity_at?: Date | null;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     * @type {object}
     * @memberof Contact
     */
    readonly custom_mappings?: object | null;
    /**
     * The last update date of the contact.
     * @type {Date}
     * @memberof Contact
     */
    readonly updated_at?: Date | null;
    /**
     * The creation date of the contact.
     * @type {Date}
     * @memberof Contact
     */
    readonly created_at?: Date | null;
    /**
     * The opportunity ids of the contact.
     * @type {Array<string>}
     * @memberof Contact
     */
    opportunity_ids?: Array<string>;
    /**
     *
     * @type {PassThroughBody}
     * @memberof Contact
     */
    pass_through?: PassThroughBody;
}
/**
 * @export
 * @enum {string}
 */
export declare enum ContactType {
    customer = "customer",
    supplier = "supplier",
    employee = "employee",
    personal = "personal"
}
/**
 * @export
 * @enum {string}
 */
export declare enum ContactGender {
    male = "male",
    female = "female",
    unisex = "unisex"
}
export declare function ContactFromJSON(json: any): Contact;
export declare function ContactFromJSONTyped(json: any, ignoreDiscriminator: boolean): Contact;
export declare function ContactToJSON(value?: Contact | null): any;
