import { IccDataOwnerXApi } from '../icc-data-owner-x-api'; import { UserEncryptionKeysManager } from './UserEncryptionKeysManager'; import { CryptoPrimitives } from './CryptoPrimitives'; import { IcureStorageFacade } from '../storage/IcureStorageFacade'; import { BaseExchangeDataManager } from './BaseExchangeDataManager'; import { CryptoActorStubWithType } from '../../icc-api/model/CryptoActorStub'; /** * @internal this class is intended only for internal use and may be changed without notice. * Allows to create new transfer keys. */ export declare class TransferKeysManager { private readonly primitives; private readonly baseExchangeDataManager; private readonly dataOwnerApi; private readonly encryptionKeysManager; private readonly icureStorage; constructor(primitives: CryptoPrimitives, baseExchangeDataManager: BaseExchangeDataManager, dataOwnerApi: IccDataOwnerXApi, encryptionKeysManager: UserEncryptionKeysManager, icureStorage: IcureStorageFacade); /** * Analyses the transfer keys graph and creates new transfer keys which allow to improve data accessibility from other devices. * For security reasons transfer keys will only be created between keys verified by the user, but this will be done ignoring any existing edges from * unverified keys to verified keys. * @param self the current data owner. * @return the updated data owner. */ updateTransferKeys(self: CryptoActorStubWithType): Promise; private encryptTransferKey; private transferKeysCandidatesFp; private transferTargetKeys; private getNewVerifiedTransferKeysEdges; }