import type { api_ClientItem } from '../models/api_ClientItem'; import type { api_CreateClientInput } from '../models/api_CreateClientInput'; import type { api_List } from '../models/api_List'; import type { api_UpdateClientInput } from '../models/api_UpdateClientInput'; import type { CancelablePromise } from '../core/CancelablePromise'; export declare class ClientsService { /** * List clients * * Lists the clients within the portal, paginated. Supports filtering by * company, name, email, and tag-based custom field values. * * @param limit Maximum number of clients to return * @param nextToken Pagination cursor returned by a previous call * @param companyId Filter by company ID * @param givenName Filter by client given (first) name * @param familyName Filter by client family (last) name * @param email Filter by client email * @param customFields Filter by tag-based custom field values. Repeatable bracket-style param: customFields[]=[,...]. Values within a single bracket are matched with OR; multiple bracketed fields are combined with AND. Only multi-select custom fields are supported. * * @example * await assembly.listClients(); */ static listClients({ limit, nextToken, companyId, givenName, familyName, email, customFields, }: { /** * Maximum number of clients to return */ limit?: number; /** * Pagination cursor returned by a previous call */ nextToken?: string; /** * Filter by company ID */ /** * @deprecated since v3.15.0 - Use companyIds array instead for multi-company support */ companyId?: string; /** * Filter by client given (first) name */ givenName?: string; /** * Filter by client family (last) name */ familyName?: string; /** * Filter by client email */ email?: string; /** * Filter by tag-based custom field values. Repeatable bracket-style param: customFields[]=[,...]. Values within a single bracket are matched with OR; multiple bracketed fields are combined with AND. Only multi-select custom fields are supported. */ customFields?: Record; }): CancelablePromise<(api_List & { data?: Array; })>; /** * Create a client * * Creates a client. Requires givenName, familyName, email, and a company * association (companyId, or companyIds in multi-company portals). Set the * `sendInvite=true` query param to email the client an invite on creation. * * @param sendInvite Send the client an invite email on creation * * @example * await assembly.createClient({ requestBody: ... }); */ static createClient({ requestBody, sendInvite, }: { /** * Client to create */ requestBody: api_CreateClientInput; /** * Send the client an invite email on creation */ sendInvite?: boolean; }): CancelablePromise; /** * Delete a client * * Deletes a client by ID. The response echoes the deleted object's ID with * `deleted: true`. * * @param id Client ID * * @example * await assembly.deleteClient({ id: ... }); */ static deleteClient({ id, }: { /** * Client ID */ id: string; }): CancelablePromise; /** * Retrieve a client * * Returns a single client by ID. * * @param id Client ID * * @example * await assembly.retrieveClient({ id: ... }); */ static retrieveClient({ id, }: { /** * Client ID */ id: string; }): CancelablePromise; /** * Update a client * * Partially updates a client. Only givenName, familyName, companyId, and * customFields are mutable; any other field in the body is ignored and * echoed back in the `X-Ignored-Fields` response header. Set * `sendInvite=true` to send (or resend) the client's invite when they are * not yet active. * * @param id Client ID * @param sendInvite Send or resend the client's invite email * * @example * await assembly.updateClient({ id: ..., requestBody: ... }); */ static updateClient({ id, requestBody, sendInvite, }: { /** * Client ID */ id: string; /** * Fields to update */ requestBody: api_UpdateClientInput; /** * Send or resend the client's invite email */ sendInvite?: boolean; }): CancelablePromise; /** * Retrieve a client with app visibility * * Returns the same Client object as GET /v1/clients/{id} with an additional * `appVisibility` field nested at the root. The field is an array grouping * the apps visible to the client by each company the client belongs to. The * same install may appear in more than one group when visible across * multiple companies. * * @param id Client ID * * @example * await assembly.retrieveClientAppVisibility({ id: ... }); */ static retrieveClientAppVisibility({ id, }: { /** * Client ID */ id: string; }): CancelablePromise; }