import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient";
import { type NormalizedClientOptionsWithAuth } from "../../../../../../BaseClient";
import * as core from "../../../../../../core";
import type * as Merge from "../../../../../index";
export declare namespace UsersClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class UsersClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<UsersClient.Options>;
    constructor(options: UsersClient.Options);
    /**
     * Returns a list of `User` objects.
     *
     * @param {Merge.crm.UsersListRequest} request
     * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.crm.users.list({
     *         createdAfter: new Date("2024-01-15T09:30:00.000Z"),
     *         createdBefore: new Date("2024-01-15T09:30:00.000Z"),
     *         cursor: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw",
     *         email: "email",
     *         includeDeletedData: true,
     *         includeRemoteData: true,
     *         includeRemoteFields: true,
     *         includeShellData: true,
     *         modifiedAfter: new Date("2024-01-15T09:30:00.000Z"),
     *         modifiedBefore: new Date("2024-01-15T09:30:00.000Z"),
     *         pageSize: 1,
     *         remoteId: "remote_id"
     *     })
     */
    list(request?: Merge.crm.UsersListRequest, requestOptions?: UsersClient.RequestOptions): Promise<core.Page<Merge.crm.User, Merge.crm.PaginatedUserList>>;
    /**
     * Returns a `User` object with the given `id`.
     *
     * @param {string} id
     * @param {Merge.crm.UsersRetrieveRequest} request
     * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.crm.users.retrieve("id", {
     *         includeRemoteData: true,
     *         includeRemoteFields: true,
     *         includeShellData: true
     *     })
     */
    retrieve(id: string, request?: Merge.crm.UsersRetrieveRequest, requestOptions?: UsersClient.RequestOptions): core.HttpResponsePromise<Merge.crm.User>;
    private __retrieve;
    /**
     * 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} model_id
     * @param {Merge.crm.IgnoreCommonModelRequest} request
     * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.crm.users.ignoreCreate("model_id", {
     *         reason: "GENERAL_CUSTOMER_REQUEST"
     *     })
     */
    ignoreCreate(model_id: string, request: Merge.crm.IgnoreCommonModelRequest, requestOptions?: UsersClient.RequestOptions): core.HttpResponsePromise<void>;
    private __ignoreCreate;
    /**
     * Returns a list of `RemoteFieldClass` objects.
     *
     * @param {Merge.crm.UsersRemoteFieldClassesListRequest} request
     * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.crm.users.remoteFieldClassesList({
     *         cursor: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw",
     *         includeDeletedData: true,
     *         includeRemoteData: true,
     *         includeRemoteFields: true,
     *         includeShellData: true,
     *         isCommonModelField: true,
     *         isCustom: true,
     *         pageSize: 1
     *     })
     */
    remoteFieldClassesList(request?: Merge.crm.UsersRemoteFieldClassesListRequest, requestOptions?: UsersClient.RequestOptions): Promise<core.Page<Merge.crm.RemoteFieldClass, Merge.crm.PaginatedRemoteFieldClassList>>;
}
