/**
 * Apideck
 * The Apideck OpenAPI Spec: SDK Optimized
 *
 * The version of the OpenAPI document: 10.13.0
 * Contact: support@apideck.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { Address } from './Address';
import { Branch } from './Branch';
import { CustomField } from './CustomField';
import { Department } from './Department';
import { JobLinks } from './JobLinks';
import { JobSalary } from './JobSalary';
import { JobStatus } from './JobStatus';
import { Tags } from './Tags';
/**
 *
 * @export
 * @interface Job
 */
export interface Job {
    /**
     * A unique identifier for an object.
     * @type {string}
     * @memberof Job
     */
    readonly id?: string;
    /**
     *
     * @type {string}
     * @memberof Job
     */
    slug?: string | null;
    /**
     * The job title of the person.
     * @type {string}
     * @memberof Job
     */
    title?: string | null;
    /**
     * Sequence in relation to other jobs.
     * @type {number}
     * @memberof Job
     */
    sequence?: number;
    /**
     * The visibility of the job
     * @type {string}
     * @memberof Job
     */
    visibility?: JobVisibility;
    /**
     *
     * @type {JobStatus}
     * @memberof Job
     */
    status?: JobStatus;
    /**
     * The code of the job.
     * @type {string}
     * @memberof Job
     */
    code?: string;
    /**
     * language code according to ISO 639-1. For the United States - EN
     * @type {string}
     * @memberof Job
     */
    language?: string | null;
    /**
     *
     * @type {string}
     * @memberof Job
     */
    employment_terms?: JobEmploymentTerms;
    /**
     * Level of experience required for the job role.
     * @type {string}
     * @memberof Job
     */
    experience?: string;
    /**
     * Specifies the location for the job posting.
     * @type {string}
     * @memberof Job
     */
    location?: string | null;
    /**
     * Specifies whether the posting is for a remote job.
     * @type {boolean}
     * @memberof Job
     */
    remote?: boolean | null;
    /**
     * A job's Requisition ID (Req ID) allows your organization to identify and track a job based on alphanumeric naming conventions unique to your company's internal processes.
     * @type {string}
     * @memberof Job
     */
    requisition_id?: string;
    /**
     *
     * @type {Department}
     * @memberof Job
     */
    department?: Department;
    /**
     *
     * @type {Branch}
     * @memberof Job
     */
    branch?: Branch;
    /**
     * The recruiter is generally someone who is tasked to help the hiring manager find and screen qualified applicant
     * @type {Array<string>}
     * @memberof Job
     */
    recruiters?: Array<string> | null;
    /**
     *
     * @type {Array<string>}
     * @memberof Job
     */
    hiring_managers?: Array<string>;
    /**
     *
     * @type {Array<string>}
     * @memberof Job
     */
    followers?: Array<string> | null;
    /**
     * A description of the object.
     * @type {string}
     * @memberof Job
     */
    description?: string | null;
    /**
     * The job description in HTML format
     * @type {string}
     * @memberof Job
     */
    description_html?: string | null;
    /**
     *
     * @type {Array<object>}
     * @memberof Job
     */
    blocks?: Array<object>;
    /**
     *
     * @type {string}
     * @memberof Job
     */
    closing?: string | null;
    /**
     * The closing section of the job description in HTML format
     * @type {string}
     * @memberof Job
     */
    closing_html?: string | null;
    /**
     *
     * @type {Date}
     * @memberof Job
     */
    closing_date?: Date | null;
    /**
     *
     * @type {JobSalary}
     * @memberof Job
     */
    salary?: JobSalary;
    /**
     * URL of the job description
     * @type {string}
     * @memberof Job
     */
    url?: string | null;
    /**
     * URL of the job portal
     * @type {string}
     * @memberof Job
     */
    job_portal_url?: string | null;
    /**
     *
     * @type {string}
     * @memberof Job
     */
    record_url?: string | null;
    /**
     *
     * @type {Array<JobLinks>}
     * @memberof Job
     */
    links?: Array<JobLinks>;
    /**
     *
     * @type {boolean}
     * @memberof Job
     */
    confidential?: boolean;
    /**
     * Specifies whether an employee of the organization can apply for the job.
     * @type {boolean}
     * @memberof Job
     */
    available_to_employees?: boolean;
    /**
     *
     * @type {Tags}
     * @memberof Job
     */
    tags?: Tags | null;
    /**
     *
     * @type {Array<Address>}
     * @memberof Job
     */
    addresses?: Array<Address>;
    /**
     *
     * @type {Array<CustomField>}
     * @memberof Job
     */
    custom_fields?: Array<CustomField>;
    /**
     * Flag to indicate if the object is deleted.
     * @type {boolean}
     * @memberof Job
     */
    deleted?: boolean | null;
    /**
     *
     * @type {string}
     * @memberof Job
     */
    owner_id?: string | null;
    /**
     *
     * @type {Date}
     * @memberof Job
     */
    readonly published_at?: Date | null;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     * @type {object}
     * @memberof Job
     */
    readonly custom_mappings?: object | null;
    /**
     * The user who last updated the object.
     * @type {string}
     * @memberof Job
     */
    readonly updated_by?: string | null;
    /**
     * The user who created the object.
     * @type {string}
     * @memberof Job
     */
    readonly created_by?: string | null;
    /**
     * The date and time when the object was last updated.
     * @type {Date}
     * @memberof Job
     */
    readonly updated_at?: Date | null;
    /**
     * The date and time when the object was created.
     * @type {Date}
     * @memberof Job
     */
    readonly created_at?: Date | null;
}
/**
 * @export
 * @enum {string}
 */
export declare enum JobVisibility {
    draft = "draft",
    public = "public",
    internal = "internal"
}
/**
 * @export
 * @enum {string}
 */
export declare enum JobEmploymentTerms {
    full_time = "full-time",
    part_time = "part-time",
    internship = "internship",
    contractor = "contractor",
    employee = "employee",
    freelance = "freelance",
    temp = "temp",
    seasonal = "seasonal",
    volunteer = "volunteer",
    other = "other"
}
export declare function JobFromJSON(json: any): Job;
export declare function JobFromJSONTyped(json: any, ignoreDiscriminator: boolean): Job;
export declare function JobToJSON(value?: Job | null): any;
