/**
 * This file was auto-generated by Fern from our API Definition.
 */
import * as environments from "../../../../../../environments";
import * as core from "../../../../../../core";
import * as Merge from "../../../../../index";
export declare namespace Employees {
    interface Options {
        environment?: core.Supplier<environments.MergeEnvironment | string>;
        apiKey: core.Supplier<core.BearerToken>;
        /** Override the X-Account-Token header */
        accountToken?: core.Supplier<string | undefined>;
        fetcher?: core.FetchFunction;
    }
    interface RequestOptions {
        /** The maximum time to wait for a response in seconds. */
        timeoutInSeconds?: number;
        /** The number of times to retry the request. Defaults to 2. */
        maxRetries?: number;
        /** A hook to abort the request. */
        abortSignal?: AbortSignal;
        /** Override the X-Account-Token header */
        accountToken?: string | undefined;
        /** Additional headers to include in the request. */
        headers?: Record<string, string>;
    }
}
export declare class Employees {
    protected readonly _options: Employees.Options;
    constructor(_options: Employees.Options);
    /**
     * Returns a list of `Employee` objects.
     *
     * @param {Merge.hris.EmployeesListRequest} request
     * @param {Employees.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.hris.employees.list()
     */
    list(request?: Merge.hris.EmployeesListRequest, requestOptions?: Employees.RequestOptions): Promise<Merge.hris.PaginatedEmployeeList>;
    /**
     * Creates an `Employee` object with the given values.
     *
     * @param {Merge.hris.EmployeeEndpointRequest} request
     * @param {Employees.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.hris.employees.create({
     *         model: {}
     *     })
     */
    create(request: Merge.hris.EmployeeEndpointRequest, requestOptions?: Employees.RequestOptions): Promise<Merge.hris.EmployeeResponse>;
    /**
     * Returns an `Employee` object with the given `id`.
     *
     * @param {string} id
     * @param {Merge.hris.EmployeesRetrieveRequest} request
     * @param {Employees.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.hris.employees.retrieve("id")
     */
    retrieve(id: string, request?: Merge.hris.EmployeesRetrieveRequest, requestOptions?: Employees.RequestOptions): Promise<Merge.hris.Employee>;
    /**
     * Ignores a specific row based on the `model_id` in the url. These records will have their properties set to null, and will not be updated in future syncs. The "reason" and "message" fields in the request body will be stored for audit purposes.
     *
     * @param {string} modelId
     * @param {Merge.hris.IgnoreCommonModelRequest} request
     * @param {Employees.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.hris.employees.ignoreCreate("model_id", {
     *         reason: "GENERAL_CUSTOMER_REQUEST"
     *     })
     */
    ignoreCreate(modelId: string, request: Merge.hris.IgnoreCommonModelRequest, requestOptions?: Employees.RequestOptions): Promise<void>;
    /**
     * Returns metadata for `Employee` POSTs.
     *
     * @param {Employees.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.hris.employees.metaPostRetrieve()
     */
    metaPostRetrieve(requestOptions?: Employees.RequestOptions): Promise<Merge.hris.MetaResponse>;
    protected _getAuthorizationHeader(): Promise<string>;
}
