import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs'; import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs'; import { TopicDelegateOptions } from '../crypto/entities/TopicDelegateOptions.mjs'; import { TopicShareOptions } from '../crypto/entities/TopicShareOptions.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 { DecryptedTopic, EncryptedTopic, Topic } from '../model/Topic.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 { TopicFlavouredInGroupApi } from './TopicFlavouredInGroupApi.mjs'; export interface TopicInGroupApi { encrypted: TopicFlavouredInGroupApi; tryAndRecover: TopicFlavouredInGroupApi; /** * * In-group version of [TopicApi.withEncryptionMetadata] */ withEncryptionMetadata(groupId: string, base: DecryptedTopic | undefined, patient: GroupScoped | undefined, options?: { user?: User | undefined; delegates?: { [key: string]: AccessLevel; }; secretId?: SecretIdUseOption; alternateRootDelegateId?: string | undefined; }): Promise>; /** * * In-group version of [TopicApi.withEncryptionMetadataAndDelegates] */ withEncryptionMetadataAndDelegates(groupId: string, base: DecryptedTopic | undefined, patient: GroupScoped | undefined, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; delegateOptions: TopicDelegateOptions; }, 'delegate'>, options?: { user?: User | undefined; secretId?: SecretIdUseOption; alternateRootDelegateId?: string | undefined; }): Promise>; /** * * In-group version of [TopicApi.getEncryptionKeysOf] */ getEncryptionKeysOf(topic: GroupScoped): Promise>; /** * * In-group version of [TopicApi.hasWriteAccess] */ hasWriteAccess(topic: GroupScoped): Promise; /** * * In-group version of [TopicApi.decryptPatientIdOf] */ decryptPatientIdOf(topic: GroupScoped): Promise>; /** * * In-group version of [TopicApi.createDelegationDeAnonymizationMetadata] */ createDelegationDeAnonymizationMetadata(entity: GroupScoped, delegates: Array): Promise; /** * * In-group version of [TopicApi.decrypt] */ decrypt(topics: Array>): Promise>>; /** * * In-group version of [TopicApi.tryDecrypt] */ tryDecrypt(topics: Array>): Promise>>; /** * * In-group version of [TopicApi.matchTopicsBy] */ matchTopicsBy(groupId: string, filter: FilterOptions): Promise>; /** * * In-group version of [TopicApi.matchTopicsBySorted] */ matchTopicsBySorted(groupId: string, filter: SortableFilterOptions): Promise>; /** * * In-group version of [TopicBasicFlavourlessApi.deleteTopicById] */ deleteTopicById(entityId: GroupScoped): Promise>; /** * * In-group version of [TopicBasicFlavourlessApi.deleteTopicsByIds] */ deleteTopicsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [TopicBasicFlavourlessApi.purgeTopicById] */ purgeTopicById(entityId: GroupScoped): Promise; /** * * In-group version of [TopicBasicFlavourlessApi.purgeTopicsByIds] */ purgeTopicsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [TopicBasicFlavourlessApi.deleteTopic] */ deleteTopic(topic: GroupScoped): Promise>; /** * * In-group version of [TopicBasicFlavourlessApi.deleteTopics] */ deleteTopics(topics: Array>): Promise>>; /** * * In-group version of [TopicBasicFlavourlessApi.purgeTopic] */ purgeTopic(topic: GroupScoped): Promise; /** * * In-group version of [TopicBasicFlavourlessApi.purgeTopics] */ purgeTopics(topics: Array>): Promise>>; /** * * In-group version of [TopicFlavouredApi.shareWith] */ shareWith(delegate: EntityReferenceInGroup, topic: GroupScoped, options?: { options?: TopicShareOptions | undefined; }): Promise>; /** * * In-group version of [TopicFlavouredApi.shareWithMany] */ shareWithMany(topic: GroupScoped, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; shareOptions: TopicShareOptions; }, 'delegate'>): Promise>; /** * * In-group version of [TopicFlavouredApi.filterTopicsBy] */ filterTopicsBy(groupId: string, filter: FilterOptions): Promise>>; /** * * In-group version of [TopicFlavouredApi.filterTopicsBySorted] */ filterTopicsBySorted(groupId: string, filter: SortableFilterOptions): Promise>>; /** * * In-group version of [TopicBasicFlavouredApi.createTopic] */ createTopic(entity: GroupScoped): Promise>; /** * * In-group version of [TopicBasicFlavouredApi.createTopics] */ createTopics(entities: Array>): Promise>>; /** * * In-group version of [TopicBasicFlavouredApi.undeleteTopicById] */ undeleteTopicById(entityId: GroupScoped): Promise>; /** * * In-group version of [TopicBasicFlavouredApi.undeleteTopicsByIds] */ undeleteTopicsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [TopicBasicFlavouredApi.undeleteTopic] */ undeleteTopic(topic: GroupScoped): Promise>; /** * * In-group version of [TopicBasicFlavouredApi.undeleteTopics] */ undeleteTopics(topics: Array>): Promise>>; /** * * In-group version of [TopicBasicFlavouredApi.modifyTopic] */ modifyTopic(entity: GroupScoped): Promise>; /** * * In-group version of [TopicBasicFlavouredApi.modifyTopics] */ modifyTopics(entities: Array>): Promise>>; /** * * In-group version of [TopicBasicFlavouredApi.getTopic] */ getTopic(groupId: string, entityId: string): Promise | undefined>; /** * * In-group version of [TopicBasicFlavouredApi.getTopics] */ getTopics(groupId: string, entityIds: Array): Promise>>; }