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, Address$Outbound } from "./address.js";
import { Currency } from "./currency.js";
import { PaymentUnit } from "./paymentunit.js";
/**
 * Indicates the status of the job.
 */
export declare const EmployeeJobStatus: {
    readonly Active: "active";
    readonly Inactive: "inactive";
    readonly Other: "other";
};
/**
 * Indicates the status of the job.
 */
export type EmployeeJobStatus = ClosedEnum<typeof EmployeeJobStatus>;
export type EmployeeJob = {
    /**
     * A unique identifier for an object.
     */
    id?: string | null | undefined;
    /**
     * A unique identifier for an object.
     */
    employeeId?: string | null | undefined;
    /**
     * The job title of the person.
     */
    title?: string | null | undefined;
    /**
     * The position and responsibilities of the person within the organization.
     */
    role?: string | null | undefined;
    /**
     * The date on which the employee starts working in their current job role.
     */
    startDate?: RFCDate | null | undefined;
    /**
     * The date on which the employee leaves or is expected to leave their current job role.
     */
    endDate?: RFCDate | null | undefined;
    /**
     * The rate of pay for the employee in their current job role.
     */
    compensationRate?: number | null | 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;
    /**
     * Unit of measurement for employee compensation.
     */
    paymentUnit?: PaymentUnit | null | undefined;
    /**
     * The date on which the employee was hired by the organization
     */
    hiredAt?: RFCDate | null | undefined;
    /**
     * Indicates whether this the employee's primary job.
     */
    isPrimary?: boolean | null | undefined;
    /**
     * Indicates whether this the employee has a manager role.
     */
    isManager?: boolean | null | undefined;
    /**
     * Indicates the status of the job.
     */
    status?: EmployeeJobStatus | null | undefined;
    location?: Address | undefined;
};
export type EmployeeJobInput = {
    /**
     * The job title of the person.
     */
    title?: string | null | undefined;
    /**
     * The position and responsibilities of the person within the organization.
     */
    role?: string | null | undefined;
    /**
     * The date on which the employee starts working in their current job role.
     */
    startDate?: RFCDate | null | undefined;
    /**
     * The date on which the employee leaves or is expected to leave their current job role.
     */
    endDate?: RFCDate | null | undefined;
    /**
     * The rate of pay for the employee in their current job role.
     */
    compensationRate?: number | null | 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;
    /**
     * Unit of measurement for employee compensation.
     */
    paymentUnit?: PaymentUnit | null | undefined;
    /**
     * The date on which the employee was hired by the organization
     */
    hiredAt?: RFCDate | null | undefined;
    /**
     * Indicates whether this the employee's primary job.
     */
    isPrimary?: boolean | null | undefined;
    /**
     * Indicates whether this the employee has a manager role.
     */
    isManager?: boolean | null | undefined;
    /**
     * Indicates the status of the job.
     */
    status?: EmployeeJobStatus | null | undefined;
    location?: Address | undefined;
};
/** @internal */
export declare const EmployeeJobStatus$inboundSchema: z.ZodNativeEnum<typeof EmployeeJobStatus>;
/** @internal */
export declare const EmployeeJobStatus$outboundSchema: z.ZodNativeEnum<typeof EmployeeJobStatus>;
/** @internal */
export declare const EmployeeJob$inboundSchema: z.ZodType<EmployeeJob, z.ZodTypeDef, unknown>;
export declare function employeeJobFromJSON(jsonString: string): SafeParseResult<EmployeeJob, SDKValidationError>;
/** @internal */
export type EmployeeJobInput$Outbound = {
    title?: string | null | undefined;
    role?: string | null | undefined;
    start_date?: string | null | undefined;
    end_date?: string | null | undefined;
    compensation_rate?: number | null | undefined;
    currency?: string | null | undefined;
    payment_unit?: string | null | undefined;
    hired_at?: string | null | undefined;
    is_primary?: boolean | null | undefined;
    is_manager?: boolean | null | undefined;
    status?: string | null | undefined;
    location?: Address$Outbound | undefined;
};
/** @internal */
export declare const EmployeeJobInput$outboundSchema: z.ZodType<EmployeeJobInput$Outbound, z.ZodTypeDef, EmployeeJobInput>;
export declare function employeeJobInputToJSON(employeeJobInput: EmployeeJobInput): string;
//# sourceMappingURL=employeejob.d.ts.map