import { GroupMember, AddUserToGroupResponse, UserGroup } from './proto-build/compiled'; import IChaynsLogger from './utils/logger/IChaynsLogger'; import { TFixedGroupMember } from './types/TFixedGroupMember'; import { TFixedUserGroup } from './types/TFixedUserGroup'; type UacServiceClientBaseOptions = { baseUrl?: string; logger?: IChaynsLogger; getDefaultSiteId?: () => string; }; type UacServiceClientOptionsWithSiteId = { getDefaultSiteId: () => string; }; type UacServiceClientBrowserOptions = UacServiceClientBaseOptions & { getToken: () => Promise; getDefaultPersonId: () => string; getLanguage: () => string | undefined; }; type UacServiceClientServerOptions = UacServiceClientBaseOptions & { getApiToken: (roles: string[]) => Promise; getDefaultPersonId?: never; }; type UacServiceClientOptions = UacServiceClientBrowserOptions | UacServiceClientServerOptions; type RemoveSiteId = (T extends UacServiceClientOptionsWithSiteId ? (Omit & { siteId?: string; }) : O); type RemovePersonId = (T extends UacServiceClientBrowserOptions ? Omit : O); declare class UacServiceClient { private getToken; private getDefaultSiteId; private logger; private baseUrl; private getApiToken; private getDefaultPersonId; private getLanguage; private testBaseUrlPromise; private isInNode; constructor({ getDefaultSiteId, logger, baseUrl, getDefaultPersonId, ...rest }: T); private getTokenForFetch; private logFetch; /** * Get all uac groups of a site * @param siteId * @param countUsers * @param countInvitations * @param withMeta */ getUserGroups({ siteId, countUsers, countInvitations, withMeta }: RemoveSiteId): Promise; /** * Get a uac group by id * @param groupId * @param siteId * @param countUsers * @param countInvitations */ getUserGroup({ groupId, siteId, countUsers, countInvitations }: RemoveSiteId): Promise; /** * Get the members of a uac group * @param groupId * @param siteId * @param skip * @param take */ getGroupMembers({ groupId, siteId, skip, take, sortByDate }: RemoveSiteId): Promise; /** * Get a single group membership * @param personId * @param siteId * @param groupId */ getMembership({ personId, siteId, groupId }: RemoveSiteId): Promise<{ creationTime: string | undefined; expirationTime: string | undefined; personId: string; firstname: string; lastname: string; userGroupId: number; creationUser?: (IPerson | null); siteId: string; subscriptionId: (number | Long); membercardUid: string; }>; /** * Get all pending invitations for a group * @param siteId * @param groupId */ getGroupInvitations({ siteId, groupId }: RemoveSiteId): Promise; /** * Get all groups for a user * @param options */ getGroupsForUser(options: RemovePersonId>): Promise; /** * Check if the current user is a member of the given uac group * @param groupId * @param siteId * @param personId */ isUserInGroup({ groupId, siteId, personId }: RemoveSiteId): Promise<{ inGroup: boolean; }>; /** * Get all sites where the current user is in the given uac group * @param options */ getMembershipSites(options: RemovePersonId): Promise; /** * Search for members of all site groups * @param siteId * @param searchTerm * @param userGroupIds - optional list of usergroup ids to search in * @param skip - optional amount of results that should be skipped * @param take - optional amount of results that should be returned */ searchMembers({ siteId, searchTerm, userGroupIds, skip, take }: RemoveSiteId): Promise; /** * Get all groups where a user has a pending invite * @param siteId * @param personId */ getInvitedGroups({ siteId, personId }: RemoveSiteId): Promise; /** * Create a new user group * @param siteId * @param showName * @param description * @param pageId * @param parentGroupId * @param isWorkspace * @param users * @param icon */ createUserGroup({ siteId, showName, description, pageId, parentGroupId, isWorkspace, users, icon, workspacePageId }: RemoveSiteId): Promise; /** * Copy a user group and its members * @param groupId * @param siteId */ copyUserGroup({ groupId, siteId }: RemoveSiteId): Promise; /** * Add a user to a uac group * @param personId * @param groupId * @param siteId * @param expirationTime * @param force * @param ignoreConflict */ addUserToGroup({ personId, groupId, siteId, expirationTime, force, ignoreConflict }: RemoveSiteId): Promise<{ success: boolean; }>; /** * Add multiple users to a uac group * @param groupId * @param siteId * @param members */ addUsersToGroup({ groupId, siteId, members }: RemoveSiteId): Promise; /** * Update a uac group * @param groupId * @param siteId * @param values */ updateUserGroup({ groupId, siteId, values }: RemoveSiteId): Promise; /** * Update the expiration time of a membership * @param personId * @param groupId * @param siteId * @param expirationTime */ updateMembership({ personId, groupId, siteId, expirationTime }: RemoveSiteId): Promise<{ creationTime: string | undefined; expirationTime: string | undefined; personId: string; firstname: string; lastname: string; userGroupId: number; creationUser?: (IPerson | null); siteId: string; subscriptionId: (number | Long); membercardUid: string; }>; /** * Delete a usergroup * @param groupId * @param siteId */ deleteUserGroup({ groupId, siteId }: RemoveSiteId): Promise; /** * Remove a user from an uac group * @param personId * @param groupId * @param siteId * @param ignoreConflict * @param force whether to force remove user from known users even if still in any paid uac group * @param forceRemoveLocationUserWhenManager whether to force remove user as a location user when he is a manager */ removeUserFromGroup({ personId, groupId, siteId, ignoreConflict, force, forceRemoveLocationUserWhenManager, }: RemoveSiteId): Promise<{ success: boolean; expirationTime: string | undefined; }>; /** * Gets the personId either from the provided options or from the client-settings * @param options * @private */ private getPersonId; } export { UacServiceClient };