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 { CustomFields, CustomFields$Outbound } from "./customfields.js";
import { InterviewStage, InterviewStage$Outbound } from "./interviewstage.js";
import { JobHiringTeam, JobHiringTeam$Outbound } from "./jobhiringteam.js";
/**
 * Confidential status of the job
 */
export declare enum JobConfidential {
    True = "true",
    False = "false",
    UnmappedValue = "unmapped_value"
}
/**
 * Confidential status of the job
 */
export type JobConfidentialOpen = OpenEnum<typeof JobConfidential>;
export type Job4 = {};
/**
 * The source value of the job status.
 */
export type JobSourceValue = Job4 | string | number | boolean | Array<any>;
/**
 * The status of the job.
 */
export declare enum JobValue {
    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 JobValueOpen = OpenEnum<typeof JobValue>;
/**
 * Status of the job
 */
export type JobJobStatus = {
    /**
     * The source value of the job status.
     */
    sourceValue?: Job4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The status of the job.
     */
    value?: JobValueOpen | null | undefined;
};
export type Job = {
    /**
     * Code of the job
     */
    code?: string | null | undefined;
    /**
     * Confidential status of the job
     */
    confidential?: JobConfidentialOpen | 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<JobHiringTeam> | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * Interview stages for the job.
     */
    interviewStages?: Array<InterviewStage> | null | undefined;
    /**
     * Status of the job
     */
    jobStatus?: JobJobStatus | 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 JobConfidential$inboundSchema: z.ZodType<JobConfidentialOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const JobConfidential$outboundSchema: z.ZodType<JobConfidentialOpen, z.ZodTypeDef, JobConfidentialOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace JobConfidential$ {
    /** @deprecated use `JobConfidential$inboundSchema` instead. */
    const inboundSchema: z.ZodType<JobConfidentialOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `JobConfidential$outboundSchema` instead. */
    const outboundSchema: z.ZodType<JobConfidentialOpen, z.ZodTypeDef, JobConfidentialOpen>;
}
/** @internal */
export declare const Job4$inboundSchema: z.ZodType<Job4, z.ZodTypeDef, unknown>;
/** @internal */
export type Job4$Outbound = {};
/** @internal */
export declare const Job4$outboundSchema: z.ZodType<Job4$Outbound, z.ZodTypeDef, Job4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Job4$ {
    /** @deprecated use `Job4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Job4, z.ZodTypeDef, unknown>;
    /** @deprecated use `Job4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Job4$Outbound, z.ZodTypeDef, Job4>;
    /** @deprecated use `Job4$Outbound` instead. */
    type Outbound = Job4$Outbound;
}
export declare function job4ToJSON(job4: Job4): string;
export declare function job4FromJSON(jsonString: string): SafeParseResult<Job4, SDKValidationError>;
/** @internal */
export declare const JobSourceValue$inboundSchema: z.ZodType<JobSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type JobSourceValue$Outbound = Job4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const JobSourceValue$outboundSchema: z.ZodType<JobSourceValue$Outbound, z.ZodTypeDef, JobSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace JobSourceValue$ {
    /** @deprecated use `JobSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<JobSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `JobSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<JobSourceValue$Outbound, z.ZodTypeDef, JobSourceValue>;
    /** @deprecated use `JobSourceValue$Outbound` instead. */
    type Outbound = JobSourceValue$Outbound;
}
export declare function jobSourceValueToJSON(jobSourceValue: JobSourceValue): string;
export declare function jobSourceValueFromJSON(jsonString: string): SafeParseResult<JobSourceValue, SDKValidationError>;
/** @internal */
export declare const JobValue$inboundSchema: z.ZodType<JobValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const JobValue$outboundSchema: z.ZodType<JobValueOpen, z.ZodTypeDef, JobValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace JobValue$ {
    /** @deprecated use `JobValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<JobValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `JobValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<JobValueOpen, z.ZodTypeDef, JobValueOpen>;
}
/** @internal */
export declare const JobJobStatus$inboundSchema: z.ZodType<JobJobStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type JobJobStatus$Outbound = {
    source_value?: Job4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const JobJobStatus$outboundSchema: z.ZodType<JobJobStatus$Outbound, z.ZodTypeDef, JobJobStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace JobJobStatus$ {
    /** @deprecated use `JobJobStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<JobJobStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `JobJobStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<JobJobStatus$Outbound, z.ZodTypeDef, JobJobStatus>;
    /** @deprecated use `JobJobStatus$Outbound` instead. */
    type Outbound = JobJobStatus$Outbound;
}
export declare function jobJobStatusToJSON(jobJobStatus: JobJobStatus): string;
export declare function jobJobStatusFromJSON(jsonString: string): SafeParseResult<JobJobStatus, SDKValidationError>;
/** @internal */
export declare const Job$inboundSchema: z.ZodType<Job, z.ZodTypeDef, unknown>;
/** @internal */
export type Job$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<JobHiringTeam$Outbound> | null | undefined;
    id?: string | null | undefined;
    interview_stages?: Array<InterviewStage$Outbound> | null | undefined;
    job_status?: JobJobStatus$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 Job$outboundSchema: z.ZodType<Job$Outbound, z.ZodTypeDef, Job>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Job$ {
    /** @deprecated use `Job$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Job, z.ZodTypeDef, unknown>;
    /** @deprecated use `Job$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Job$Outbound, z.ZodTypeDef, Job>;
    /** @deprecated use `Job$Outbound` instead. */
    type Outbound = Job$Outbound;
}
export declare function jobToJSON(job: Job): string;
export declare function jobFromJSON(jsonString: string): SafeParseResult<Job, SDKValidationError>;
//# sourceMappingURL=job.d.ts.map