import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs'; import { DocumentDelegateOptions } from '../crypto/entities/DocumentDelegateOptions.mjs'; import { DocumentShareOptions } from '../crypto/entities/DocumentShareOptions.mjs'; import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs'; import { DecryptedDocument, Document, EncryptedDocument } from '../model/Document.mjs'; import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs'; import { GroupScoped } from '../model/GroupScoped.mjs'; import { 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 { DocumentFlavouredInGroupApi } from './DocumentFlavouredInGroupApi.mjs'; export interface DocumentInGroupApi { encrypted: DocumentFlavouredInGroupApi; tryAndRecover: DocumentFlavouredInGroupApi; /** * * In-group version of [DocumentApi.withEncryptionMetadataLinkedToMessage] */ withEncryptionMetadataLinkedToMessage(entityGroupId: string, base: DecryptedDocument | undefined, message: GroupScoped, options?: { user?: User | undefined; delegates?: { [key: string]: AccessLevel; }; secretId?: SecretIdUseOption; alternateRootDelegateId?: string | undefined; }): Promise>; /** * * In-group version of [DocumentApi.withEncryptionMetadataAndDelegatesLinkedToMessage] */ withEncryptionMetadataAndDelegatesLinkedToMessage(entityGroupId: string, base: DecryptedDocument | undefined, message: GroupScoped, delegates: { [key: string]: DocumentDelegateOptions; }, options?: { user?: User | undefined; secretId?: SecretIdUseOption; alternateRootDelegateId?: string | undefined; }): Promise>; /** * * In-group version of [DocumentApi.withEncryptionMetadataLinkedToPatient] */ withEncryptionMetadataLinkedToPatient(entityGroupId: string, base: DecryptedDocument | undefined, patient: GroupScoped, options?: { user?: User | undefined; delegates?: { [key: string]: AccessLevel; }; secretId?: SecretIdUseOption; alternateRootDelegateId?: string | undefined; }): Promise>; /** * * In-group version of [DocumentApi.withEncryptionMetadataAndDelegatesLinkedToPatient] */ withEncryptionMetadataAndDelegatesLinkedToPatient(entityGroupId: string, base: DecryptedDocument | undefined, patient: GroupScoped, delegates: { [key: string]: DocumentDelegateOptions; }, options?: { user?: User | undefined; secretId?: SecretIdUseOption; alternateRootDelegateId?: string | undefined; }): Promise>; /** * * In-group version of [DocumentApi.withEncryptionMetadataUnlinked] */ withEncryptionMetadataUnlinked(entityGroupId: string, base: DecryptedDocument | undefined, options?: { user?: User | undefined; delegates?: { [key: string]: AccessLevel; }; alternateRootDelegateId?: string | undefined; }): Promise>; /** * * In-group version of [DocumentApi.withEncryptionMetadataAndDelegatesUnlinked] */ withEncryptionMetadataAndDelegatesUnlinked(entityGroupId: string, base: DecryptedDocument | undefined, delegates: { [key: string]: DocumentDelegateOptions; }, options?: { user?: User | undefined; alternateRootDelegateId?: string | undefined; }): Promise>; /** * * In-group version of [DocumentApi.getEncryptionKeysOf] */ getEncryptionKeysOf(document: GroupScoped): Promise>; /** * * In-group version of [DocumentApi.hasWriteAccess] */ hasWriteAccess(document: GroupScoped): Promise; /** * * In-group version of [DocumentApi.decryptOwningEntityIdsOf] */ decryptOwningEntityIdsOf(document: GroupScoped): Promise>; /** * * In-group version of [DocumentApi.createDelegationDeAnonymizationMetadata] */ createDelegationDeAnonymizationMetadata(entity: GroupScoped, delegates: Array): Promise; /** * * In-group version of [DocumentApi.decrypt] */ decrypt(documents: Array>): Promise>>; /** * * In-group version of [DocumentApi.tryDecrypt] */ tryDecrypt(documents: Array>): Promise>>; /** * * In-group version of [DocumentApi.matchDocumentsBy] */ matchDocumentsBy(groupId: string, filter: FilterOptions): Promise>; /** * * In-group version of [DocumentApi.matchDocumentsBySorted] */ matchDocumentsBySorted(groupId: string, filter: SortableFilterOptions): Promise>; /** * * In-group version of [DocumentBasicFlavourlessApi.deleteDocumentById] */ deleteDocumentById(entityId: GroupScoped): Promise>; /** * * In-group version of [DocumentBasicFlavourlessApi.deleteDocumentsByIds] */ deleteDocumentsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [DocumentBasicFlavourlessApi.purgeDocumentById] */ purgeDocumentById(entityId: GroupScoped): Promise; /** * * In-group version of [DocumentBasicFlavourlessApi.purgeDocumentsByIds] */ purgeDocumentsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [DocumentBasicFlavourlessApi.deleteDocument] */ deleteDocument(document: GroupScoped): Promise>; /** * * In-group version of [DocumentBasicFlavourlessApi.deleteDocuments] */ deleteDocuments(documents: Array>): Promise>>; /** * * In-group version of [DocumentBasicFlavourlessApi.purgeDocument] */ purgeDocument(document: GroupScoped): Promise; /** * * In-group version of [DocumentBasicFlavourlessApi.purgeDocuments] */ purgeDocuments(documents: Array>): Promise>>; /** * * In-group version of [DocumentFlavouredApi.shareWith] */ shareWith(delegate: EntityReferenceInGroup, document: GroupScoped, options?: { options?: DocumentShareOptions | undefined; }): Promise>; /** * * In-group version of [DocumentFlavouredApi.shareWithMany] */ shareWithMany(document: GroupScoped, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; shareOptions: DocumentShareOptions; }, 'delegate'>): Promise>; /** * * In-group version of [DocumentFlavouredApi.filterDocumentsBy] */ filterDocumentsBy(groupId: string, filter: FilterOptions): Promise>>; /** * * In-group version of [DocumentFlavouredApi.filterDocumentsBySorted] */ filterDocumentsBySorted(groupId: string, filter: SortableFilterOptions): Promise>>; /** * * In-group version of [DocumentBasicFlavouredApi.createDocument]. */ createDocument(entity: GroupScoped): Promise>; /** * * In-group version of [DocumentBasicFlavouredApi.createDocuments]. */ createDocuments(entities: Array>): Promise>>; /** * * In-group version of [DocumentBasicFlavouredApi.undeleteDocumentById] */ undeleteDocumentById(entityId: GroupScoped): Promise>; /** * * In-group version of [DocumentBasicFlavouredApi.undeleteDocumentsByIds] */ undeleteDocumentsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [DocumentBasicFlavouredApi.undeleteDocument] */ undeleteDocument(document: GroupScoped): Promise>; /** * * In-group version of [DocumentBasicFlavouredApi.undeleteDocuments] */ undeleteDocuments(documents: Array>): Promise>>; /** * * In-group version of [DocumentBasicFlavouredApi.modifyDocument] */ modifyDocument(entity: GroupScoped): Promise>; /** * * In-group version of [DocumentBasicFlavouredApi.modifyDocuments] */ modifyDocuments(entities: Array>): Promise>>; /** * * In-group version of [DocumentBasicFlavouredApi.getDocument] */ getDocument(groupId: string, entityId: string): Promise | undefined>; /** * * In-group version of [DocumentBasicFlavouredApi.getDocuments] */ getDocuments(groupId: string, entityIds: Array): Promise>>; }