import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { RFCDate } from "../../types/rfcdate.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Address } from "./address.js";
import { Currency } from "./currency.js";
import { CustomField } from "./customfield.js";
import { Department } from "./department.js";
import { JobStatus } from "./jobstatus.js";
/**
 * The visibility of the job
 */
export declare const Visibility: {
    readonly Draft: "draft";
    readonly Public: "public";
    readonly Internal: "internal";
};
/**
 * The visibility of the job
 */
export type Visibility = ClosedEnum<typeof Visibility>;
export declare const EmploymentTerms: {
    readonly FullTime: "full-time";
    readonly PartTime: "part-time";
    readonly Internship: "internship";
    readonly Contractor: "contractor";
    readonly Employee: "employee";
    readonly Freelance: "freelance";
    readonly Temp: "temp";
    readonly Seasonal: "seasonal";
    readonly Volunteer: "volunteer";
    readonly Other: "other";
};
export type EmploymentTerms = ClosedEnum<typeof EmploymentTerms>;
/**
 * Details of the branch for which the job is created.
 */
export type Branch = {
    /**
     * A unique identifier for an object.
     */
    id?: string | undefined;
    /**
     * Name of the branch.
     */
    name?: string | undefined;
};
export type Blocks = {
    title?: string | undefined;
    content?: string | null | undefined;
};
export type Salary = {
    /**
     * Minimum salary payable for the job role.
     */
    min?: number | undefined;
    /**
     * Maximum salary payable for the job role.
     */
    max?: number | undefined;
    /**
     * Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
     */
    currency?: Currency | null | undefined;
    interval?: string | null | undefined;
};
export declare const JobType: {
    readonly JobPortal: "job_portal";
    readonly JobDescription: "job_description";
};
export type JobType = ClosedEnum<typeof JobType>;
export type JobLinks = {
    type?: JobType | undefined;
    url?: string | undefined;
};
export type Job = {
    /**
     * A unique identifier for an object.
     */
    id?: string | undefined;
    slug?: string | null | undefined;
    /**
     * The job title of the person.
     */
    title?: string | null | undefined;
    /**
     * Sequence in relation to other jobs.
     */
    sequence?: number | undefined;
    /**
     * The visibility of the job
     */
    visibility?: Visibility | undefined;
    /**
     * The status of the job.
     */
    status?: JobStatus | undefined;
    /**
     * The code of the job.
     */
    code?: string | undefined;
    /**
     * language code according to ISO 639-1. For the United States - EN
     */
    language?: string | null | undefined;
    employmentTerms?: EmploymentTerms | null | undefined;
    /**
     * Level of experience required for the job role.
     */
    experience?: string | undefined;
    /**
     * Specifies the location for the job posting.
     */
    location?: string | null | undefined;
    /**
     * Specifies whether the posting is for a remote job.
     */
    remote?: boolean | null | undefined;
    /**
     * 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.
     */
    requisitionId?: string | undefined;
    department?: Department | undefined;
    /**
     * Details of the branch for which the job is created.
     */
    branch?: Branch | undefined;
    /**
     * The recruiter is generally someone who is tasked to help the hiring manager find and screen qualified applicant
     */
    recruiters?: Array<string> | null | undefined;
    hiringManagers?: Array<string> | undefined;
    followers?: Array<string> | null | undefined;
    /**
     * A description of the object.
     */
    description?: string | null | undefined;
    /**
     * The job description in HTML format
     */
    descriptionHtml?: string | null | undefined;
    blocks?: Array<Blocks> | undefined;
    closing?: string | null | undefined;
    /**
     * The closing section of the job description in HTML format
     */
    closingHtml?: string | null | undefined;
    closingDate?: RFCDate | null | undefined;
    salary?: Salary | undefined;
    /**
     * URL of the job description
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    url?: string | null | undefined;
    /**
     * URL of the job portal
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    jobPortalUrl?: string | null | undefined;
    /**
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    recordUrl?: string | null | undefined;
    links?: Array<JobLinks> | undefined;
    confidential?: boolean | undefined;
    /**
     * Specifies whether an employee of the organization can apply for the job.
     */
    availableToEmployees?: boolean | undefined;
    tags?: Array<string> | null | undefined;
    addresses?: Array<Address> | undefined;
    customFields?: Array<CustomField> | undefined;
    /**
     * Flag to indicate if the object is deleted.
     */
    deleted?: boolean | null | undefined;
    ownerId?: string | null | undefined;
    publishedAt?: Date | null | undefined;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     */
    customMappings?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The user who last updated the object.
     */
    updatedBy?: string | null | undefined;
    /**
     * The user who created the object.
     */
    createdBy?: string | null | undefined;
    /**
     * The date and time when the object was last updated.
     */
    updatedAt?: Date | null | undefined;
    /**
     * The date and time when the object was created.
     */
    createdAt?: Date | null | undefined;
};
/** @internal */
export declare const Visibility$inboundSchema: z.ZodNativeEnum<typeof Visibility>;
/** @internal */
export declare const EmploymentTerms$inboundSchema: z.ZodNativeEnum<typeof EmploymentTerms>;
/** @internal */
export declare const Branch$inboundSchema: z.ZodType<Branch, z.ZodTypeDef, unknown>;
export declare function branchFromJSON(jsonString: string): SafeParseResult<Branch, SDKValidationError>;
/** @internal */
export declare const Blocks$inboundSchema: z.ZodType<Blocks, z.ZodTypeDef, unknown>;
export declare function blocksFromJSON(jsonString: string): SafeParseResult<Blocks, SDKValidationError>;
/** @internal */
export declare const Salary$inboundSchema: z.ZodType<Salary, z.ZodTypeDef, unknown>;
export declare function salaryFromJSON(jsonString: string): SafeParseResult<Salary, SDKValidationError>;
/** @internal */
export declare const JobType$inboundSchema: z.ZodNativeEnum<typeof JobType>;
/** @internal */
export declare const JobLinks$inboundSchema: z.ZodType<JobLinks, z.ZodTypeDef, unknown>;
export declare function jobLinksFromJSON(jsonString: string): SafeParseResult<JobLinks, SDKValidationError>;
/** @internal */
export declare const Job$inboundSchema: z.ZodType<Job, z.ZodTypeDef, unknown>;
export declare function jobFromJSON(jsonString: string): SafeParseResult<Job, SDKValidationError>;
//# sourceMappingURL=job.d.ts.map