import type { PaginationQueryParams, User, UserCreatePayload, UserUpdatePayload } from "../interfaces.js"; import type { HttpClient } from "../http/HttpClient.js"; import { RequestOptions, UserScopedRequestOptions } from "./utils.js"; /** * Resource covering all user lifecycle operations. */ export declare class UsersResource { private readonly http; constructor(http: HttpClient); /** * Retrieve the authenticated user associated with the API token. * * @param options Optional request overrides such as alternate auth token or abort signal. * @returns The {@link User} that owns the provided token. * @throws {APIError} When the API responds with an error status. */ retrieveCurrent(options?: RequestOptions): Promise; /** * List all users for the current company. * * @param query Optional pagination controls (`page`, `per_page`). * @param options Optional request overrides such as alternate auth token or abort signal. * @returns Array of {@link User} records. * @throws {APIError} When the API responds with an error status. */ list(query?: PaginationQueryParams, options?: RequestOptions): Promise; /** * Create a new user within the company. * * @param user Mutable attributes describing the user to create. * @param options Optional request overrides; supply `X-CompanyCam-User` to attribute the action. * @returns The created {@link User}. * @throws {APIError} When the API responds with an error status. */ create(user: UserCreatePayload, options?: UserScopedRequestOptions): Promise; /** * Retrieve a specific user by identifier. * * @param userId Identifier of the user to fetch. * @param options Optional request overrides such as alternate auth token or abort signal. * @returns The requested {@link User}. * @throws {APIError} When the API responds with an error status. */ retrieve(userId: string, options?: RequestOptions): Promise; /** * Update an existing user record. * * @param userId Identifier of the user to update. * @param updates Mutable attributes describing the changes to apply. * @param options Optional request overrides; supply `X-CompanyCam-User` to attribute the action. * @returns The updated {@link User}. * @throws {APIError} When the API responds with an error status. */ update(userId: string, updates: UserUpdatePayload, options?: UserScopedRequestOptions): Promise; /** * Delete a user from the company. * * @param userId Identifier of the user to delete. * @param options Optional request overrides; supply `X-CompanyCam-User` to attribute the action. * @returns Resolves to void when deletion succeeds. * @throws {APIError} When the API responds with an error status. */ delete(userId: string, options?: UserScopedRequestOptions): Promise; } //# sourceMappingURL=Users.d.ts.map