import type * as Merge from "../../../index";
/**
 * # The TimeOff Object
 * ### Description
 * The `TimeOff` object is used to represent all employees' Time Off entries.
 *
 * ### Usage Example
 * Fetch from the `LIST TimeOffs` endpoint and filter by `ID` to show all time off requests.
 */
export interface TimeOffRequest {
    /** The employee requesting time off. */
    employee?: Merge.hris.TimeOffRequestEmployee;
    /** The Merge ID of the employee with the ability to approve the time off request. */
    approver?: Merge.hris.TimeOffRequestApprover;
    /**
     * The status of this time off request.
     *
     * * `REQUESTED` - REQUESTED
     * * `APPROVED` - APPROVED
     * * `DECLINED` - DECLINED
     * * `CANCELLED` - CANCELLED
     * * `DELETED` - DELETED
     */
    status?: Merge.hris.TimeOffRequestStatus;
    /** The employee note for this time off request. */
    employeeNote?: string;
    /**
     * The measurement that the third-party integration uses to count time requested.
     *
     * * `HOURS` - HOURS
     * * `DAYS` - DAYS
     */
    units?: Merge.hris.TimeOffRequestUnits;
    /** The time off quantity measured by the prescribed “units”. */
    amount?: number;
    /**
     * The type of time off request.
     *
     * * `VACATION` - VACATION
     * * `SICK` - SICK
     * * `PERSONAL` - PERSONAL
     * * `JURY_DUTY` - JURY_DUTY
     * * `VOLUNTEER` - VOLUNTEER
     * * `BEREAVEMENT` - BEREAVEMENT
     */
    requestType?: Merge.hris.TimeOffRequestRequestType;
    /** The day and time of the start of the time requested off. */
    startTime?: Date;
    /** The day and time of the end of the time requested off. */
    endTime?: Date;
    integrationParams?: Record<string, unknown>;
    linkedAccountParams?: Record<string, unknown>;
}
