import { BaseEntity } from "./base.entity";
import { User } from "./user.entity";
import { JobSkill } from "./job-skill.entity";
import { JobApplication } from "./job-application.entity";
import { Interview } from "./interview.entity";
import { Country } from "./country.entity";
import { State } from "./state.entity";
import { City } from "./city.entity";
import { JobRecommendation } from "./job-recommendation.entity";
import { Contract } from "./contract.entity";
import { Timesheet } from "./timesheets.entity";
import { TimesheetLine } from "./timesheet-line.entity";
import { ClientCandidatePreference } from "./client-candidate-preference.entity";
import { Invoice } from "./invoice.entity";
import { F2FInterview } from "./f2f-interview.entity";
import { InterviewInvite } from "./interview-invite.entity";
import { EscrowWallet } from "./escrow-wallet.entity";
import { JobLocation } from "./job-location.entity";
import { Hiring } from "./hiring.entity";
import { Rating } from "./rating.entity";
import { ContractSummary } from "./contract-summary.entity";
import { Task } from "./task.entity";
export declare enum JobLocationEnum {
    ONSITE = "ONSITE",
    REMOTE = "REMOTE",
    HYBRID = "HYBRID",
    BOTH = "BOTH"
}
export declare enum typeOfExperienceEnum {
    SINGLE = "SINGLE",
    RANGE = "RANGE"
}
export declare enum BillingCycleEnum {
    WEEKLY = "WEEKLY",
    DELIVERABLE = "DELIVERABLE"
}
export declare enum TypeOfEmploymentEnum {
    FULLTIME = "FULLTIME",
    PARTTIME = "PARTTIME",
    BOTH = "BOTH",
    HOURLY = "HOURLY",
    FREELANCE = "FREELANCE",
    FTE = "FTE"
}
export declare enum Step {
    BASIC_INFORMATION = "BASIC_INFORMATION",
    ADDITIONAL_COMMENTS = "ADDITIONAL_COMMENTS",
    JOB_DESCRIPTION = "JOB_DESCRIPTION"
}
export declare enum JobStatusEnum {
    ACTIVE = "ACTIVE",
    OPEN = "OPEN",
    DRAFT = "DRAFT",
    ONHOLD = "ONHOLD",
    CLOSED = "CLOSED",
    COMPLETED = "COMPLETED"
}
export declare enum DurationTypeEnum {
    DAY = "DAY",
    WEEK = "WEEK",
    MONTH = "MONTH",
    YEAR = "YEAR"
}
export declare class Job extends BaseEntity {
    jobId: string;
    userId: number;
    user: User;
    countryId: number;
    country: Country;
    stateId: number;
    state: State;
    cityId: number;
    city: City;
    jobRole: string;
    jobRoleCanonicalName: string;
    projectName: string;
    note: string;
    openings: number;
    utilisedOpenings: number;
    location: JobLocationEnum;
    typeOfEmployment: TypeOfEmploymentEnum;
    billingCycle: BillingCycleEnum;
    academicQualification: string;
    typeOfExperience: typeOfExperienceEnum;
    yearsOfExperience: string;
    yearsOfExperienceFrom: string;
    yearsOfExperienceTo: string;
    businessIndustry: string;
    currency: string;
    expectedSalaryFrom: number;
    hideExpectedSalaryFrom: boolean;
    expectedSalaryTo: number;
    hideExpectedSalaryTo: boolean;
    expectedAnnualBudgetFrom: number;
    hideExpectedAnnualBudgetFrom: boolean;
    expectedAnnualBudgetTo: number;
    hideExpectedAnnualBudgetTo: boolean;
    years: string;
    months: string;
    weeks: string;
    days: string;
    tentativeStartDate: Date;
    tentativeEndDate: Date;
    durationType: DurationTypeEnum;
    duration: string;
    numberOfHours: number;
    description: string;
    additionalComment: string;
    onboardingTat: string;
    candidateCommunicationSkills: string;
    dealBreakers: any;
    stepCompleted: Step;
    status: JobStatusEnum;
    viewedCount: number;
    applicationCount: number;
    isContractSigned: boolean;
    isJobCreatedAsIs: boolean;
    isInterviewCreated: boolean;
    isJobCreatedViaAI: boolean;
    interviewInvites: InterviewInvite[];
    jobSkills: JobSkill[];
    jobApplications: JobApplication[];
    interviews: Interview[];
    f2fInterviews: F2FInterview[];
    recommendations: JobRecommendation[];
    contractSummaries: ContractSummary[];
    contracts: Contract[];
    hirings: Hiring[];
    escrowWallets: EscrowWallet[];
    timesheets: Timesheet[];
    timesheetLine: TimesheetLine[];
    invoice: Invoice[];
    clientCandidatePreferences: ClientCandidatePreference[];
    jobLocations: JobLocation[];
    ratings: Rating[];
    tasks: Task[];
}
