import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { RFCDate } from "../../types/rfcdate.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Address, Address$Outbound } from "./address.js";
import { CustomField, CustomField$Outbound } from "./customfield.js";
import { Email, Email$Outbound } from "./email.js";
import { PassThroughBody, PassThroughBody$Outbound } from "./passthroughbody.js";
import { PhoneNumber, PhoneNumber$Outbound } from "./phonenumber.js";
/**
 * The gender represents the gender identity of a person.
 */
export declare const ApplicantGender: {
    readonly Male: "male";
    readonly Female: "female";
    readonly Unisex: "unisex";
    readonly Other: "other";
    readonly NotSpecified: "not_specified";
};
/**
 * The gender represents the gender identity of a person.
 */
export type ApplicantGender = ClosedEnum<typeof ApplicantGender>;
/**
 * The type of website
 */
export declare const ApplicantType: {
    readonly Primary: "primary";
    readonly Secondary: "secondary";
    readonly Work: "work";
    readonly Personal: "personal";
    readonly Other: "other";
};
/**
 * The type of website
 */
export type ApplicantType = ClosedEnum<typeof ApplicantType>;
export type Websites = {
    /**
     * Unique identifier for the website
     */
    id?: string | null | undefined;
    /**
     * The website URL
     */
    url: string;
    /**
     * The type of website
     */
    type?: ApplicantType | null | undefined;
};
export type SocialLinks = {
    /**
     * Unique identifier of the social link
     */
    id?: string | null | undefined;
    /**
     * URL of the social link, e.g. https://www.twitter.com/apideck
     */
    url: string;
    /**
     * Type of the social link, e.g. twitter
     */
    type?: string | null | undefined;
};
export type Applicant = {
    /**
     * A unique identifier for an object.
     */
    id?: string | undefined;
    /**
     * The name of an applicant.
     */
    name?: string | undefined;
    /**
     * A formal salutation for the person. For example, 'Mr', 'Mrs'
     */
    salutation?: string | null | undefined;
    /**
     * The first name of the person.
     */
    firstName?: string | null | undefined;
    /**
     * The last name of the person.
     */
    lastName?: string | null | undefined;
    /**
     * Middle name of the person.
     */
    middleName?: string | null | undefined;
    /**
     * The initials of the person, usually derived from their first, middle, and last names.
     */
    initials?: string | null | undefined;
    /**
     * The date of birth of the person.
     */
    birthday?: RFCDate | null | undefined;
    /**
     * The gender represents the gender identity of a person.
     */
    gender?: ApplicantGender | null | undefined;
    /**
     * A unique identifier assigned by the government. This field is considered sensitive information and may be subject to special security and privacy restrictions.
     */
    socialSecurityNumber?: string | null | undefined;
    type?: string | undefined;
    coverLetter?: string | undefined;
    jobUrl?: string | null | undefined;
    /**
     * The URL of the photo of a person.
     */
    photoUrl?: string | null | undefined;
    /**
     * Typically a list of previous companies where the contact has worked or schools that the contact has attended
     */
    headline?: string | undefined;
    /**
     * The job title of the person.
     */
    title?: string | null | undefined;
    emails?: Array<Email> | undefined;
    customFields?: Array<CustomField> | undefined;
    phoneNumbers?: Array<PhoneNumber> | undefined;
    addresses?: Array<Address> | undefined;
    websites?: Array<Websites> | undefined;
    socialLinks?: Array<SocialLinks> | undefined;
    stageId?: string | undefined;
    recruiterId?: string | undefined;
    coordinatorId?: string | undefined;
    applicationIds?: Array<string> | null | undefined;
    /**
     * Deprecated: Use application_ids instead. Array of application IDs associated with the applicant.
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    applications?: Array<string> | null | undefined;
    followers?: Array<string> | null | undefined;
    sources?: Array<string> | null | undefined;
    sourceId?: string | undefined;
    confidential?: boolean | undefined;
    anonymized?: boolean | undefined;
    tags?: Array<string> | null | undefined;
    archived?: boolean | null | undefined;
    lastInteractionAt?: Date | null | undefined;
    ownerId?: string | null | undefined;
    sourcedBy?: string | null | undefined;
    cvUrl?: string | undefined;
    recordUrl?: string | null | undefined;
    rejectedAt?: Date | null | undefined;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     */
    customMappings?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * Flag to indicate if the object is deleted.
     */
    deleted?: boolean | null | undefined;
    /**
     * The user who deleted the object.
     */
    deletedBy?: string | null | undefined;
    /**
     * The time at which the object was deleted.
     */
    deletedAt?: Date | 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;
    /**
     * The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
     */
    passThrough?: Array<PassThroughBody> | undefined;
};
export type ApplicantInput = {
    /**
     * The name of an applicant.
     */
    name?: string | undefined;
    /**
     * A formal salutation for the person. For example, 'Mr', 'Mrs'
     */
    salutation?: string | null | undefined;
    /**
     * The first name of the person.
     */
    firstName?: string | null | undefined;
    /**
     * The last name of the person.
     */
    lastName?: string | null | undefined;
    /**
     * Middle name of the person.
     */
    middleName?: string | null | undefined;
    /**
     * The initials of the person, usually derived from their first, middle, and last names.
     */
    initials?: string | null | undefined;
    /**
     * The date of birth of the person.
     */
    birthday?: RFCDate | null | undefined;
    /**
     * The gender represents the gender identity of a person.
     */
    gender?: ApplicantGender | null | undefined;
    /**
     * A unique identifier assigned by the government. This field is considered sensitive information and may be subject to special security and privacy restrictions.
     */
    socialSecurityNumber?: string | null | undefined;
    type?: string | undefined;
    coverLetter?: string | undefined;
    /**
     * The URL of the photo of a person.
     */
    photoUrl?: string | null | undefined;
    /**
     * Typically a list of previous companies where the contact has worked or schools that the contact has attended
     */
    headline?: string | undefined;
    /**
     * The job title of the person.
     */
    title?: string | null | undefined;
    emails?: Array<Email> | undefined;
    customFields?: Array<CustomField> | undefined;
    phoneNumbers?: Array<PhoneNumber> | undefined;
    addresses?: Array<Address> | undefined;
    websites?: Array<Websites> | undefined;
    socialLinks?: Array<SocialLinks> | undefined;
    stageId?: string | undefined;
    recruiterId?: string | undefined;
    coordinatorId?: string | undefined;
    applicationIds?: Array<string> | null | undefined;
    /**
     * Deprecated: Use application_ids instead. Array of application IDs associated with the applicant.
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    applications?: Array<string> | null | undefined;
    followers?: Array<string> | null | undefined;
    sources?: Array<string> | null | undefined;
    confidential?: boolean | undefined;
    anonymized?: boolean | undefined;
    tags?: Array<string> | null | undefined;
    archived?: boolean | null | undefined;
    ownerId?: string | null | undefined;
    recordUrl?: string | null | undefined;
    /**
     * Flag to indicate if the object is deleted.
     */
    deleted?: boolean | 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<PassThroughBody> | undefined;
};
/** @internal */
export declare const ApplicantGender$inboundSchema: z.ZodNativeEnum<typeof ApplicantGender>;
/** @internal */
export declare const ApplicantGender$outboundSchema: z.ZodNativeEnum<typeof ApplicantGender>;
/** @internal */
export declare const ApplicantType$inboundSchema: z.ZodNativeEnum<typeof ApplicantType>;
/** @internal */
export declare const ApplicantType$outboundSchema: z.ZodNativeEnum<typeof ApplicantType>;
/** @internal */
export declare const Websites$inboundSchema: z.ZodType<Websites, z.ZodTypeDef, unknown>;
/** @internal */
export type Websites$Outbound = {
    id?: string | null | undefined;
    url: string;
    type?: string | null | undefined;
};
/** @internal */
export declare const Websites$outboundSchema: z.ZodType<Websites$Outbound, z.ZodTypeDef, Websites>;
export declare function websitesToJSON(websites: Websites): string;
export declare function websitesFromJSON(jsonString: string): SafeParseResult<Websites, SDKValidationError>;
/** @internal */
export declare const SocialLinks$inboundSchema: z.ZodType<SocialLinks, z.ZodTypeDef, unknown>;
/** @internal */
export type SocialLinks$Outbound = {
    id?: string | null | undefined;
    url: string;
    type?: string | null | undefined;
};
/** @internal */
export declare const SocialLinks$outboundSchema: z.ZodType<SocialLinks$Outbound, z.ZodTypeDef, SocialLinks>;
export declare function socialLinksToJSON(socialLinks: SocialLinks): string;
export declare function socialLinksFromJSON(jsonString: string): SafeParseResult<SocialLinks, SDKValidationError>;
/** @internal */
export declare const Applicant$inboundSchema: z.ZodType<Applicant, z.ZodTypeDef, unknown>;
export declare function applicantFromJSON(jsonString: string): SafeParseResult<Applicant, SDKValidationError>;
/** @internal */
export type ApplicantInput$Outbound = {
    name?: string | undefined;
    salutation?: string | null | undefined;
    first_name?: string | null | undefined;
    last_name?: string | null | undefined;
    middle_name?: string | null | undefined;
    initials?: string | null | undefined;
    birthday?: string | null | undefined;
    gender?: string | null | undefined;
    social_security_number?: string | null | undefined;
    type?: string | undefined;
    cover_letter?: string | undefined;
    photo_url?: string | null | undefined;
    headline?: string | undefined;
    title?: string | null | undefined;
    emails?: Array<Email$Outbound> | undefined;
    custom_fields?: Array<CustomField$Outbound> | undefined;
    phone_numbers?: Array<PhoneNumber$Outbound> | undefined;
    addresses?: Array<Address$Outbound> | undefined;
    websites?: Array<Websites$Outbound> | undefined;
    social_links?: Array<SocialLinks$Outbound> | undefined;
    stage_id?: string | undefined;
    recruiter_id?: string | undefined;
    coordinator_id?: string | undefined;
    application_ids?: Array<string> | null | undefined;
    applications?: Array<string> | null | undefined;
    followers?: Array<string> | null | undefined;
    sources?: Array<string> | null | undefined;
    confidential?: boolean | undefined;
    anonymized?: boolean | undefined;
    tags?: Array<string> | null | undefined;
    archived?: boolean | null | undefined;
    owner_id?: string | null | undefined;
    record_url?: string | null | undefined;
    deleted?: boolean | null | undefined;
    pass_through?: Array<PassThroughBody$Outbound> | undefined;
};
/** @internal */
export declare const ApplicantInput$outboundSchema: z.ZodType<ApplicantInput$Outbound, z.ZodTypeDef, ApplicantInput>;
export declare function applicantInputToJSON(applicantInput: ApplicantInput): string;
//# sourceMappingURL=applicant.d.ts.map