import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; import { type NormalizedClientOptionsWithAuth } from "../../../../BaseClient.js"; import * as core from "../../../../core/index.js"; import * as Rulebricks from "../../../index.js"; import { GroupsClient } from "../resources/groups/client/Client.js"; export declare namespace UsersClient { type Options = BaseClientOptions; interface RequestOptions extends BaseRequestOptions { } } /** * Operations for managing users on your team and their permissions */ export declare class UsersClient { protected readonly _options: NormalizedClientOptionsWithAuth; protected _groups: GroupsClient | undefined; constructor(options: UsersClient.Options); get groups(): GroupsClient; /** * Invite a new user to the organization or update role or user group data for an existing user. * * @param {Rulebricks.UserInviteRequest} request * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Rulebricks.BadRequestError} * @throws {@link Rulebricks.InternalServerError} * * @example * await client.users.invite({ * email: "newuser@example.com", * role: "developer", * user_groups: ["group1", "group2"] * }) * * @example * await client.users.invite({ * email: "existinguser@example.com", * role: "custom-role", * user_groups: ["group1"] * }) */ invite(request: Rulebricks.UserInviteRequest, requestOptions?: UsersClient.RequestOptions): core.HttpResponsePromise; private __invite; /** * List all users (including the admin and all team members) in the organization with their details including email, name, API key, role, user groups, and join date. * * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Rulebricks.InternalServerError} * * @example * await client.users.list() */ list(requestOptions?: UsersClient.RequestOptions): core.HttpResponsePromise; private __list; /** * Create a new user directly with a password, bypassing the email invitation flow. The user can immediately log in with the provided credentials. * * @param {Rulebricks.CreateUserRequest} request * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Rulebricks.BadRequestError} * @throws {@link Rulebricks.ForbiddenError} * @throws {@link Rulebricks.InternalServerError} * * @example * await client.users.create({ * email: "newuser@example.com", * password: "securePassword123" * }) * * @example * await client.users.create({ * email: "newuser@example.com", * password: "securePassword123", * name: "New User", * role: "developer", * user_groups: ["engineering", "qa"] * }) */ create(request: Rulebricks.CreateUserRequest, requestOptions?: UsersClient.RequestOptions): core.HttpResponsePromise; private __create; }