import * as z from "zod/v3";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { AtsJobHiringTeam, AtsJobHiringTeam$Outbound } from "./atsjobhiringteam.js";
import { CustomFields, CustomFields$Outbound } from "./customfields.js";
import { InterviewStage, InterviewStage$Outbound } from "./interviewstage.js";
/**
 * Confidential status of the job
 */
export declare enum AtsJobConfidential {
    True = "true",
    False = "false",
    UnmappedValue = "unmapped_value"
}
/**
 * Confidential status of the job
 */
export type AtsJobConfidentialOpen = OpenEnum<typeof AtsJobConfidential>;
export type AtsJob4 = {};
/**
 * The source value of the job status.
 */
export type AtsJobSourceValue = string | number | boolean | AtsJob4 | Array<any>;
/**
 * The status of the job.
 */
export declare enum AtsJobValue {
    Published = "published",
    Draft = "draft",
    Pending = "pending",
    Internal = "internal",
    Archived = "archived",
    Closed = "closed",
    Open = "open",
    Deleted = "deleted",
    OnHold = "on_hold",
    UnmappedValue = "unmapped_value"
}
/**
 * The status of the job.
 */
export type AtsJobValueOpen = OpenEnum<typeof AtsJobValue>;
/**
 * Status of the job
 */
export type AtsJobJobStatus = {
    /**
     * The source value of the job status.
     */
    sourceValue?: string | number | boolean | AtsJob4 | Array<any> | null | undefined;
    /**
     * The status of the job.
     */
    value?: AtsJobValueOpen | null | undefined;
};
export type AtsJob = {
    /**
     * Code of the job
     */
    code?: string | null | undefined;
    /**
     * Confidential status of the job
     */
    confidential?: AtsJobConfidentialOpen | null | undefined;
    /**
     * Date of creation
     */
    createdAt?: Date | null | undefined;
    /**
     * The job custom fields
     */
    customFields?: Array<CustomFields> | null | undefined;
    /**
     * Department ids of the job
     */
    departmentIds?: Array<string> | null | undefined;
    /**
     * Description of the job
     */
    description?: string | null | undefined;
    /**
     * Hiring team for the job.
     */
    hiringTeam?: Array<AtsJobHiringTeam> | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * Interview stages for the job.
     */
    interviewStages?: Array<InterviewStage> | null | undefined;
    /**
     * Status of the job
     */
    jobStatus?: AtsJobJobStatus | null | undefined;
    /**
     * Location ids of the job
     */
    locationIds?: Array<string> | null | undefined;
    /**
     * Provider's department ids of the job
     */
    remoteDepartmentIds?: Array<string> | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * Provider's location ids of the job
     */
    remoteLocationIds?: Array<string> | null | undefined;
    /**
     * Status of the job
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    status?: string | null | undefined;
    /**
     * Title of the job
     */
    title?: string | null | undefined;
    /**
     * Custom Unified Fields configured in your StackOne project
     */
    unifiedCustomFields?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * Date of last update
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const AtsJobConfidential$inboundSchema: z.ZodType<AtsJobConfidentialOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const AtsJobConfidential$outboundSchema: z.ZodType<AtsJobConfidentialOpen, z.ZodTypeDef, AtsJobConfidentialOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsJobConfidential$ {
    /** @deprecated use `AtsJobConfidential$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsJobConfidentialOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsJobConfidential$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsJobConfidentialOpen, z.ZodTypeDef, AtsJobConfidentialOpen>;
}
/** @internal */
export declare const AtsJob4$inboundSchema: z.ZodType<AtsJob4, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsJob4$Outbound = {};
/** @internal */
export declare const AtsJob4$outboundSchema: z.ZodType<AtsJob4$Outbound, z.ZodTypeDef, AtsJob4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsJob4$ {
    /** @deprecated use `AtsJob4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsJob4, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsJob4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsJob4$Outbound, z.ZodTypeDef, AtsJob4>;
    /** @deprecated use `AtsJob4$Outbound` instead. */
    type Outbound = AtsJob4$Outbound;
}
export declare function atsJob4ToJSON(atsJob4: AtsJob4): string;
export declare function atsJob4FromJSON(jsonString: string): SafeParseResult<AtsJob4, SDKValidationError>;
/** @internal */
export declare const AtsJobSourceValue$inboundSchema: z.ZodType<AtsJobSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsJobSourceValue$Outbound = string | number | boolean | AtsJob4$Outbound | Array<any>;
/** @internal */
export declare const AtsJobSourceValue$outboundSchema: z.ZodType<AtsJobSourceValue$Outbound, z.ZodTypeDef, AtsJobSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsJobSourceValue$ {
    /** @deprecated use `AtsJobSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsJobSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsJobSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsJobSourceValue$Outbound, z.ZodTypeDef, AtsJobSourceValue>;
    /** @deprecated use `AtsJobSourceValue$Outbound` instead. */
    type Outbound = AtsJobSourceValue$Outbound;
}
export declare function atsJobSourceValueToJSON(atsJobSourceValue: AtsJobSourceValue): string;
export declare function atsJobSourceValueFromJSON(jsonString: string): SafeParseResult<AtsJobSourceValue, SDKValidationError>;
/** @internal */
export declare const AtsJobValue$inboundSchema: z.ZodType<AtsJobValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const AtsJobValue$outboundSchema: z.ZodType<AtsJobValueOpen, z.ZodTypeDef, AtsJobValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsJobValue$ {
    /** @deprecated use `AtsJobValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsJobValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsJobValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsJobValueOpen, z.ZodTypeDef, AtsJobValueOpen>;
}
/** @internal */
export declare const AtsJobJobStatus$inboundSchema: z.ZodType<AtsJobJobStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsJobJobStatus$Outbound = {
    source_value?: string | number | boolean | AtsJob4$Outbound | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const AtsJobJobStatus$outboundSchema: z.ZodType<AtsJobJobStatus$Outbound, z.ZodTypeDef, AtsJobJobStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsJobJobStatus$ {
    /** @deprecated use `AtsJobJobStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsJobJobStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsJobJobStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsJobJobStatus$Outbound, z.ZodTypeDef, AtsJobJobStatus>;
    /** @deprecated use `AtsJobJobStatus$Outbound` instead. */
    type Outbound = AtsJobJobStatus$Outbound;
}
export declare function atsJobJobStatusToJSON(atsJobJobStatus: AtsJobJobStatus): string;
export declare function atsJobJobStatusFromJSON(jsonString: string): SafeParseResult<AtsJobJobStatus, SDKValidationError>;
/** @internal */
export declare const AtsJob$inboundSchema: z.ZodType<AtsJob, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsJob$Outbound = {
    code?: string | null | undefined;
    confidential?: string | null | undefined;
    created_at?: string | null | undefined;
    custom_fields?: Array<CustomFields$Outbound> | null | undefined;
    department_ids?: Array<string> | null | undefined;
    description?: string | null | undefined;
    hiring_team?: Array<AtsJobHiringTeam$Outbound> | null | undefined;
    id?: string | null | undefined;
    interview_stages?: Array<InterviewStage$Outbound> | null | undefined;
    job_status?: AtsJobJobStatus$Outbound | null | undefined;
    location_ids?: Array<string> | null | undefined;
    remote_department_ids?: Array<string> | null | undefined;
    remote_id?: string | null | undefined;
    remote_location_ids?: Array<string> | null | undefined;
    status?: string | null | undefined;
    title?: string | null | undefined;
    unified_custom_fields?: {
        [k: string]: any;
    } | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const AtsJob$outboundSchema: z.ZodType<AtsJob$Outbound, z.ZodTypeDef, AtsJob>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsJob$ {
    /** @deprecated use `AtsJob$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsJob, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsJob$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsJob$Outbound, z.ZodTypeDef, AtsJob>;
    /** @deprecated use `AtsJob$Outbound` instead. */
    type Outbound = AtsJob$Outbound;
}
export declare function atsJobToJSON(atsJob: AtsJob): string;
export declare function atsJobFromJSON(jsonString: string): SafeParseResult<AtsJob, SDKValidationError>;
//# sourceMappingURL=atsjob.d.ts.map