import { ReceiptDelegateOptions } from '../crypto/entities/ReceiptDelegateOptions.mjs'; import { ReceiptShareOptions } from '../crypto/entities/ReceiptShareOptions.mjs'; import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs'; import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs'; import { GroupScoped } from '../model/GroupScoped.mjs'; import { Patient } from '../model/Patient.mjs'; import { DecryptedReceipt, EncryptedReceipt, Receipt } from '../model/Receipt.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 { ReceiptFlavouredInGroupApi } from './ReceiptFlavouredInGroupApi.mjs'; export interface ReceiptInGroupApi { encrypted: ReceiptFlavouredInGroupApi; tryAndRecover: ReceiptFlavouredInGroupApi; /** * * In-group version of [ReceiptApi.withEncryptionMetadata] */ withEncryptionMetadata(groupId: string, base: DecryptedReceipt | undefined, patient: GroupScoped | undefined, options?: { user?: User | undefined; delegates?: { [key: string]: AccessLevel; }; secretId?: SecretIdUseOption; alternateRootDelegateId?: string | undefined; }): Promise>; /** * * In-group version of [ReceiptApi.withEncryptionMetadataAndDelegates] */ withEncryptionMetadataAndDelegates(groupId: string, base: DecryptedReceipt | undefined, patient: GroupScoped | undefined, delegates: { [key: string]: ReceiptDelegateOptions; }, options?: { user?: User | undefined; secretId?: SecretIdUseOption; alternateRootDelegateId?: string | undefined; }): Promise>; /** * * In-group version of [ReceiptApi.getEncryptionKeysOf] */ getEncryptionKeysOf(receipt: GroupScoped): Promise>; /** * * In-group version of [ReceiptApi.hasWriteAccess] */ hasWriteAccess(receipt: GroupScoped): Promise; /** * * In-group version of [ReceiptApi.decryptPatientIdOf] */ decryptPatientIdOf(receipt: GroupScoped): Promise>; /** * * In-group version of [ReceiptApi.createDelegationDeAnonymizationMetadata] */ createDelegationDeAnonymizationMetadata(entity: GroupScoped, delegates: Array): Promise; /** * * In-group version of [ReceiptApi.decrypt] */ decrypt(receipts: Array>): Promise>>; /** * * In-group version of [ReceiptApi.tryDecrypt] */ tryDecrypt(receipts: Array>): Promise>>; /** * * In-group version of [ReceiptBasicFlavourlessApi.deleteReceiptById] */ deleteReceiptById(entityId: GroupScoped): Promise>; /** * * In-group version of [ReceiptBasicFlavourlessApi.deleteReceiptsByIds] */ deleteReceiptsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [ReceiptBasicFlavourlessApi.purgeReceiptById] */ purgeReceiptById(entityId: GroupScoped): Promise; /** * * In-group version of [ReceiptBasicFlavourlessApi.purgeReceiptsByIds] */ purgeReceiptsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [ReceiptBasicFlavourlessApi.deleteReceipt] */ deleteReceipt(receipt: GroupScoped): Promise>; /** * * In-group version of [ReceiptBasicFlavourlessApi.deleteReceipts] */ deleteReceipts(receipts: Array>): Promise>>; /** * * In-group version of [ReceiptBasicFlavourlessApi.purgeReceipt] */ purgeReceipt(receipt: GroupScoped): Promise; /** * * In-group version of [ReceiptBasicFlavourlessApi.purgeReceipts] */ purgeReceipts(receipts: Array>): Promise>>; /** * * In-group version of [ReceiptBasicFlavourlessApi.getRawReceiptAttachment] */ getRawReceiptAttachment(groupId: string, receiptId: string, attachmentId: string): Promise; /** * * In-group version of [ReceiptFlavouredApi.shareWith] */ shareWith(delegate: EntityReferenceInGroup, receipt: GroupScoped, options?: { options?: ReceiptShareOptions | undefined; }): Promise>; /** * * In-group version of [ReceiptFlavouredApi.shareWithMany] */ shareWithMany(receipt: GroupScoped, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; shareOptions: ReceiptShareOptions; }, 'delegate'>): Promise>; /** * * In-group version of [ReceiptApi.createReceipt] */ createReceipt(entity: GroupScoped): Promise>; /** * * In-group version of [ReceiptApi.createReceipts] */ createReceipts(entities: Array>): Promise>>; /** * * In-group version of [ReceiptBasicFlavouredApi.undeleteReceiptById] */ undeleteReceiptById(entityId: GroupScoped): Promise>; /** * * In-group version of [ReceiptBasicFlavouredApi.undeleteReceiptsByIds] */ undeleteReceiptsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [ReceiptBasicFlavouredApi.undeleteReceipt] */ undeleteReceipt(receipt: GroupScoped): Promise>; /** * * In-group version of [ReceiptBasicFlavouredApi.undeleteReceipts] */ undeleteReceipts(receipts: Array>): Promise>>; /** * * In-group version of [ReceiptBasicFlavouredApi.modifyReceipt] */ modifyReceipt(entity: GroupScoped): Promise>; /** * * In-group version of [ReceiptBasicFlavouredApi.modifyReceipts] */ modifyReceipts(entities: Array>): Promise>>; /** * * In-group version of [ReceiptBasicFlavouredApi.getReceipt] */ getReceipt(groupId: string, entityId: string): Promise | undefined>; /** * * In-group version of [ReceiptBasicFlavouredApi.getReceipts] */ getReceipts(groupId: string, entityIds: Array): Promise>>; /** * * In-group version of [ReceiptBasicFlavouredApi.listReceiptsBetweenDates] */ listReceiptsBetweenDates(groupId: string, options?: { startDate?: number | undefined; endDate?: number | undefined; descending?: boolean; }): Promise>>; }