import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs'; import { HealthElementDelegateOptions } from '../crypto/entities/HealthElementDelegateOptions.mjs'; import { HealthElementShareOptions } from '../crypto/entities/HealthElementShareOptions.mjs'; import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs'; import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs'; import { GroupScoped } from '../model/GroupScoped.mjs'; import { DecryptedHealthElement, EncryptedHealthElement, HealthElement } from '../model/HealthElement.mjs'; import { Patient } from '../model/Patient.mjs'; import { StoredDocumentIdentifier } from '../model/StoredDocumentIdentifier.mjs'; import { User } from '../model/User.mjs'; import { AccessLevel } from '../model/embed/AccessLevel.mjs'; import { HexString } from '../model/specializations/HexString.mjs'; import { ArrayWithUniqueKeys } from '../utils/ArrayWithUniqueKeys.mjs'; import { HealthElementFlavouredInGroupApi } from './HealthElementFlavouredInGroupApi.mjs'; export interface HealthElementInGroupApi { encrypted: HealthElementFlavouredInGroupApi; tryAndRecover: HealthElementFlavouredInGroupApi; /** * * In-group version of [HealthElementApi.withEncryptionMetadata] */ withEncryptionMetadata(entityGroupId: string, base: DecryptedHealthElement | undefined, patient: GroupScoped, options?: { user?: User | undefined; delegates?: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; accessLevel: AccessLevel; }, 'delegate'>; secretId?: SecretIdUseOption; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [HealthElementApi.withEncryptionMetadataAndDelegates] */ withEncryptionMetadataAndDelegates(entityGroupId: string, base: DecryptedHealthElement | undefined, patient: GroupScoped, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; delegateOptions: HealthElementDelegateOptions; }, 'delegate'>, options?: { user?: User | undefined; secretId?: SecretIdUseOption; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [HealthElementApi.getEncryptionKeysOf] */ getEncryptionKeysOf(healthElement: GroupScoped): Promise>; /** * * In-group version of [HealthElementApi.hasWriteAccess] */ hasWriteAccess(healthElement: GroupScoped): Promise; /** * * In-group version of [HealthElementApi.decryptPatientIdOf] */ decryptPatientIdOf(healthElement: GroupScoped): Promise>; /** * * In-group version of [HealthElementApi.createDelegationDeAnonymizationMetadata] */ createDelegationDeAnonymizationMetadata(entity: GroupScoped, delegates: Array): Promise; /** * * In-group version of [HealthElementApi.decrypt] */ decrypt(healthElements: Array>): Promise>>; /** * * In-group version of [HealthElementApi.tryDecrypt] */ tryDecrypt(healthElements: Array>): Promise>>; /** * * In-group version of [HealthElementApi.encryptOrValidate] */ encryptOrValidate(healthElements: Array>): Promise>>; /** * * In-group version of [HealthElementApi.matchHealthElementsBy] */ matchHealthElementsBy(groupId: string, filter: FilterOptions): Promise>; /** * * In-group version of [HealthElementApi.matchHealthElementsBySorted] */ matchHealthElementsBySorted(groupId: string, filter: SortableFilterOptions): Promise>; /** * * In-group version of [HealthElementBasicFlavourlessApi.deleteHealthElementById] */ deleteHealthElementById(entityId: GroupScoped): Promise>; /** * * In-group version of [HealthElementBasicFlavourlessApi.deleteHealthElementsByIds] */ deleteHealthElementsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [HealthElementBasicFlavourlessApi.purgeHealthElementById] */ purgeHealthElementById(entityId: GroupScoped): Promise; /** * * In-group version of [HealthElementBasicFlavourlessApi.purgeHealthElementsByIds] */ purgeHealthElementsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [HealthElementBasicFlavourlessApi.deleteHealthElement] */ deleteHealthElement(healthElement: GroupScoped): Promise>; /** * * In-group version of [HealthElementBasicFlavourlessApi.deleteHealthElements] */ deleteHealthElements(healthElements: Array>): Promise>>; /** * * In-group version of [HealthElementBasicFlavourlessApi.purgeHealthElement] */ purgeHealthElement(healthElement: GroupScoped): Promise; /** * * In-group version of [HealthElementBasicFlavourlessApi.purgeHealthElements] */ purgeHealthElements(healthElements: Array>): Promise>>; /** * * In-group version of [HealthElementFlavouredApi.shareWith] */ shareWith(delegate: EntityReferenceInGroup, healthElement: GroupScoped, options?: { options?: HealthElementShareOptions | undefined; }): Promise>; /** * * In-group version of [HealthElementFlavouredApi.shareWithMany] */ shareWithMany(healthElement: GroupScoped, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; shareOptions: HealthElementShareOptions; }, 'delegate'>): Promise>; /** * * In-group version of [HealthElementFlavouredApi.filterHealthElementsBy] */ filterHealthElementsBy(groupId: string, filter: FilterOptions): Promise>>; /** * * In-group version of [HealthElementFlavouredApi.filterHealthElementsBySorted] */ filterHealthElementsBySorted(groupId: string, filter: SortableFilterOptions): Promise>>; /** * * In-group version of [HealthElementApi.createHealthElement] */ createHealthElement(entity: GroupScoped): Promise>; /** * * In-group version of [HealthElementApi.createHealthElements] */ createHealthElements(entities: Array>): Promise>>; /** * * In-group version of [HealthElementBasicFlavouredApi.undeleteHealthElementById] */ undeleteHealthElementById(entityId: GroupScoped): Promise>; /** * * In-group version of [HealthElementBasicFlavouredApi.undeleteHealthElementsByIds] */ undeleteHealthElementsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [HealthElementBasicFlavouredApi.undeleteHealthElement] */ undeleteHealthElement(healthElement: GroupScoped): Promise>; /** * * In-group version of [HealthElementBasicFlavouredApi.undeleteHealthElements] */ undeleteHealthElements(healthElements: Array>): Promise>>; /** * * In-group version of [HealthElementBasicFlavouredApi.modifyHealthElement] */ modifyHealthElement(entity: GroupScoped): Promise>; /** * * In-group version of [HealthElementBasicFlavouredApi.modifyHealthElements] */ modifyHealthElements(entities: Array>): Promise>>; /** * * In-group version of [HealthElementBasicFlavouredApi.getHealthElement] */ getHealthElement(groupId: string, entityId: string): Promise | undefined>; /** * * In-group version of [HealthElementBasicFlavouredApi.getHealthElements] */ getHealthElements(groupId: string, entityIds: Array): Promise>>; }