import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs'; import { MessageDelegateOptions } from '../crypto/entities/MessageDelegateOptions.mjs'; import { MessageShareOptions } from '../crypto/entities/MessageShareOptions.mjs'; import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs'; import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs'; import { GroupScoped } from '../model/GroupScoped.mjs'; import { DecryptedMessage, EncryptedMessage, Message } from '../model/Message.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 { MessageFlavouredInGroupApi } from './MessageFlavouredInGroupApi.mjs'; export interface MessageInGroupApi { encrypted: MessageFlavouredInGroupApi; tryAndRecover: MessageFlavouredInGroupApi; /** * * In-group version of [MessageApi.withEncryptionMetadata] */ withEncryptionMetadata(entityGroupId: string, base: DecryptedMessage | 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 [MessageApi.withEncryptionMetadataAndDelegates] */ withEncryptionMetadataAndDelegates(entityGroupId: string, base: DecryptedMessage | undefined, patient: GroupScoped | undefined, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; delegateOptions: MessageDelegateOptions; }, 'delegate'>, options?: { user?: User | undefined; secretId?: SecretIdUseOption; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [MessageApi.getEncryptionKeysOf] */ getEncryptionKeysOf(message: GroupScoped): Promise>; /** * * In-group version of [MessageApi.hasWriteAccess] */ hasWriteAccess(message: GroupScoped): Promise; /** * * In-group version of [MessageApi.decryptPatientIdOf] */ decryptPatientIdOf(message: GroupScoped): Promise>; /** * * In-group version of [MessageApi.createDelegationDeAnonymizationMetadata] */ createDelegationDeAnonymizationMetadata(entity: GroupScoped, delegates: Array): Promise; /** * * In-group version of [MessageApi.decrypt] */ decrypt(messages: Array>): Promise>>; /** * * In-group version of [MessageApi.tryDecrypt] */ tryDecrypt(messages: Array>): Promise>>; /** * * In-group version of [MessageApi.matchMessagesBy] */ matchMessagesBy(groupId: string, filter: FilterOptions): Promise>; /** * * In-group version of [MessageApi.matchMessagesBySorted] */ matchMessagesBySorted(groupId: string, filter: SortableFilterOptions): Promise>; /** * * In-group version of [MessageBasicFlavourlessApi.deleteMessageById] */ deleteMessageById(entityId: GroupScoped): Promise>; /** * * In-group version of [MessageBasicFlavourlessApi.deleteMessagesByIds] */ deleteMessagesByIds(entityIds: Array>): Promise>>; /** * * In-group version of [MessageBasicFlavourlessApi.purgeMessageById] */ purgeMessageById(entityId: GroupScoped): Promise; /** * * In-group version of [MessageBasicFlavourlessApi.purgeMessagesByIds] */ purgeMessagesByIds(entityIds: Array>): Promise>>; /** * * In-group version of [MessageBasicFlavourlessApi.deleteMessage] */ deleteMessage(message: GroupScoped): Promise>; /** * * In-group version of [MessageBasicFlavourlessApi.deleteMessages] */ deleteMessages(messages: Array>): Promise>>; /** * * In-group version of [MessageBasicFlavourlessApi.purgeMessage] */ purgeMessage(message: GroupScoped): Promise; /** * * In-group version of [MessageBasicFlavourlessApi.purgeMessages] */ purgeMessages(messages: Array>): Promise>>; /** * * In-group version of [MessageFlavouredApi.shareWith] */ shareWith(delegate: EntityReferenceInGroup, message: GroupScoped, options?: { options?: MessageShareOptions | undefined; }): Promise>; /** * * In-group version of [MessageFlavouredApi.shareWithMany] */ shareWithMany(message: GroupScoped, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; shareOptions: MessageShareOptions; }, 'delegate'>): Promise>; /** * * In-group version of [MessageFlavouredApi.filterMessagesBy] */ filterMessagesBy(groupId: string, filter: FilterOptions): Promise>>; /** * * In-group version of [MessageFlavouredApi.filterMessagesBySorted] */ filterMessagesBySorted(groupId: string, filter: SortableFilterOptions): Promise>>; /** * * In-group version of [MessageApi.createMessage] */ createMessage(entity: GroupScoped): Promise>; /** * * In-group version of [MessageApi.createMessages] */ createMessages(entities: Array>): Promise>>; /** * * In-group version of [MessageBasicFlavouredApi.undeleteMessageById] */ undeleteMessageById(entityId: GroupScoped): Promise>; /** * * In-group version of [MessageBasicFlavouredApi.undeleteMessagesByIds] */ undeleteMessagesByIds(entityIds: Array>): Promise>>; /** * * In-group version of [MessageBasicFlavouredApi.undeleteMessage] */ undeleteMessage(message: GroupScoped): Promise>; /** * * In-group version of [MessageBasicFlavouredApi.undeleteMessages] */ undeleteMessages(messages: Array>): Promise>>; /** * * In-group version of [MessageBasicFlavouredApi.modifyMessage] */ modifyMessage(entity: GroupScoped): Promise>; /** * * In-group version of [MessageBasicFlavouredApi.modifyMessages] */ modifyMessages(entities: Array>): Promise>>; /** * * In-group version of [MessageBasicFlavouredApi.getMessage] */ getMessage(groupId: string, entityId: string): Promise | undefined>; /** * * In-group version of [MessageBasicFlavouredApi.getMessages] */ getMessages(groupId: string, entityIds: Array): Promise>>; }