import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs'; import { ContactDelegateOptions } from '../crypto/entities/ContactDelegateOptions.mjs'; import { ContactShareOptions } from '../crypto/entities/ContactShareOptions.mjs'; import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs'; import { Contact, DecryptedContact, EncryptedContact } from '../model/Contact.mjs'; import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs'; import { GroupScoped } from '../model/GroupScoped.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 { DecryptedService, EncryptedService, Service } from '../model/embed/Service.mjs'; import { HexString } from '../model/specializations/HexString.mjs'; import { ArrayWithUniqueKeys } from '../utils/ArrayWithUniqueKeys.mjs'; import { ContactFlavouredInGroupApi } from './ContactFlavouredInGroupApi.mjs'; export interface ContactInGroupApi { encrypted: ContactFlavouredInGroupApi; tryAndRecover: ContactFlavouredInGroupApi; /** * * In-group version of [ContactApi.withEncryptionMetadata] */ withEncryptionMetadata(entityGroupId: string, base: DecryptedContact | undefined, patient: GroupScoped | undefined, options?: { user?: User | undefined; delegates?: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; accessLevel: AccessLevel; }, 'delegate'>; secretId?: SecretIdUseOption; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [ContactApi.withEncryptionMetadataAndDelegates] */ withEncryptionMetadataAndDelegates(entityGroupId: string, base: DecryptedContact | undefined, patient: GroupScoped | undefined, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; delegateOptions: ContactDelegateOptions; }, 'delegate'>, options?: { user?: User | undefined; secretId?: SecretIdUseOption; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [ContactApi.getEncryptionKeysOf] */ getEncryptionKeysOf(contact: GroupScoped): Promise>; /** * * In-group version of [ContactApi.hasWriteAccess] */ hasWriteAccess(contact: GroupScoped): Promise; /** * * In-group version of [ContactApi.decryptPatientIdOf] */ decryptPatientIdOf(contact: GroupScoped): Promise>; /** * * In-group version of [ContactApi.decryptPatientIdOfService] */ decryptPatientIdOfService(service: GroupScoped): Promise>; /** * * In-group version of [ContactApi.createDelegationDeAnonymizationMetadata] */ createDelegationDeAnonymizationMetadata(entity: GroupScoped, delegates: Array): Promise; /** * * In-group version of [ContactApi.decrypt] */ decrypt(contacts: Array>): Promise>>; /** * * In-group version of [ContactApi.tryDecrypt] */ tryDecrypt(contacts: Array>): Promise>>; /** * * In-group version of [ContactApi.decryptService] */ decryptService(service: GroupScoped): Promise>; /** * * In-group version of [ContactApi.tryDecryptService] */ tryDecryptService(service: GroupScoped): Promise>; /** * * In-group version of [ContactApi.matchContactsBy] */ matchContactsBy(groupId: string, filter: FilterOptions): Promise>; /** * * In-group version of [ContactApi.matchContactsBySorted] */ matchContactsBySorted(groupId: string, filter: SortableFilterOptions): Promise>; /** * * In-group version of [ContactApi.matchServicesBy] */ matchServicesBy(groupId: string, filter: FilterOptions): Promise>; /** * * In-group version of [ContactApi.matchServicesBySorted] */ matchServicesBySorted(groupId: string, filter: SortableFilterOptions): Promise>; /** * * In-group version of [ContactBasicFlavourlessApi.deleteContactById] */ deleteContactById(entityId: GroupScoped): Promise>; /** * * In-group version of [ContactBasicFlavourlessApi.deleteContactsByIds] */ deleteContactsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [ContactBasicFlavourlessApi.purgeContactById] */ purgeContactById(entityId: GroupScoped): Promise; /** * * In-group version of [ContactBasicFlavourlessApi.purgeContactsByIds] */ purgeContactsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [ContactBasicFlavourlessApi.deleteContact] */ deleteContact(contact: GroupScoped): Promise>; /** * * In-group version of [ContactBasicFlavourlessApi.deleteContacts] */ deleteContacts(contacts: Array>): Promise>>; /** * * In-group version of [ContactBasicFlavourlessApi.purgeContact] */ purgeContact(contact: GroupScoped): Promise; /** * * In-group version of [ContactBasicFlavourlessApi.purgeContacts] */ purgeContacts(contacts: Array>): Promise>>; /** * * In-group version of [ContactFlavouredApi.shareWith] */ shareWith(delegate: EntityReferenceInGroup, contact: GroupScoped, options?: { options?: ContactShareOptions | undefined; }): Promise>; /** * * In-group version of [ContactFlavouredApi.shareWithMany] */ shareWithMany(contact: GroupScoped, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; shareOptions: ContactShareOptions; }, 'delegate'>): Promise>; /** * * In-group version of [ContactFlavouredApi.filterContactsBy] */ filterContactsBy(groupId: string, filter: FilterOptions): Promise>>; /** * * In-group version of [ContactFlavouredApi.filterContactsBySorted] */ filterContactsBySorted(groupId: string, filter: SortableFilterOptions): Promise>>; /** * * In-group version of [ContactBasicFlavouredApi.createContact]. */ createContact(entity: GroupScoped): Promise>; /** * * In-group version of [ContactBasicFlavouredApi.createContacts]. */ createContacts(entities: Array>): Promise>>; /** * * In-group version of [ContactBasicFlavouredApi.undeleteContactById] */ undeleteContactById(entityId: GroupScoped): Promise>; /** * * In-group version of [ContactBasicFlavouredApi.undeleteContactsByIds] */ undeleteContactsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [ContactBasicFlavouredApi.undeleteContact] */ undeleteContact(contact: GroupScoped): Promise>; /** * * In-group version of [ContactBasicFlavouredApi.undeleteContacts] */ undeleteContacts(contacts: Array>): Promise>>; /** * * In-group version of [ContactBasicFlavouredApi.modifyContact] */ modifyContact(entity: GroupScoped): Promise>; /** * * In-group version of [ContactBasicFlavouredApi.modifyContacts] */ modifyContacts(entities: Array>): Promise>>; /** * * In-group version of [ContactBasicFlavouredApi.getContact] */ getContact(groupId: string, entityId: string): Promise | undefined>; /** * * In-group version of [ContactBasicFlavouredApi.getContacts] */ getContacts(groupId: string, entityIds: Array): Promise>>; /** * * In-group version of [ContactBasicFlavouredApi.getService] */ getService(groupId: string, serviceId: string): Promise | undefined>; /** * * In-group version of [ContactBasicFlavouredApi.getServices] */ getServices(groupId: string, entityIds: Array): Promise>>; }