import { CryptoPrimitives } from './CryptoPrimitives'; import { EntityWithDelegationTypeName } from '../utils/EntityWithDelegationTypeName'; /** * @internal this class is intended for internal use only and may be changed without notice. */ export declare class AccessControlSecretUtils { private readonly primitives; constructor(primitives: CryptoPrimitives); /** * Size of the access control keys returned by this class. */ get accessControlKeyLengthBytes(): number; /** * Get the access control key to use for entities of the provided type and using the provided secret foreign key. The combination of secret foreign * keys and entity type ensures that unauthorised people will not be able to draw links between entities of different types of data or different * confidentiality levels. * These keys will be sent to the icure server for access control of data owners which require anonymous delegations. * @param accessControlSecret an access control secret * @param entityTypeName an entity type name */ accessControlKeyFor(accessControlSecret: string, entityTypeName: EntityWithDelegationTypeName): Promise; allAccessControlKeyFor(accessControlSecret: string): Promise; /** * Get value to use as key in secure delegations for entities of the provided type with the provided secret foreign key. The combination of secret * foreign keys and entity type ensures that unauthorised people will not be able to draw links between entities of different types of data or * different confidentiality levels. * These keys will be used in the secure delegations map of security metadata. * @param accessControlSecret an access control secret * @param entityTypeName an entity type name */ secureDelegationKeyFor(accessControlSecret: string, entityTypeName: EntityWithDelegationTypeName): Promise; allSecureDelegationKeysFor(accessControlSecret: string): Promise; getEncodedAccessControlKeys(accessControlSecrets: string[], entityTypeName: EntityWithDelegationTypeName): Promise; }