import * as z from "zod";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { CandidateEmail, CandidateEmail$Outbound } from "./candidateemail.js";
import { CustomFields, CustomFields$Outbound } from "./customfields.js";
import { PhoneNumber, PhoneNumber$Outbound } from "./phonenumber.js";
import { SocialLink, SocialLink$Outbound } from "./sociallink.js";
export type Candidate = {
    /**
     * List of candidate application IDs
     */
    applicationIds?: Array<string> | null | undefined;
    /**
     * Candidate company
     */
    company?: string | null | undefined;
    /**
     * Candidate country
     */
    country?: string | null | undefined;
    /**
     * Candidate created date
     */
    createdAt?: Date | null | undefined;
    /**
     * The candidate custom fields
     */
    customFields?: Array<CustomFields> | null | undefined;
    /**
     * Candidate email
     */
    email?: string | null | undefined;
    /**
     * List of candidate emails
     */
    emails?: Array<CandidateEmail> | null | undefined;
    /**
     * Candidate first name
     */
    firstName?: string | null | undefined;
    /**
     * Candidate hired date
     */
    hiredAt?: Date | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * Candidate last name
     */
    lastName?: string | null | undefined;
    /**
     * Candidate name
     */
    name?: string | null | undefined;
    /**
     * Candidate phone number
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    phone?: string | null | undefined;
    /**
     * List of candidate phone numbers including the type of the number when available
     */
    phoneNumbers?: Array<PhoneNumber> | null | undefined;
    /**
     * Provider's list of candidate application IDs
     */
    remoteApplicationIds?: Array<string> | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * List of candidate social links
     */
    socialLinks?: Array<SocialLink> | null | undefined;
    /**
     * Candidate title
     */
    title?: string | null | undefined;
    /**
     * Custom Unified Fields configured in your StackOne project
     */
    unifiedCustomFields?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * Candidate updated date
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const Candidate$inboundSchema: z.ZodType<Candidate, z.ZodTypeDef, unknown>;
/** @internal */
export type Candidate$Outbound = {
    application_ids?: Array<string> | null | undefined;
    company?: string | null | undefined;
    country?: string | null | undefined;
    created_at?: string | null | undefined;
    custom_fields?: Array<CustomFields$Outbound> | null | undefined;
    email?: string | null | undefined;
    emails?: Array<CandidateEmail$Outbound> | null | undefined;
    first_name?: string | null | undefined;
    hired_at?: string | null | undefined;
    id?: string | null | undefined;
    last_name?: string | null | undefined;
    name?: string | null | undefined;
    phone?: string | null | undefined;
    phone_numbers?: Array<PhoneNumber$Outbound> | null | undefined;
    remote_application_ids?: Array<string> | null | undefined;
    remote_id?: string | null | undefined;
    social_links?: Array<SocialLink$Outbound> | null | undefined;
    title?: string | null | undefined;
    unified_custom_fields?: {
        [k: string]: any;
    } | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const Candidate$outboundSchema: z.ZodType<Candidate$Outbound, z.ZodTypeDef, Candidate>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Candidate$ {
    /** @deprecated use `Candidate$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Candidate, z.ZodTypeDef, unknown>;
    /** @deprecated use `Candidate$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Candidate$Outbound, z.ZodTypeDef, Candidate>;
    /** @deprecated use `Candidate$Outbound` instead. */
    type Outbound = Candidate$Outbound;
}
export declare function candidateToJSON(candidate: Candidate): string;
export declare function candidateFromJSON(jsonString: string): SafeParseResult<Candidate, SDKValidationError>;
//# sourceMappingURL=candidate.d.ts.map