import { FilterOptions, SortableFilterOptions } from '../cardinal-sdk-ts.mjs'; import { AccessLogDelegateOptions } from '../crypto/entities/AccessLogDelegateOptions.mjs'; import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs'; import { AccessLog, DecryptedAccessLog, EncryptedAccessLog } from '../model/AccessLog.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 { HexString } from '../model/specializations/HexString.mjs'; import { ArrayWithUniqueKeys } from '../utils/ArrayWithUniqueKeys.mjs'; import { AccessLogFlavouredInGroupApi } from './AccessLogFlavouredInGroupApi.mjs'; export interface AccessLogInGroupApi { encrypted: AccessLogFlavouredInGroupApi; tryAndRecover: AccessLogFlavouredInGroupApi; /** * * In-group version of [AccessLogApi.withEncryptionMetadata] */ withEncryptionMetadata(entityGroupId: string, base: DecryptedAccessLog | undefined, options?: { patient?: GroupScoped | undefined; user?: User | undefined; delegates?: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; accessLevel: AccessLevel; }, 'delegate'>; secretId?: SecretIdUseOption; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [AccessLogApi.withEncryptionMetadataAndDelegates] */ withEncryptionMetadataAndDelegates(entityGroupId: string, base: DecryptedAccessLog | undefined, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; delegateOptions: AccessLogDelegateOptions; }, 'delegate'>, options?: { patient?: GroupScoped | undefined; user?: User | undefined; secretId?: SecretIdUseOption; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [AccessLogApi.getEncryptionKeysOf] */ getEncryptionKeysOf(accessLog: GroupScoped): Promise>; /** * * In-group version of [AccessLogApi.hasWriteAccess] */ hasWriteAccess(accessLog: GroupScoped): Promise; /** * * In-group version of [AccessLogApi.decryptPatientIdOf] */ decryptPatientIdOf(accessLog: GroupScoped): Promise>; /** * * In-group version of [AccessLogApi.createDelegationDeAnonymizationMetadata] */ createDelegationDeAnonymizationMetadata(entity: GroupScoped, delegates: Array): Promise; /** * * In-group version of [AccessLogApi.decrypt] */ decrypt(accessLogs: Array>): Promise>>; /** * * In-group version of [AccessLogApi.tryDecrypt] */ tryDecrypt(accessLogs: Array>): Promise>>; /** * * In-group version of [AccessLogApi.matchAccessLogsBy] */ matchAccessLogsBy(groupId: string, filter: FilterOptions): Promise>; /** * * In-group version of [AccessLogApi.matchAccessLogsBySorted] */ matchAccessLogsBySorted(groupId: string, filter: SortableFilterOptions): Promise>; /** * * In-group version of [AccessLogBasicFlavourlessApi.deleteAccessLogById] */ deleteAccessLogById(entityId: GroupScoped): Promise>; /** * * In-group version of [AccessLogBasicFlavourlessApi.deleteAccessLogsByIds] */ deleteAccessLogsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [AccessLogBasicFlavourlessApi.purgeAccessLogById] */ purgeAccessLogById(entityId: GroupScoped): Promise; /** * * In-group version of [AccessLogBasicFlavourlessApi.purgeAccessLogsByIds] */ purgeAccessLogsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [AccessLogBasicFlavourlessApi.deleteAccessLog] */ deleteAccessLog(accessLog: GroupScoped): Promise>; /** * * In-group version of [AccessLogBasicFlavourlessApi.deleteAccessLogs] */ deleteAccessLogs(accessLogs: Array>): Promise>>; /** * * In-group version of [AccessLogBasicFlavourlessApi.purgeAccessLog] */ purgeAccessLog(accessLog: GroupScoped): Promise; purgeAccessLogs(accessLogs: Array>): Promise>>; /** * * In-group version of [AccessLogBasicFlavouredApi.createAccessLog]. */ createAccessLog(entity: GroupScoped): Promise>; /** * * In-group version of [AccessLogBasicFlavouredApi.createAccessLogs]. */ createAccessLogs(entities: Array>): Promise>>; /** * * In-group version of [AccessLogBasicFlavouredApi.undeleteAccessLogById] */ undeleteAccessLogById(entityId: GroupScoped): Promise>; /** * * In-group version of [AccessLogBasicFlavouredApi.undeleteAccessLogsByIds] */ undeleteAccessLogsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [AccessLogBasicFlavouredApi.undeleteAccessLog] */ undeleteAccessLog(accessLog: GroupScoped): Promise>; /** * * In-group version of [AccessLogBasicFlavouredApi.undeleteAccessLogs] */ undeleteAccessLogs(accessLogs: Array>): Promise>>; /** * * In-group version of [AccessLogBasicFlavouredApi.modifyAccessLog] */ modifyAccessLog(entity: GroupScoped): Promise>; /** * * In-group version of [AccessLogBasicFlavouredApi.modifyAccessLogs] */ modifyAccessLogs(entities: Array>): Promise>>; /** * * In-group version of [AccessLogBasicFlavouredApi.getAccessLog] */ getAccessLog(groupId: string, entityId: string): Promise | undefined>; /** * * In-group version of [AccessLogBasicFlavouredApi.getAccessLogs] */ getAccessLogs(groupId: string, entityIds: Array): Promise>>; }