import { DecryptedPropertyStub } from './PropertyStub.mjs'; import { CodeStub } from './base/CodeStub.mjs'; import { HasTags } from './base/HasTags.mjs'; import { StoredDocument } from './base/StoredDocument.mjs'; import { AuthenticationClass } from './embed/AuthenticationClass.mjs'; import { UserType } from './embed/UserType.mjs'; import { ExternalJwtConfig } from './security/ExternalJwtConfig.mjs'; import { OperationToken } from './security/OperationToken.mjs'; /** * * * Represents a group in the iCure platform. A group corresponds to a practice, hospital, or * organization * that contains its own set of databases and users. */ export declare class Group implements StoredDocument, HasTags { /** * * The id of the group. We encourage using either a v4 UUID or a HL7 Id. */ id: string; /** * * The revision of the group in the database, used for conflict management / optimistic locking. */ rev: string | undefined; /** * * Soft delete (unix epoch in ms) timestamp of the object. */ deletionDate: number | undefined; /** * * Tags that qualify the group as being member of a certain class. */ tags: Array; /** * * Tags that are publicly visible for the group. */ publicTags: Array; /** * * Username for the group. */ name: string | undefined; /** * * Password for the group access. */ password: string | undefined; /** * * List of servers accessible to the group. */ servers: Array | undefined; /** * * Whether the group has a super admin permission. */ superAdmin: boolean; /** * * Extra properties for the group. Those properties are typed (see class Property). */ properties: Array; /** * * The default roles for each user type, if not otherwise specified on the user. */ defaultUserRoles: { [key in UserType]?: Array; }; /** * * Single-used token to perform specific operations. */ operationTokens: { [key: string]: OperationToken; }; /** * * List of entities that have to be collected from a shared database. */ sharedEntities: { [key: string]: string; }; /** * * Minimum version of Kraken required to access API. */ minimumKrakenVersion: string | undefined; /** * * Verified public keys that can be used to allow log in with external JWTs. */ externalJwtConfig: { [key: string]: ExternalJwtConfig; }; /** * * The minimum authentication class required for elevated privileges. */ minimumAuthenticationClassForElevatedPrivileges: AuthenticationClass; /** * * The id of the parent super group, if any. */ superGroup: string | undefined; /** * * A user-chosen identifier for the applications for which this group holds data. */ projectId: string | undefined; /** * * A user-chosen identifier for the applications for which this group holds data. */ templates: Group.TemplatesConfiguration | undefined; /** * * * The versions of the custom design doc schema applied to the group. */ designDocSchemaVersions: Array; /** * * * The version of the custom design doc schema to apply by default children groups on creation. */ defaultChildrenSchemaVersion: number | undefined; constructor(partial: Partial & Pick); toJSON(): object; static fromJSON(json: any, ignoreUnknownKeys?: boolean, path?: Array): Group; } export declare namespace Group { class TemplatesConfiguration { specId: string; emailSender: string | undefined; smsSender: string | undefined; emailVerificationTemplateId: string | undefined; mobilePhoneVerificationTemplateId: string | undefined; existingEmailNotificationTemplateId: string | undefined; existingMobilePhoneNotificationTemplateId: string | undefined; constructor(partial: Partial & Pick); toJSON(): object; static fromJSON(json: any, ignoreUnknownKeys?: boolean, path?: Array): TemplatesConfiguration; } }