import { DecryptedPropertyStub } from './PropertyStub.mjs'; import { CodeStub } from './base/CodeStub.mjs'; import { CryptoActor } from './base/CryptoActor.mjs'; import { DataOwner } from './base/DataOwner.mjs'; import { HasMedicalLocation } from './base/HasMedicalLocation.mjs'; import { ICureDocument } from './base/ICureDocument.mjs'; import { Identifier } from './base/Identifier.mjs'; import { Named } from './base/Named.mjs'; import { StoredDocument } from './base/StoredDocument.mjs'; import { HexString } from './specializations/HexString.mjs'; import { SpkiHexString } from './specializations/SpkiHexString.mjs'; /** * * Represents a device that sends medical data. This is a root-level entity stored in the * icure-device CouchDB database. * A device can act as a data owner and crypto actor for secure data exchange. * / */ export declare class Device implements StoredDocument, ICureDocument, HasMedicalLocation, Named, CryptoActor, DataOwner { /** * * The Id of the device. We encourage using either a v4 UUID or a HL7 Id. */ id: string; /** * * The revision of the device in the database, used for conflict management / optimistic locking. */ rev: string | undefined; /** * * Hard delete (unix epoch in ms) timestamp of the object. */ deletionDate: number | undefined; /** * * The device's identifiers used for client-side identification. */ identifiers: Array; /** * * The timestamp (unix epoch in ms) of creation of this entity. */ created: number | undefined; /** * * The timestamp (unix epoch in ms) of the latest modification of this entity. */ modified: number | undefined; /** * * The id of the User that created this device. */ author: string | undefined; /** * * The id of the data owner that is responsible for this device. */ responsible: string | undefined; /** * * Tags that qualify the device as being member of a certain class. */ tags: Array; /** * * Codes that identify or qualify this particular device. */ codes: Array; /** * * The name of the device. */ name: string | undefined; /** * * The type of the device (e.g., smartphone, medical device sort). */ type: string | undefined; /** * * The brand of the device (e.g., Samsung, Apple, Philips). */ brand: string | undefined; /** * * The model of the device (e.g., Galaxy S10). */ model: string | undefined; /** * * The serial number of the device. */ serialNumber: string | undefined; /** * * The id of the parent of the user representing the device. */ parentId: string | undefined; /** * * Typed properties related to the device (e.g., version, specific device information). */ properties: Array; /** * * The exchange keys with other healthcare parties, encrypted using public keys. */ hcPartyKeys: { [key: string]: Array; }; /** * * Extra AES exchange keys, usually keys that were lost access to at some point. */ aesExchangeKeys: { [key: string]: { [key: string]: { [key: string]: HexString; }; }; }; /** * * Private keys encrypted with public keys for key transfer. */ transferKeys: { [key: string]: { [key: string]: HexString; }; }; /** * * Shamir partitions of this device's RSA private keys, encrypted with notary public keys. */ privateKeyShamirPartitions: { [key: string]: HexString; }; /** * * The public RSA key of this device. */ publicKey: SpkiHexString | undefined; /** * * The public keys of this device generated using OAEP with SHA-256. */ publicKeysForOaepWithSha256: Array; /** * * Properties specific to the crypto actor role of this device. */ cryptoActorProperties: Array; readonly $ktClass: 'com.icure.cardinal.sdk.model.Device'; constructor(partial: Partial); toJSON(): object; static fromJSON(json: any, ignoreUnknownKeys?: boolean, path?: Array): Device; }