import type * as Merge from "../../../index";
/**
 * # The Employee Object
 * ### Description
 * The `Employee` object is used to represent any person who has been employed by a company. By default, it returns all employees. To filter for only active employees, set the `employment_status` query parameter to `ACTIVE`.
 *
 * ### Usage Example
 * Fetch from the `LIST Employee` endpoint and filter by `ID` to show all employees.
 */
export interface Employee {
    id?: string;
    /** The third-party API ID of the matching object. */
    remoteId?: string;
    /** The datetime that this object was created by Merge. */
    createdAt?: Date;
    /** The datetime that this object was modified by Merge. */
    modifiedAt?: Date;
    /** The employee's number that appears in the third-party integration's UI. */
    employeeNumber?: string;
    /** The ID of the employee's company. */
    company?: Merge.hris.EmployeeCompany;
    /** The employee's first name. */
    firstName?: string;
    /** The employee's last name. */
    lastName?: string;
    /** The employee's preferred first name. */
    preferredName?: string;
    /** The employee's full name, to use for display purposes. If a preferred first name is available, the full name will include the preferred first name. */
    displayFullName?: string;
    /** The employee's username that appears in the remote UI. */
    username?: string;
    groups?: (Merge.hris.EmployeeGroupsItem | undefined)[];
    /** The employee's work email. */
    workEmail?: string;
    /** The employee's personal email. */
    personalEmail?: string;
    /** The employee's mobile phone number. */
    mobilePhoneNumber?: string;
    /** Array of `Employment` IDs for this Employee. */
    employments?: (Merge.hris.EmployeeEmploymentsItem | undefined)[];
    /** The employee's home address. */
    homeLocation?: Merge.hris.EmployeeHomeLocation;
    /** The employee's work address. */
    workLocation?: Merge.hris.EmployeeWorkLocation;
    /** The employee ID of the employee's manager. */
    manager?: Merge.hris.EmployeeManager;
    /** The employee's team. */
    team?: Merge.hris.EmployeeTeam;
    /** The employee's pay group */
    payGroup?: Merge.hris.EmployeePayGroup;
    /** The employee's social security number. */
    ssn?: string;
    /**
     * The employee's gender.
     *
     * * `MALE` - MALE
     * * `FEMALE` - FEMALE
     * * `NON-BINARY` - NON-BINARY
     * * `OTHER` - OTHER
     * * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE
     */
    gender?: Merge.hris.EmployeeGender;
    /**
     * The employee's ethnicity.
     *
     * * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - AMERICAN_INDIAN_OR_ALASKA_NATIVE
     * * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT
     * * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN
     * * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO
     * * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER
     * * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES
     * * `WHITE` - WHITE
     * * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE
     */
    ethnicity?: Merge.hris.EmployeeEthnicity;
    /**
     * The employee's filing status as related to marital status.
     *
     * * `SINGLE` - SINGLE
     * * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY
     * * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY
     * * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD
     * * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD
     */
    maritalStatus?: Merge.hris.EmployeeMaritalStatus;
    /** The employee's date of birth. */
    dateOfBirth?: Date;
    /** The date that the employee was hired, usually the day that an offer letter is signed. If an employee has multiple hire dates from previous employments, this represents the most recent hire date. Note: If you're looking for the employee's start date, refer to the start_date field. */
    hireDate?: Date;
    /** The date that the employee started working. If an employee was rehired, the most recent start date will be returned. */
    startDate?: Date;
    /** When the third party's employee was created. */
    remoteCreatedAt?: Date;
    /**
     * The employment status of the employee.
     *
     * * `ACTIVE` - ACTIVE
     * * `PENDING` - PENDING
     * * `INACTIVE` - INACTIVE
     */
    employmentStatus?: Merge.hris.EmployeeEmploymentStatus;
    /** The employee's termination date. */
    terminationDate?: Date;
    /** The URL of the employee's avatar image. */
    avatar?: string;
    /** Custom fields configured for a given model. */
    customFields?: Record<string, unknown>;
    /** Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). */
    remoteWasDeleted?: boolean;
    fieldMappings?: Record<string, unknown>;
    remoteData?: Merge.hris.RemoteData[];
}
