import { DatabaseInitialisation } from '../model/DatabaseInitialisation.mjs'; import { Group } from '../model/Group.mjs'; import { GroupDeletionReport } from '../model/GroupDeletionReport.mjs'; import { IdWithRev } from '../model/IdWithRev.mjs'; import { ListOfProperties } from '../model/ListOfProperties.mjs'; import { PaginatedList } from '../model/PaginatedList.mjs'; import { RegistrationInformation } from '../model/RegistrationInformation.mjs'; import { RegistrationSuccess } from '../model/RegistrationSuccess.mjs'; import { ReplicationInfo } from '../model/ReplicationInfo.mjs'; import { CodeStub } from '../model/base/CodeStub.mjs'; import { DesignDocument } from '../model/couchdb/DesignDocument.mjs'; import { DocIdentifier } from '../model/couchdb/DocIdentifier.mjs'; import { GroupDatabasesInfo } from '../model/couchdb/GroupDatabasesInfo.mjs'; import { GroupType } from '../model/embed/GroupType.mjs'; import { RoleConfiguration } from '../model/embed/RoleConfiguration.mjs'; import { UserType } from '../model/embed/UserType.mjs'; import { ExternalJwtConfig } from '../model/security/ExternalJwtConfig.mjs'; import { Operation } from '../model/security/Operation.mjs'; export interface GroupApi { listGroups(): Promise>; getGroup(id: string): Promise; createGroup(id: string, name: string, password: string, initialisationData: DatabaseInitialisation, options?: { type?: GroupType | undefined; server?: string | undefined; q?: number | undefined; n?: number | undefined; superGroup?: string | undefined; projectId?: string | undefined; }): Promise; registerNewGroupAdministrator(registrationInformation: RegistrationInformation, options?: { type?: GroupType | undefined; }): Promise; listApps(): Promise>; findGroups(id: string, options?: { startDocumentId?: string | undefined; limit?: number | undefined; }): Promise>; findGroupsWithContent(id: string, searchString: string, options?: { startKey?: any | undefined; startDocumentId?: string | undefined; limit?: number | undefined; }): Promise>; getNameOfGroupParent(id: string): Promise; modifyGroupName(id: string, name: string): Promise; getOperationToken(operation: Operation, duration: number | undefined, options?: { description?: string | undefined; }): Promise; deleteOperationToken(tokenId: string): Promise; setDefaultRoles(groupId: string, userType: string, roleIds: Array): Promise; getDefaultRoles(groupId: string): Promise<{ [key in UserType]?: Array; }>; deleteGroup(id: string): Promise; changeSuperGroup(childGroupId: string, operationToken: string): Promise; hardDeleteGroup(id: string): Promise>; modifyGroupProperties(id: string, properties: ListOfProperties): Promise; setGroupPassword(id: string, password: string): Promise; initDesignDocs(id: string, warmup: boolean | undefined, dryRun: boolean | undefined, options?: { clazz?: string | undefined; }): Promise>; solveConflicts(id: string, limit: number | undefined, warmup: boolean | undefined): Promise>; resetStorage(id: string, databases: Array, options?: { q?: number | undefined; n?: number | undefined; }): Promise; getGroupsStorageInfos(groups: Array): Promise>; getReplicationInfo(id: string): Promise; getHierarchy(id: string): Promise>; listAllGroupsIds(): Promise>; createOrUpdateExternalJwtConfig(groupId: string, key: string, config: ExternalJwtConfig): Promise; removeExternalJwtConfig(groupId: string, key: string): Promise; getOperationTokenForGroup(groupId: string, operation: Operation, duration: number | undefined, description: string | undefined): Promise; /** * * Sets the projectId of a group and optionally applies the change to all its subgroups (direct and indirect child groups). * @param groupId the id of the group to update. * @param projectId the new projectId to set. If null, any existing projectId will be removed. * @param applyToSubgroups if true, the change will be applied */ setGroupProjectId(groupId: string, projectId: string | undefined, applyToSubgroups: boolean): Promise; modifyGroupApplicationId(id: string, applicationId: string): Promise; addTagToGroup(id: string, rev: string, tag: CodeStub): Promise; removeTagFromGroup(id: string, rev: string, tagId: string): Promise; }