import { BaseFilterOptions, FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs'; import { FormDelegateOptions } from '../crypto/entities/FormDelegateOptions.mjs'; import { FormShareOptions } from '../crypto/entities/FormShareOptions.mjs'; import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs'; import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs'; import { DecryptedForm, EncryptedForm, Form } from '../model/Form.mjs'; import { FormTemplate } from '../model/FormTemplate.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 { FormFlavouredInGroupApi } from './FormFlavouredInGroupApi.mjs'; export interface FormInGroupApi { encrypted: FormFlavouredInGroupApi; tryAndRecover: FormFlavouredInGroupApi
; /** * * In-group version of [FormApi.withEncryptionMetadata] */ withEncryptionMetadata(entityGroupId: string, base: DecryptedForm | 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 [FormApi.withEncryptionMetadataAndDelegates] */ withEncryptionMetadataAndDelegates(entityGroupId: string, base: DecryptedForm | undefined, patient: GroupScoped | undefined, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; delegateOptions: FormDelegateOptions; }, 'delegate'>, options?: { user?: User | undefined; secretId?: SecretIdUseOption; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [FormApi.getEncryptionKeysOf] */ getEncryptionKeysOf(form: GroupScoped): Promise>; /** * * In-group version of [FormApi.hasWriteAccess] */ hasWriteAccess(form: GroupScoped): Promise; /** * * In-group version of [FormApi.decryptPatientIdOf] */ decryptPatientIdOf(form: GroupScoped): Promise>; /** * * In-group version of [FormApi.createDelegationDeAnonymizationMetadata] */ createDelegationDeAnonymizationMetadata(entity: GroupScoped, delegates: Array): Promise; /** * * In-group version of [FormApi.decrypt] */ decrypt(forms: Array>): Promise>>; /** * * In-group version of [FormApi.tryDecrypt] */ tryDecrypt(forms: Array>): Promise>>; /** * * In-group version of [FormApi.matchFormsBy] */ matchFormsBy(groupId: string, filter: FilterOptions): Promise>; /** * * In-group version of [FormApi.matchFormsBySorted] */ matchFormsBySorted(groupId: string, filter: SortableFilterOptions): Promise>; /** * * In-group version of [FormBasicFlavourlessApi.deleteFormById] */ deleteFormById(entityId: GroupScoped): Promise>; /** * * In-group version of [FormBasicFlavourlessApi.deleteFormsByIds] */ deleteFormsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [FormBasicFlavourlessApi.purgeFormById] */ purgeFormById(entityId: GroupScoped): Promise; /** * * In-group version of [FormBasicFlavourlessApi.purgeFormsByIds] */ purgeFormsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [FormBasicFlavourlessApi.deleteForm] */ deleteForm(form: GroupScoped): Promise>; /** * * In-group version of [FormBasicFlavourlessApi.deleteForms] */ deleteForms(forms: Array>): Promise>>; /** * * In-group version of [FormBasicFlavourlessApi.purgeForm] */ purgeForm(form: GroupScoped): Promise; /** * * In-group version of [FormBasicFlavourlessApi.purgeForms] */ purgeForms(forms: Array>): Promise>>; createFormTemplate(formTemplate: GroupScoped): Promise>; createFormTemplates(formTemplates: Array>): Promise>>; getFormTemplate(groupId: string, formTemplateId: string): Promise | undefined>; getFormTemplates(groupId: string, formTemplatesIds: Array): Promise>>; modifyFormTemplate(formTemplate: GroupScoped): Promise>; modifyFormTemplates(formTemplates: Array>): Promise>>; deleteFormTemplateById(entityId: GroupScoped): Promise>; deleteFormTemplateByIds(entityIds: Array>): Promise>>; deleteFormTemplate(formTemplate: GroupScoped): Promise>; deleteFormTemplates(formTemplates: Array>): Promise>>; undeleteFormTemplateById(entityId: GroupScoped): Promise>; undeleteFormTemplateByIds(entityIds: Array>): Promise>>; undeleteFormTemplate(formTemplate: GroupScoped): Promise>; undeleteFormTemplates(formTemplates: Array>): Promise>>; purgeFormTemplateById(entityId: GroupScoped): Promise; purgeFormTemplateByIds(entityIds: Array>): Promise>>; purgeFormTemplate(formTemplate: GroupScoped): Promise; purgeFormTemplates(formTemplates: Array>): Promise>>; matchFormTemplateBy(groupId: string, filter: BaseFilterOptions): Promise>; /** * * In-group version of [FormFlavouredApi.shareWith] */ shareWith(delegate: EntityReferenceInGroup, form: GroupScoped, options?: { options?: FormShareOptions | undefined; }): Promise>; /** * * In-group version of [FormFlavouredApi.shareWithMany] */ shareWithMany(form: GroupScoped, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; shareOptions: FormShareOptions; }, 'delegate'>): Promise>; /** * * In-group version of [FormFlavouredApi.filterFormsBy] */ filterFormsBy(groupId: string, filter: FilterOptions): Promise>>; /** * * In-group version of [FormFlavouredApi.filterFormsBySorted] */ filterFormsBySorted(groupId: string, filter: SortableFilterOptions): Promise>>; /** * * In-group version of [FormBasicFlavouredApi.createForm]. */ createForm(entity: GroupScoped): Promise>; /** * * In-group version of [FormBasicFlavouredApi.createForms]. */ createForms(entities: Array>): Promise>>; /** * * In-group version of [FormBasicFlavouredApi.undeleteFormById] */ undeleteFormById(entityId: GroupScoped): Promise>; /** * * In-group version of [FormBasicFlavouredApi.undeleteFormsByIds] */ undeleteFormsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [FormBasicFlavouredApi.undeleteForm] */ undeleteForm(form: GroupScoped): Promise>; /** * * In-group version of [FormBasicFlavouredApi.undeleteForms] */ undeleteForms(forms: Array>): Promise>>; /** * * In-group version of [FormBasicFlavouredApi.modifyForm] */ modifyForm(entity: GroupScoped): Promise>; /** * * In-group version of [FormBasicFlavouredApi.modifyForms] */ modifyForms(entities: Array>): Promise>>; /** * * In-group version of [FormBasicFlavouredApi.getForm] */ getForm(groupId: string, entityId: string): Promise | undefined>; /** * * In-group version of [FormBasicFlavouredApi.getForms] */ getForms(groupId: string, entityIds: Array): Promise>>; }