import * as z from "zod";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { CreateQuestionnaire, CreateQuestionnaire$Outbound } from "./createquestionnaire.js";
import { CustomFields, CustomFields$Outbound } from "./customfields.js";
import { PhoneNumber, PhoneNumber$Outbound } from "./phonenumber.js";
import { SocialLink, SocialLink$Outbound } from "./sociallink.js";
export type AtsCreateApplicationRequestDto4 = {};
/**
 * The source value of the application status.
 */
export type AtsCreateApplicationRequestDtoSourceValue = AtsCreateApplicationRequestDto4 | string | number | boolean | Array<any>;
/**
 * The status of the application.
 */
export declare enum AtsCreateApplicationRequestDtoValue {
    Active = "active",
    Assessment = "assessment",
    BackgroundCheck = "background_check",
    Converted = "converted",
    DeclinedByCandidate = "declined_by_candidate",
    Hired = "hired",
    Interview = "interview",
    Lead = "lead",
    Offer = "offer",
    ReferenceCheck = "reference_check",
    Rejected = "rejected",
    Review = "review",
    Screen = "screen",
    New = "new",
    Onboarding = "onboarding",
    Created = "created",
    Accepted = "accepted",
    ShortList = "short_list",
    Approved = "approved",
    UnmappedValue = "unmapped_value"
}
/**
 * The status of the application.
 */
export type AtsCreateApplicationRequestDtoValueOpen = OpenEnum<typeof AtsCreateApplicationRequestDtoValue>;
export type AtsCreateApplicationRequestDtoApplicationStatus = {
    /**
     * The source value of the application status.
     */
    sourceValue?: AtsCreateApplicationRequestDto4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The status of the application.
     */
    value?: AtsCreateApplicationRequestDtoValueOpen | null | undefined;
};
/**
 * Candidate Properties. Provide this OR candidate_id, but not both. Providing this attempts to create a new candidate with the application.
 */
export type AtsCreateApplicationRequestDtoCandidate = {
    /**
     * Candidate company
     */
    company?: string | null | undefined;
    /**
     * Candidate country
     */
    country?: string | null | undefined;
    /**
     * The candidate custom fields
     */
    customFields?: Array<CustomFields> | null | undefined;
    /**
     * Candidate email
     */
    email?: string | null | undefined;
    /**
     * Candidate first name
     */
    firstName?: string | null | undefined;
    /**
     * Candidate hired date
     */
    hiredAt?: Date | null | undefined;
    /**
     * Candidate last name
     */
    lastName?: string | null | undefined;
    /**
     * Candidate name
     */
    name?: string | null | undefined;
    /**
     * Value to pass through to the provider
     */
    passthrough?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The candidate personal phone number
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    phoneNumber?: string | null | undefined;
    /**
     * List of candidate phone numbers including the type of the number when available
     */
    phoneNumbers?: Array<PhoneNumber> | 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;
};
export type AtsCreateApplicationRequestDtoSource = {
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * The source of the application
     */
    name?: string | null | undefined;
};
export type AtsCreateApplicationRequestDto = {
    applicationStatus?: AtsCreateApplicationRequestDtoApplicationStatus | null | undefined;
    /**
     * Candidate Properties. Provide this OR candidate_id, but not both. Providing this attempts to create a new candidate with the application.
     */
    candidate?: AtsCreateApplicationRequestDtoCandidate | null | undefined;
    /**
     * Unique identifier of the candidate. Provide this OR candidate, but not both.
     */
    candidateId?: string | null | undefined;
    /**
     * Unique identifier of the job
     */
    jobId?: string | null | undefined;
    /**
     * Unique identifier of the job posting that is associated with application
     */
    jobPostingId?: string | null | undefined;
    /**
     * Unique identifier of the location
     */
    locationId?: string | null | undefined;
    /**
     * Value to pass through to the provider
     */
    passthrough?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * Questionnaires associated with the application
     */
    questionnaires?: Array<CreateQuestionnaire> | null | undefined;
    source?: AtsCreateApplicationRequestDtoSource | null | undefined;
};
/** @internal */
export declare const AtsCreateApplicationRequestDto4$inboundSchema: z.ZodType<AtsCreateApplicationRequestDto4, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsCreateApplicationRequestDto4$Outbound = {};
/** @internal */
export declare const AtsCreateApplicationRequestDto4$outboundSchema: z.ZodType<AtsCreateApplicationRequestDto4$Outbound, z.ZodTypeDef, AtsCreateApplicationRequestDto4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsCreateApplicationRequestDto4$ {
    /** @deprecated use `AtsCreateApplicationRequestDto4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsCreateApplicationRequestDto4, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsCreateApplicationRequestDto4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsCreateApplicationRequestDto4$Outbound, z.ZodTypeDef, AtsCreateApplicationRequestDto4>;
    /** @deprecated use `AtsCreateApplicationRequestDto4$Outbound` instead. */
    type Outbound = AtsCreateApplicationRequestDto4$Outbound;
}
export declare function atsCreateApplicationRequestDto4ToJSON(atsCreateApplicationRequestDto4: AtsCreateApplicationRequestDto4): string;
export declare function atsCreateApplicationRequestDto4FromJSON(jsonString: string): SafeParseResult<AtsCreateApplicationRequestDto4, SDKValidationError>;
/** @internal */
export declare const AtsCreateApplicationRequestDtoSourceValue$inboundSchema: z.ZodType<AtsCreateApplicationRequestDtoSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsCreateApplicationRequestDtoSourceValue$Outbound = AtsCreateApplicationRequestDto4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const AtsCreateApplicationRequestDtoSourceValue$outboundSchema: z.ZodType<AtsCreateApplicationRequestDtoSourceValue$Outbound, z.ZodTypeDef, AtsCreateApplicationRequestDtoSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsCreateApplicationRequestDtoSourceValue$ {
    /** @deprecated use `AtsCreateApplicationRequestDtoSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsCreateApplicationRequestDtoSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsCreateApplicationRequestDtoSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsCreateApplicationRequestDtoSourceValue$Outbound, z.ZodTypeDef, AtsCreateApplicationRequestDtoSourceValue>;
    /** @deprecated use `AtsCreateApplicationRequestDtoSourceValue$Outbound` instead. */
    type Outbound = AtsCreateApplicationRequestDtoSourceValue$Outbound;
}
export declare function atsCreateApplicationRequestDtoSourceValueToJSON(atsCreateApplicationRequestDtoSourceValue: AtsCreateApplicationRequestDtoSourceValue): string;
export declare function atsCreateApplicationRequestDtoSourceValueFromJSON(jsonString: string): SafeParseResult<AtsCreateApplicationRequestDtoSourceValue, SDKValidationError>;
/** @internal */
export declare const AtsCreateApplicationRequestDtoValue$inboundSchema: z.ZodType<AtsCreateApplicationRequestDtoValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const AtsCreateApplicationRequestDtoValue$outboundSchema: z.ZodType<AtsCreateApplicationRequestDtoValueOpen, z.ZodTypeDef, AtsCreateApplicationRequestDtoValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsCreateApplicationRequestDtoValue$ {
    /** @deprecated use `AtsCreateApplicationRequestDtoValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsCreateApplicationRequestDtoValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsCreateApplicationRequestDtoValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsCreateApplicationRequestDtoValueOpen, z.ZodTypeDef, AtsCreateApplicationRequestDtoValueOpen>;
}
/** @internal */
export declare const AtsCreateApplicationRequestDtoApplicationStatus$inboundSchema: z.ZodType<AtsCreateApplicationRequestDtoApplicationStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsCreateApplicationRequestDtoApplicationStatus$Outbound = {
    source_value?: AtsCreateApplicationRequestDto4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const AtsCreateApplicationRequestDtoApplicationStatus$outboundSchema: z.ZodType<AtsCreateApplicationRequestDtoApplicationStatus$Outbound, z.ZodTypeDef, AtsCreateApplicationRequestDtoApplicationStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsCreateApplicationRequestDtoApplicationStatus$ {
    /** @deprecated use `AtsCreateApplicationRequestDtoApplicationStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsCreateApplicationRequestDtoApplicationStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsCreateApplicationRequestDtoApplicationStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsCreateApplicationRequestDtoApplicationStatus$Outbound, z.ZodTypeDef, AtsCreateApplicationRequestDtoApplicationStatus>;
    /** @deprecated use `AtsCreateApplicationRequestDtoApplicationStatus$Outbound` instead. */
    type Outbound = AtsCreateApplicationRequestDtoApplicationStatus$Outbound;
}
export declare function atsCreateApplicationRequestDtoApplicationStatusToJSON(atsCreateApplicationRequestDtoApplicationStatus: AtsCreateApplicationRequestDtoApplicationStatus): string;
export declare function atsCreateApplicationRequestDtoApplicationStatusFromJSON(jsonString: string): SafeParseResult<AtsCreateApplicationRequestDtoApplicationStatus, SDKValidationError>;
/** @internal */
export declare const AtsCreateApplicationRequestDtoCandidate$inboundSchema: z.ZodType<AtsCreateApplicationRequestDtoCandidate, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsCreateApplicationRequestDtoCandidate$Outbound = {
    company?: string | null | undefined;
    country?: string | null | undefined;
    custom_fields?: Array<CustomFields$Outbound> | null | undefined;
    email?: string | null | undefined;
    first_name?: string | null | undefined;
    hired_at?: string | null | undefined;
    last_name?: string | null | undefined;
    name?: string | null | undefined;
    passthrough?: {
        [k: string]: any;
    } | null | undefined;
    phone_number?: string | null | undefined;
    phone_numbers?: Array<PhoneNumber$Outbound> | null | undefined;
    social_links?: Array<SocialLink$Outbound> | null | undefined;
    title?: string | null | undefined;
    unified_custom_fields?: {
        [k: string]: any;
    } | null | undefined;
};
/** @internal */
export declare const AtsCreateApplicationRequestDtoCandidate$outboundSchema: z.ZodType<AtsCreateApplicationRequestDtoCandidate$Outbound, z.ZodTypeDef, AtsCreateApplicationRequestDtoCandidate>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsCreateApplicationRequestDtoCandidate$ {
    /** @deprecated use `AtsCreateApplicationRequestDtoCandidate$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsCreateApplicationRequestDtoCandidate, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsCreateApplicationRequestDtoCandidate$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsCreateApplicationRequestDtoCandidate$Outbound, z.ZodTypeDef, AtsCreateApplicationRequestDtoCandidate>;
    /** @deprecated use `AtsCreateApplicationRequestDtoCandidate$Outbound` instead. */
    type Outbound = AtsCreateApplicationRequestDtoCandidate$Outbound;
}
export declare function atsCreateApplicationRequestDtoCandidateToJSON(atsCreateApplicationRequestDtoCandidate: AtsCreateApplicationRequestDtoCandidate): string;
export declare function atsCreateApplicationRequestDtoCandidateFromJSON(jsonString: string): SafeParseResult<AtsCreateApplicationRequestDtoCandidate, SDKValidationError>;
/** @internal */
export declare const AtsCreateApplicationRequestDtoSource$inboundSchema: z.ZodType<AtsCreateApplicationRequestDtoSource, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsCreateApplicationRequestDtoSource$Outbound = {
    id?: string | null | undefined;
    name?: string | null | undefined;
};
/** @internal */
export declare const AtsCreateApplicationRequestDtoSource$outboundSchema: z.ZodType<AtsCreateApplicationRequestDtoSource$Outbound, z.ZodTypeDef, AtsCreateApplicationRequestDtoSource>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsCreateApplicationRequestDtoSource$ {
    /** @deprecated use `AtsCreateApplicationRequestDtoSource$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsCreateApplicationRequestDtoSource, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsCreateApplicationRequestDtoSource$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsCreateApplicationRequestDtoSource$Outbound, z.ZodTypeDef, AtsCreateApplicationRequestDtoSource>;
    /** @deprecated use `AtsCreateApplicationRequestDtoSource$Outbound` instead. */
    type Outbound = AtsCreateApplicationRequestDtoSource$Outbound;
}
export declare function atsCreateApplicationRequestDtoSourceToJSON(atsCreateApplicationRequestDtoSource: AtsCreateApplicationRequestDtoSource): string;
export declare function atsCreateApplicationRequestDtoSourceFromJSON(jsonString: string): SafeParseResult<AtsCreateApplicationRequestDtoSource, SDKValidationError>;
/** @internal */
export declare const AtsCreateApplicationRequestDto$inboundSchema: z.ZodType<AtsCreateApplicationRequestDto, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsCreateApplicationRequestDto$Outbound = {
    application_status?: AtsCreateApplicationRequestDtoApplicationStatus$Outbound | null | undefined;
    candidate?: AtsCreateApplicationRequestDtoCandidate$Outbound | null | undefined;
    candidate_id?: string | null | undefined;
    job_id?: string | null | undefined;
    job_posting_id?: string | null | undefined;
    location_id?: string | null | undefined;
    passthrough?: {
        [k: string]: any;
    } | null | undefined;
    questionnaires?: Array<CreateQuestionnaire$Outbound> | null | undefined;
    source?: AtsCreateApplicationRequestDtoSource$Outbound | null | undefined;
};
/** @internal */
export declare const AtsCreateApplicationRequestDto$outboundSchema: z.ZodType<AtsCreateApplicationRequestDto$Outbound, z.ZodTypeDef, AtsCreateApplicationRequestDto>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsCreateApplicationRequestDto$ {
    /** @deprecated use `AtsCreateApplicationRequestDto$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsCreateApplicationRequestDto, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsCreateApplicationRequestDto$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsCreateApplicationRequestDto$Outbound, z.ZodTypeDef, AtsCreateApplicationRequestDto>;
    /** @deprecated use `AtsCreateApplicationRequestDto$Outbound` instead. */
    type Outbound = AtsCreateApplicationRequestDto$Outbound;
}
export declare function atsCreateApplicationRequestDtoToJSON(atsCreateApplicationRequestDto: AtsCreateApplicationRequestDto): string;
export declare function atsCreateApplicationRequestDtoFromJSON(jsonString: string): SafeParseResult<AtsCreateApplicationRequestDto, SDKValidationError>;
//# sourceMappingURL=atscreateapplicationrequestdto.d.ts.map