import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs'; import { CalendarItemDelegateOptions } from '../crypto/entities/CalendarItemDelegateOptions.mjs'; import { CalendarItemShareOptions } from '../crypto/entities/CalendarItemShareOptions.mjs'; import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs'; import { CalendarItem, DecryptedCalendarItem, EncryptedCalendarItem } from '../model/CalendarItem.mjs'; import { CalendarItemOccupancy } from '../model/CalendarItemOccupancy.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 { CalendarItemFlavouredInGroupApi } from './CalendarItemFlavouredInGroupApi.mjs'; export interface CalendarItemInGroupApi { encrypted: CalendarItemFlavouredInGroupApi; tryAndRecover: CalendarItemFlavouredInGroupApi; /** * * In-group version of [CalendarItemApi.withEncryptionMetadata] */ withEncryptionMetadata(entityGroupId: string, base: DecryptedCalendarItem | 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 [CalendarItemApi.withEncryptionMetadataAndDelegates] */ withEncryptionMetadataAndDelegates(entityGroupId: string, base: DecryptedCalendarItem | undefined, patient: GroupScoped | undefined, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; delegateOptions: CalendarItemDelegateOptions; }, 'delegate'>, user: User | undefined, options?: { secretId?: SecretIdUseOption; alternateRootDelegateReference?: EntityReferenceInGroup | undefined; }): Promise>; /** * * In-group version of [CalendarItemApi.getEncryptionKeysOf] */ getEncryptionKeysOf(calendarItem: GroupScoped): Promise>; /** * * In-group version of [CalendarItemApi.hasWriteAccess] */ hasWriteAccess(calendarItem: GroupScoped): Promise; /** * * In-group version of [CalendarItemApi.decryptPatientIdOf] */ decryptPatientIdOf(calendarItem: GroupScoped): Promise>; /** * * In-group version of [CalendarItemApi.createDelegationDeAnonymizationMetadata] */ createDelegationDeAnonymizationMetadata(entity: GroupScoped, delegates: Array): Promise; /** * * In-group version of [CalendarItemApi.decrypt] */ decrypt(calendarItems: Array>): Promise>>; /** * * In-group version of [CalendarItemApi.tryDecrypt] */ tryDecrypt(calendarItems: Array>): Promise>>; /** * * In-group version of [CalendarItemApi.encryptOrValidate] */ encryptOrValidate(calendarItems: Array>): Promise>>; /** * * In-group version of [CalendarItemApi.matchCalendarItemsBy] */ matchCalendarItemsBy(groupId: string, filter: FilterOptions): Promise>; /** * * In-group version of [CalendarItemApi.matchCalendarItemsBySorted] */ matchCalendarItemsBySorted(groupId: string, filter: SortableFilterOptions): Promise>; /** * * In-group version of [CalendarItemApi.getCalendarItemsOccupancyByPeriodForSelf]. */ getCalendarItemsOccupancyByPeriodForSelf(groupId: string, startDate: number, endDate: number, extensionInDays: number | undefined): Promise>; /** * * In-group version of [CalendarItemApi.getCalendarItemsOccupancyByPeriodForHealthcareParty]. */ getCalendarItemsOccupancyByPeriodForHealthcareParty(groupId: string, startDate: number, endDate: number, hcPartyId: string, extensionInDays: number | undefined): Promise>; /** * * In-group version of [CalendarItemApi.getCalendarItemsOccupancyByPeriodAndAgendaId]. */ getCalendarItemsOccupancyByPeriodAndAgendaId(groupId: string, startDate: number, endDate: number, agendaId: string, extensionInDays: number | undefined): Promise>; /** * * In-group version of [CalendarItemBasicFlavourlessApi.deleteCalendarItemById] */ deleteCalendarItemById(entityId: GroupScoped): Promise>; /** * * In-group version of [CalendarItemBasicFlavourlessApi.deleteCalendarItemsByIds] */ deleteCalendarItemsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [CalendarItemBasicFlavourlessApi.purgeCalendarItemById] */ purgeCalendarItemById(entityId: GroupScoped): Promise; /** * * In-group version of [CalendarItemBasicFlavourlessApi.purgeCalendarItemsByIds] */ purgeCalendarItemsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [CalendarItemBasicFlavourlessApi.deleteCalendarItem] */ deleteCalendarItem(calendarItem: GroupScoped): Promise>; /** * * In-group version of [CalendarItemBasicFlavourlessApi.deleteCalendarItems] */ deleteCalendarItems(calendarItems: Array>): Promise>>; /** * * In-group version of [CalendarItemBasicFlavourlessApi.purgeCalendarItem] */ purgeCalendarItem(calendarItem: GroupScoped): Promise; /** * * In-group version of [CalendarItemBasicFlavourlessApi.purgeCalendarItems] */ purgeCalendarItems(calendarItems: Array>): Promise>>; /** * * In-group version of [CalendarItemFlavouredApi.shareWith] */ shareWith(delegate: EntityReferenceInGroup, calendarItem: GroupScoped, options?: { options?: CalendarItemShareOptions | undefined; }): Promise>; /** * * In-group version of [CalendarItemFlavouredApi.shareWithMany] */ shareWithMany(calendarItem: GroupScoped, delegates: ArrayWithUniqueKeys<{ delegate: EntityReferenceInGroup; shareOptions: CalendarItemShareOptions; }, 'delegate'>): Promise>; /** * * In-group version of [CalendarItemFlavouredApi.filterCalendarItemsBy] */ filterCalendarItemsBy(groupId: string, filter: FilterOptions): Promise>>; /** * * In-group version of [CalendarItemFlavouredApi.filterCalendarItemsBySorted] */ filterCalendarItemsBySorted(groupId: string, filter: SortableFilterOptions): Promise>>; /** * * In-group version of [CalendarItemBasicFlavouredApi.createCalendarItem]. */ createCalendarItem(entity: GroupScoped): Promise>; /** * * In-group version of [CalendarItemBasicFlavouredApi.createCalendarItems]. */ createCalendarItems(entities: Array>): Promise>>; /** * * In-group version of [CalendarItemBasicFlavouredApi.undeleteCalendarItemById] */ undeleteCalendarItemById(entityId: GroupScoped): Promise>; /** * * In-group version of [CalendarItemBasicFlavouredApi.undeleteCalendarItemsByIds] */ undeleteCalendarItemsByIds(entityIds: Array>): Promise>>; /** * * In-group version of [CalendarItemBasicFlavouredApi.undeleteCalendarItem] */ undeleteCalendarItem(calendarItem: GroupScoped): Promise>; /** * * In-group version of [CalendarItemBasicFlavouredApi.undeleteCalendarItems] */ undeleteCalendarItems(calendarItems: Array>): Promise>>; /** * * In-group version of [CalendarItemBasicFlavouredApi.modifyCalendarItem] */ modifyCalendarItem(entity: GroupScoped): Promise>; /** * * In-group version of [CalendarItemBasicFlavouredApi.modifyCalendarItems] */ modifyCalendarItems(entities: Array>): Promise>>; /** * * In-group version of [CalendarItemBasicFlavouredApi.getCalendarItem] */ getCalendarItem(groupId: string, entityId: string): Promise | undefined>; /** * * In-group version of [CalendarItemBasicFlavouredApi.getCalendarItems] */ getCalendarItems(groupId: string, entityIds: Array): Promise>>; }