import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs'; import { RelatedPersonDelegateOptions } from '../crypto/entities/RelatedPersonDelegateOptions.mjs'; import { RelatedPersonShareOptions } from '../crypto/entities/RelatedPersonShareOptions.mjs'; import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs'; import { GroupScoped } from '../model/GroupScoped.mjs'; import { DecryptedRelatedPerson, EncryptedRelatedPerson, RelatedPerson } from '../model/RelatedPerson.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 { RelatedPersonFlavouredInGroupApi } from './RelatedPersonFlavouredInGroupApi.mjs'; export interface RelatedPersonInGroupApi { encrypted: RelatedPersonFlavouredInGroupApi; tryAndRecover: RelatedPersonFlavouredInGroupApi; /** * * In-group version of [RelatedPersonApi.withEncryptionMetadata] */ withEncryptionMetadata(entityGroupId: string, base: DecryptedRelatedPerson | undefined, options?: { user?: User | undefined; delegates?: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; accessLevel: AccessLevel; }, 'delegate'>; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [RelatedPersonApi.withEncryptionMetadataAndDelegates] */ withEncryptionMetadataAndDelegates(entityGroupId: string, base: DecryptedRelatedPerson | undefined, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; delegateOptions: RelatedPersonDelegateOptions; }, 'delegate'>, options?: { user?: User | undefined; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [RelatedPersonApi.getEncryptionKeysOf] */ getEncryptionKeysOf(relatedPerson: GroupScoped): Promise>; /** * * In-group version of [RelatedPersonApi.hasWriteAccess] */ hasWriteAccess(relatedPerson: GroupScoped): Promise; /** * * In-group version of [RelatedPersonApi.getSecretIdsOf] */ getSecretIdsOf(relatedPerson: GroupScoped): Promise>; /** * * In-group version of [RelatedPersonApi.createDelegationDeAnonymizationMetadata] */ createDelegationDeAnonymizationMetadata(entity: GroupScoped, delegates: Array): Promise; /** * * In-group version of [RelatedPersonApi.decrypt] */ decrypt(relatedPersons: Array>): Promise>>; /** * * In-group version of [RelatedPersonApi.tryDecrypt] */ tryDecrypt(relatedPersons: Array>): Promise>>; /** * * In-group version of [RelatedPersonApi.encryptOrValidate] */ encryptOrValidate(relatedPersons: Array>): Promise>>; /** * * In-group version of [RelatedPersonApi.matchRelatedPersonsBy] */ matchRelatedPersonsBy(groupId: string, filter: FilterOptions): Promise>; /** * * In-group version of [RelatedPersonApi.matchRelatedPersonsBySorted] */ matchRelatedPersonsBySorted(groupId: string, filter: SortableFilterOptions): Promise>; /** * * In-group version of [RelatedPersonBasicFlavourlessApi.deleteRelatedPersonById] */ deleteRelatedPersonById(entityId: GroupScoped): Promise>; /** * * In-group version of [RelatedPersonBasicFlavourlessApi.deleteRelatedPersonsByIds] */ deleteRelatedPersonsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [RelatedPersonBasicFlavourlessApi.purgeRelatedPersonById] */ purgeRelatedPersonById(entityId: GroupScoped): Promise; /** * * In-group version of [RelatedPersonBasicFlavourlessApi.purgeRelatedPersonsByIds] */ purgeRelatedPersonsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [RelatedPersonBasicFlavourlessApi.deleteRelatedPerson] */ deleteRelatedPerson(relatedPerson: GroupScoped): Promise>; /** * * In-group version of [RelatedPersonBasicFlavourlessApi.deleteRelatedPersons] */ deleteRelatedPersons(relatedPersons: Array>): Promise>>; /** * * In-group version of [RelatedPersonBasicFlavourlessApi.purgeRelatedPerson] */ purgeRelatedPerson(relatedPerson: GroupScoped): Promise; /** * * In-group version of [RelatedPersonBasicFlavourlessApi.purgeRelatedPersons] */ purgeRelatedPersons(relatedPersons: Array>): Promise>>; /** * * In-group version of [RelatedPersonFlavouredApi.shareWith] */ shareWith(delegate: EntityReferenceInGroup, relatedPerson: GroupScoped, options?: { options?: RelatedPersonShareOptions | undefined; }): Promise>; /** * * In-group version of [RelatedPersonFlavouredApi.shareWithMany] */ shareWithMany(relatedPerson: GroupScoped, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; shareOptions: RelatedPersonShareOptions; }, 'delegate'>): Promise>; /** * * In-group version of [RelatedPersonFlavouredApi.filterRelatedPersonsBy] */ filterRelatedPersonsBy(groupId: string, filter: FilterOptions): Promise>>; /** * * In-group version of [RelatedPersonFlavouredApi.filterRelatedPersonsBySorted] */ filterRelatedPersonsBySorted(groupId: string, filter: SortableFilterOptions): Promise>>; /** * * In-group version of [RelatedPersonBasicFlavouredApi.createRelatedPerson] */ createRelatedPerson(entity: GroupScoped): Promise>; /** * * In-group version of [RelatedPersonBasicFlavouredApi.createRelatedPersons] */ createRelatedPersons(entities: Array>): Promise>>; /** * * In-group version of [RelatedPersonBasicFlavouredApi.undeleteRelatedPersonById] */ undeleteRelatedPersonById(entityId: GroupScoped): Promise>; /** * * In-group version of [RelatedPersonBasicFlavouredApi.undeleteRelatedPersonsByIds] */ undeleteRelatedPersonsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [RelatedPersonBasicFlavouredApi.undeleteRelatedPerson] */ undeleteRelatedPerson(relatedPerson: GroupScoped): Promise>; /** * * In-group version of [RelatedPersonBasicFlavouredApi.undeleteRelatedPersons] */ undeleteRelatedPersons(relatedPersons: Array>): Promise>>; /** * * In-group version of [RelatedPersonBasicFlavouredApi.modifyRelatedPerson] */ modifyRelatedPerson(entity: GroupScoped): Promise>; /** * * In-group version of [RelatedPersonBasicFlavouredApi.modifyRelatedPersons] */ modifyRelatedPersons(entities: Array>): Promise>>; /** * * In-group version of [RelatedPersonBasicFlavouredApi.getRelatedPerson] */ getRelatedPerson(groupId: string, entityId: string): Promise | undefined>; /** * * In-group version of [RelatedPersonBasicFlavouredApi.getRelatedPersons] */ getRelatedPersons(groupId: string, entityIds: Array): Promise>>; }